você está aqui: Home  → Arquivo de Mensagens

Como instalar Microsoft SQL Server no OpenSUSE LinuX

Colaboração: Alessandro de Oliveira Faria

Data de Publicação: 08 de fevereiro de 2017

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 em servidores (local ou em Azure), como também uma ocasião favorável, pois em momentos de crise, podemos remover muitos servidores Windows Server da ilegalidade. Agradecimentos em especial para Paula Bellizia e Adriano Bottas da Microsoft pelo apoio no trabalho de interoperabilidade.

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 bancos de dados eram 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.

Paula Bellizia e Alessandro Faria (Cabelo)

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

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:

   su # zypper ar https://packages.microsoft.com/config/sles/12/mssql-server.repo
  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
   su
  # zypper ar https://packages.microsoft.com/config/sles/12/mssql-server.repo
  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:

  # 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.

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.

  # /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.

Para verificar que o servidor MS SQL está funcionando corretamente, utilize o comando systemctl conforme o exemplo:

  # 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.

  # zypper ar https://packages.microsoft.com/config/sles/12/prod.repo
  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.

  # 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:

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

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/:

  # 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/

Mais informações envie email para <cabelo (a) opensuse org>, e lembre-se, colaborar atrai amigos, competir atrai inimigos.

Alessandro de Oliveira Faria é Sócio-fundador da empresa OITI TECNOLOGIA fundada em Junho de 1996, empresa especializada em desenvolvimento de soluções com a tecnologia de Reconhecimento Facial, Consultor Biométrico, Experiência em Realidade Aumentada, Visão Computacional (opencv), Neuro-tecnologia, Redes Neurais e Programação multi-nuclear com CPU e GPU, atua na área de tecnologia desde 1986, leva o Linux a sério desde 1998, membro da comunidade Viva O Linux com mais de 50 palestras e 100 artigos publicados, mantenedor da biblioteca open-source de vídeo captura, Embaixador e openSUSE Member.


Veja a relação completa dos artigos de Alessandro de Oliveira Faria

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script