ARTIGOS:Como instalar Microsoft SQL SERVER

Ir para: navegação, pesquisa

"Veremos neste documento como executar um servidor Microsoft SQL Server na plataforma Linux. Acredito ser uma oportunidade para a comunidade GNU/Linux prover serviços de migração de servidores (local ou em Azure), como também uma ocasião favorável para remover muitos servidores Windows Server da ilegalidade. Agradecimentos em especial para Paula Bellizia e Adriano Bottas da Microsoft pelo apoio no trabalho de interoperabilidade."


Introdução

Mssql paula cabelo.jpg

MS SQL Server voltando as origens (*NIX), pois foi criado em parceria com SYBASE. Até a versão 4.X (se não me engano), os dois banco de dados era praticamente idênticos. Utilizei muito o SYBASE no Conectiva Linux em 1998.

Agora o MS SQL está voltando ao ambiente Linux, baseado no SQL Server 2016, o pacote SQL Server for Linux proporciona todos os recursos para criar e desenvolver em uma única plataforma Linux produtos de acesso em banco de dados, além do gerenciamento de dados e análise de negócios.

Satya Nadella, o CEO da Microsoft assumiu prover uma maior abertura ao GNU/Linux, e assim está acontecendo. Pois o produto SQL Server, uma das peças mais populares de software na estante Microsoft, foi disponibilizado para Linux, e veremos neste artigo como utilizá-lo.

O SQL Server for Linux apresenta todas as principais características que os usuários esperam deste produto. Depois de tornar open source o framework .NET para levá-lo ao Linux e OS X, além de ter criado uma fundação para promover software de código aberto, acredito que a decisão de disponibilizar este banco de dados no ambiente GNU/Linux é um marco. Muitas máquinas poderão sair da ilegalidade com o Windows Server e utilizar a plataforma Linux junto ao servidor MSSQL.


Mão na Massa

Adicionando e atualizando o repositório

O ambiente utilizado neste documento foi o openSUSE Leap 42.2 64 bits, estou elaborando uma imagem Linux openSUSE (CLARO) para facilitar a vida de pessoas que não estão acostumadas com as plataformas *NIX e derivados.

Para iniciar, adicione o repositório MS SQL Server conforme os comandos no exemplo a abaixo:

Adicionando o repositório 'packages-microsoft-com-mssql-server' ..............[concluído]
Repositório 'packages-microsoft-com-mssql-server' adicionado com sucesso
Habilitado             : Sim                                                
Atualização automática : Não                                                
Verificação GPG        : Sim                                                
Prioridade             : 99                                                
URI                    : https://packages.microsoft.com/sles/12/mssql-server
Adicionando o repositório 'packages-microsoft-com-mssql-server' ..............[concluído]
Repositório 'packages-microsoft-com-mssql-server' adicionado com sucesso
Habilitado             : Sim                                                
Atualização automática : Não                                                
Verificação GPG        : Sim                                                
Prioridade             : 99                                                
URI                    : https://packages.microsoft.com/sles/12/mssql-server

Após adicionar o repositório, utilize o comando refresh para atualizá-lo:

# sudo zypper ref
Baixando os metadados do repositório 'packages-microsoft-com-mssql-server' -----------[|]
Chave de assinatura de novo repositório ou pacote recebida:
  Repositório:                 packages-microsoft-com-mssql-server                    
  Nome da chave:               Microsoft (Release signing) <gpgsecurity@microsoft.com>
  Impressão digital da chave:  BC528686 B50D79E3 39D3721C EB3E94AD BE1229CF          
  Chave criada em:             Qua 28 Out 2015 21:21:48 BRST                          
  Chave expira em:             (não expira)                                          
  Nome do RPM:                 gpg-pubkey-be1229cf-5631588c

Você quer rejeitar a chave, confiar temporariamente ou confiar sempre? [r/t/s/? exibe todas as opções] (r): s
Baixando os metadados do repositório 'packages-microsoft-com-mssql-server' ...[concluído]
Construindo o cache do repositório 'packages-microsoft-com-mssql-server' .....[concluído]
Todos os repositórios foram atualizados.

Instalação dos pacotes

Com o repositório atualizado, instale o pacote MS SQL SERVER conforme o comando abaixo:

# zypper install mssql-server
Carregando dados do repositório...
Lendo os pacotes instalados...
Resolvendo dependências de pacote...

O seguinte pacote NOVO será instalado:

mssql-server

