ARTIGOS:Como instalar Microsoft SQL SERVER
"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."
Índice
Introdução
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:
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:
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:
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:
● 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.
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:
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/:
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]
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!"
Sobre o autor: (Alessandro de Oliveira Faria A.K.A.CABELO )