1 novo pacote a ser instalado.
Tamanho total do download: 141,4 MiB. Já em cache: 0 B. Após a operação, 669,3 MiB adicionais serão utilizados.
Continuar? [s/n/? exibe todas as opções] (s):
Baixando pacote mssql-server-14.0.200.24-2.x86_64                                                                                                  (1/1), 141,4 MiB (669,3 MiB descompactado)
Baixando: mssql-server-14.0.200.24-2.x86_64.rpm .................[concluído (44,4 KiB/s)]
Verificando por conflito de arquivos: ........................................[concluído]
(1/1) Instalando: mssql-server-14.0.200.24-2.x86_64 ..........................[concluído]

Ao término do download e instalação, execute o comando sqlservr-setup, LEIA e se estiver de acordo, aceite o termo de licenciamento digitando "YES" precedido da tecla ENTER. Para terminar defina a senha do administrador do Banco de Dados e confirme a criação dos link simbólicos para o init.d.

Agora configure o serviço:

# sudo /opt/mssql/bin/sqlservr-setup
Microsoft(R) SQL Server(R) Setup

You can abort setup at anytime by pressing Ctrl-C. Start this program
with the --help option for information about running it in unattended
mode.

The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746388 and found
in /usr/share/doc/mssql-server/LICENSE.TXT.

Do you accept the license terms? If so, please type "YES": YES
Please enter a password for the system administrator (SA) account:
The specified password does not meet SQL Server password policy requirements
because it is not complex enough. The password must be at least 8 characters
long and contain characters from three of the following five sets: uppercase
letters, lowercase letters, numbers, non-alphanumeric characters, or unicode
characters that are categorized as alphabetic characters, but are not
uppercase or lowercase.

Please enter a password for the system administrator (SA) account:
Please confirm the password for the system administrator (SA) account:

Setting system administrator (SA) account password...

Do you wish to start the SQL Server service now? [y/n]: '''y'''
Do you wish to enable SQL Server to start on boot? [y/n]: '''y'''
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.

Setup completed successfully.

Agora verificaremos os status do serviço:

# sudo systemctl status mssql-server
● mssql-server.service - Microsoft(R) SQL Server(R) Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Seg 2017-01-23 17:51:28 BRST; 53s ago
Main PID: 3239 (sqlservr)
   CGroup: /system.slice/mssql-server.service
           ├─3239 /opt/mssql/bin/sqlservr
           └─3244 /opt/mssql/bin/sqlservr

Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.21 spid17s     A self-generated certificate was successfully loaded for encryption.
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.22 spid17s     Server is listening on [ 0.0.0.0 <ipv4> 1433].
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.22 Server      Server is listening on [ 127.0.0.1 <ipv4> 1434].
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.22 Server      Dedicated admin connection support was established for listening locally on port 1434.
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.22 spid17s     SQL Server is now ready for client connections. This is an informational message; no user ac...is required.
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.35 spid7s      The tempdb database has 1 data file(s).
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.35 spid20s     The Service Broker endpoint is in disabled or stopped state.
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.35 spid20s     The Database Mirroring endpoint is in disabled or stopped state.
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.36 spid20s     Service Broker manager has started.
Jan 23 17:51:31 lenovo02.intel sqlservr[3239]: 2017-01-23 17:51:31.43 spid5s      Recovery is complete. This is an informational message only. No user action is required.
Hint: Some lines were ellipsized, use -l to show in full.


Instalando as ferramentas clientes e utilitários

Para instalar as ferramentas clientes, devemos adicionar o repositório da Microsoft conforme o exemplo abaixo. Não esqueça de utilizar o comando zypper ref para atualizar o repositório recém adicionado.

Adicionando o repositório 'packages-microsoft-com-prod' ......................[concluído]
Repositório 'packages-microsoft-com-prod' adicionado com sucesso
Habilitado             : Sim
Atualização automática : Não
Verificação GPG        : Sim
Prioridade             : 99
URI                    : https://packages.microsoft.com/sles/12/prod

Utilize o comando zypper com os respectivos nomes dos pacotes MSSQL-TOOLS e unixODBC-devel para instalar os pacotes clientes e utilitários. Lembre-se de ler, e somente se estiver de acordo,aceite os termos de Licenciamento.

# sudo zypper install mssql-tools unixODBC-devel
Carregando dados do repositório...
Lendo os pacotes instalados...
Resolvendo dependências de pacote...

Os seguintes 3 pacotes NOVOS serão instalados:
  msodbcsql mssql-tools unixODBC-devel

3 novos pacotes a serem instalados.
Tamanho total do download: 4,8 MiB. Já em cache: 0 B. Após a operação, 17,2 MiB adicionais serão utilizados.
Continuar? [s/n/? exibe todas as opções] (s):
Baixando pacote msodbcsql-13.1.3.0-1.x86_64                                                                                                        (1/3),   3,5 MiB ( 15,8 MiB descompactado)
Baixando: msodbcsql-13.1.3.0-1.x86_64.rpm .......................[concluído (52,8 KiB/s)]
Baixando pacote mssql-tools-14.0.2.0-1.x86_64                                                                                                      (2/3),   1,2 MiB (  1,2 MiB descompactado)
Baixando: mssql-tools-14.0.2.0-1.x86_64.rpm .....................[concluído (47,2 KiB/s)]
Baixando pacote unixODBC-devel-2.3.4-1.5.x86_64                                                                                                    (3/3),  40,5 KiB (192,1 KiB descompactado)
Baixando: unixODBC-devel-2.3.4-1.5.x86_64.rpm ................................[concluído]
Verificando por conflito de arquivos: ........................................[concluído]
(1/3) Instalando: msodbcsql-13.1.3.0-1.x86_64 ----------------------------------------[|]The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746838 and found in
/usr/share/doc/msodbcsql/LICENSE.TXT . By entering 'YES',
you indicate that you accept the license terms.

Do you accept the license terms? (Enter YES or NO)
YES
(1/3) Instalando: msodbcsql-13.1.3.0-1.x86_64 ................................[concluído]
(2/3) Instalando: mssql-tools-14.0.2.0-1.x86_64 --------------------------------------[-]The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.

Do you accept the license terms? (Enter YES or NO)
YES
(2/3) Instalando: mssql-tools-14.0.2.0-1.x86_64 ..............................[concluído]
(3/3) Instalando: unixODBC-devel-2.3.4-1.5.x86_64 ............................[concluído]

Crie os links simbólicos na pasta /usr/bin como super-usuário:

# ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd
# ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

Para acessar o servidor utilizando o comando SQLCMD, deixo alguns exemplos de manipulação e uso desta serviço/ferramenta.

sqlcmd -S [IP-SERVIDOR] -U SA -P [SENHA DO ADMINISTRATIVA]
1>

Testando consultas SQL no console:

1> SELECT Name from sys.Databases;
2> GO
Name
----------------------------
master
tempdb
model
msdb
(4 rows affected)

Criando banco de dados:

1> CREATE DATABASE testdb;
2> GO
1>

Utilizando/abrindo o banco de dados desejado:

1> USE testdb;
2> GO
Changed database context to 'testdb'.

Criando tabelas:

</pre> 1> CREATE TABLE inventory (id INT, name NVARCHAR(50), quantity INT); 2> GO 1> (1 rows affected) </pre>

Inserindo dados na tabela:

1> INSERT INTO inventory VALUES (1, 'banana', 150);
2> INSERT INTO inventory VALUES (2, 'orange', 154);
3> GO (1 rows affected)

Consultando dados:

1> SELECT * FROM inventory WHERE quantity > 152;
2> GO

id          name                                               quantity   
----------- -------------------------------------------------- -----------
          2 orange                                                     154
(1 rows affected)

1>
1> QUIT

Para remover o serviço, use o comando zypper com o parâmetro rm e exclusão da pasta /var/opt/mssql/:

# sudo zypper remove mssql-server
Carregando dados do repositório...
Lendo os pacotes instalados...
Resolvendo dependências de pacote...

O seguinte pacote será REMOVIDO:
mssql-server

1 pacote para remover.
Após a operação, 669,3 MiB será liberado.
Continuar? [s/n/? exibe todas as opções] (s):
(1/1) Removendo mssql-server-14.0.200.24-2.x86_64 ............................[concluído]
# rm -rf /var/opt/mssql/

Agradecimentos

"A todos os membros da comunidade de código aberto que levam a sério o ESPÍRITO HACKER e utilizam essa força para o bem, aos que defendem a "LIBERDADE DA INFORMAÇÃO", aos que me incentivaram desde 1998 em meus primeiros contatos com o Software Livre, aos que se sacrificam para divulgar informações, aos que amam os seus idealismos acima do capitalismo e que lutam para fazerem um mundo melhor sem prejudicar terceiros. A todos que defendem estes ideais, um MUITO OBRIGADO!"

Cabelo-suse.png

Sobre o autor: (Alessandro de Oliveira Faria A.K.A.CABELO )