Em outubro de 2017, a Microsoft lançou uma nova versão de seu servidor de bancos de dados, o SQL Server 2017. Uma grande novidade desta versão é o suporte a várias plataformas: MS-Windows, Linux e MacOS. A partir deste lançamento, a Microsoft disputará market share no seguimento de servidores de bancos de dados diretamente com seus concorrentes na plataforma Linux, especialmente com a Oracle.
Neste artigo, demonstrarei a instalação e configuração do SQL Server 2017 utilizando o CentOS Linux. Os comandos aqui utilizados serão todos executados utilizando a linha de comando (Terminal) do Linux e são exatamente os mesmos para o Red Hat Enterprise Linux. Você precisará ter privilégios de administrador (root) para poder executar os comandos explanados neste artigo.
O CentOS Linux é uma distribuição Linux gratuita, derivada diretamente do RHEL, com o qual mantém 100% de compatibilidade. O RHEL é uma distribuição Linux paga que pode ser obtida no seguinte link:
Para saber mais sobre o CentOS Linux e baixá-lo, visite a página oficial do produto em:
Para obter informações técnicas e comerciais sobre o SQL Server 2017, visite a página oficial do produto no link abaixo:
Importante! A execução dos passos descritos neste artigo, apesar de testados, é de inteira responsabilidade e risco do leitor. Antes de começar, faça e teste os seus backups.
Agora, sem mais delongas, vamos ao passo a passo!
1. Distribuições Linux com suporte ao SQL Server 2017
As distribuições Linux com suporte oficial ao SQL Server 2017 pela Microsoft são:
- Red Hat Enterprise Linux 7.3 ou superior
- SUSE Linux Enterprise Server 12 SP2 ou superior
- Ubuntu Server 16.04 ou superior
Além destas, o SQL Server 2017 também pode ser instalado nas seguintes distribuições Linux, porém, sem suporte oficial da Microsoft:
- CentOS Linux 7.3 ou superior
- openSUSE Leap 42.2 ou superior
Importante! A arquitetura da distribuição Linux utilizada deverá ser x86_64 ou compatível.
2. Requisitos de hardware e software
Os requisitos mínimos de hardware e software para o SQL Server 2017 em Linux, informados pela Microsoft, são:
- Processador: 2 GHz (com 2 núcleos, arquitetura x86_64 ou compatível);
- Memória RAM: 2 GB;
- Espaço em disco: 6 GB (os arquivos binários são instalados em /opt e os de dados e logs em /var);
- Tipo de Sistema de Arquivos: EXT4 ou XFS (não há suporte para outros tipos de sistemas de arquivos).
3. Configuração do repositório online do SQL Server 2017 para Yum
Há dois métodos de instalação do SQL Server 2017 no CentOS Linux / RHEL:
- Instalação online: utilizando o utilitário Yum que fará a instalação a partir do repositório online da
Microsoft; - Instalação offline: utilizando o utilitário RPM para instalar o pacote do SQL Server 2017 baixado do site
da Microsoft em https://packages.microsoft.com/.
O método de instalação padrão no CentOS Linux / RHEL é online, utilizando o utilitário de linha de comando Yum, que resolve e instala automaticamente todas as dependências necessárias e que permite fazer atualizações online do SQL Server 2017 e de suas dependências. Por esta razão, este será o método de instalação que abordarei neste artigo.
Para procedermos à instalação online do SQL Server 2017, devemos primeiramente configurar em nosso servidor CentOS Linux / RHEL o repositório online da Microsoft para o SQL Server 2017. A Microsoft disponibiliza dois repositórios para o produto. Você deverá configurar apenas um deles, conforme a sua necessidade:
- Repositório CU (mssql-server-2017: fornece atualizações cumulativas como correções de bugs e
melhorias): https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo; - Repositório GDR (mssql-server-2017-gdr: fornece somente atualizações críticas): https://packages.microsoft.com/config/rhel/7/mssql-server-2017-gdr.repo.
Neste artigo, utilizarei o repositório de atualizações cumulativas do SQL Server 2017. Para configurá-lo em seu servidor, execute, como root, o comando a seguir:
# curl -o /etc/yum.repos.d/mssql-server-2017.repo <a href="https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo">https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo</a>
Agora, ainda como root, atualize o cache de metadados do utilitário Yum utilizando o seguinte comando:
# yum makecache
Pronto! O repositório online do SQL Server 2017 já está configurado em seu servidor. O próximo passo será fazer a instalação do SQL Server 2017.
4. Instalação online e configuração do SQL Server 2017
Para fazer a instalação online do SQL Server 2017, primeiramente execute o comando a seguir para verificar os pacotes disponíveis:
# yum search mssql-server
Para instalar somente o engine do SQL Server 2017, execute, como root, o comando a seguir e siga as instruções apresentadas em tela:
# yum install mssql-server
Após a conclusão da instalação, execute, como root, o seguinte comando para configurar a instância do SQL Server 2017 em seu servidor:
# /opt/mssql/bin/mssql-conf setup
Você deverá concordar com as licenças apresentadas e escolher a edição e o idioma do produto a serem configurados, bem como deverá informar, e confirmar, uma senha para o usuário administrador (sa) do SQL Server 2017:
Importante! Para permitir conexões remotas à instância do SQL Server 2017 em seu servidor, habilite a porta TCP 1433 no Firewall de seu servidor CentOS Linux / RHEL, executando, como root, os seguintes comandos:
# firewall-cmd --zone=public --add-port=1433/tcp --permanent # firewall-cmd --reload
Pronto! O SQL Server 2017 já está instalado em seu servidor e a instância configurada.
O próximo passo será instalar as ferramentas de linha de comando do SQL Server 2017 (sqlcmd e bcp) e/ou a ferramenta gráfica SQL Operations Studio para poder fazer localmente a administração da instância do SQL Server 2017.
5. Localização padrão dos arquivos de dados e logs da instância
Para uma instalação padrão do SQL Server 2017, a localização dos arquivos da instância são as seguintes:
- Arquivos binários (programas e utilitários): /opt/mssql/
- Arquivos de dados e logs da instância: /var/opt/mssql/
Importante! Verifique periodicamente, e também antes da instalação do SQL Server 2017, se o ponto de montagem /var de seu servidor dispõe de espaço suficiente para criação e crescimento dos aquivos de dados e logs de seus bancos de dados.
6. Instalação das ferramentas de linha comando do SQL Server 2017
Agora que o SQL Server 2017 já está instalado e configurado em seu servidor, instale também as seguintes ferramentas de linha de comando do SQL Server 2017 para poder fazer a administração local da instância:
- sqlcmd: utilitário que permite conectar-se à instância local ou remota do SQL Server e executar
comandos e scripts SQL; - bcp: utilitário para exportação e importação de dados de/para o SQL Server.
Para instalar estas ferramentas, você deverá primeiro configurar o repositório online da Microsoft para Yum em seu servidor executando, como root, o seguinte comando:
# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
Em seguida, atualize o cache de metadados do Yum executando, como root, o comando:
# yum makecache
Agora instale as ferramentas de linha de comando do SQL Server executando, como root, o comando:
# yum install mssql-tools unixODBC-devel
$ echo 'export PATH=$PATH:/opt/mssql-tools/bin' >> ~/.bash_profile $ source ~/.bash_profile
Pronto! As ferramentas de linha de comando do SQL Server 2017 já estão instaladas em seu servidor.
Para conectar-se a qualquer instância local ou remota do SQL Server e gerenciá-la utilizando a ferramenta de linha de comando sqlcmd no Linux, utilize a sua sintaxe básica:
$ sqlcmd -S <nome_servidor> -U <nome_usuario>
Exemplo:
$ sqlcmd -S saturno.adsdomain -U sa
A seguir, conheça também a ferramenta gráfica SQL Operations Studio.
7. SQL Operations Studio – a ferramenta gráfica da Microsoft para gerenciamento do SQL Server
SQL Operations Studio é uma ferramenta gráfica e gratuita da Microsoft que possibilita a usuários, desenvolvedores e DBA’s fazer o gerenciamento de instâncias locais e remotas do SQL Server. É uma IDE muito similar ao SQL Server Management Studio (SSMS) da Microsoft e está disponível para download para as plataformas MSWindows, Linux e macOS.
Para baixá-lo, visite a página do produto no site da Microsoft em https://docs.microsoft.com/pt-br/sql/sql-operations-studio/download. O formato do pacote do SQL Operations Studio para as distribuições CentOS Linux / RHEL é o .rpm.
Após baixá-lo, utilize o seguinte comando, como root, para instalá-lo:
# yum install <pacote_do_sqlops>
Exemplo:
# yum install sqlops-linux-0.27.3.rpm
Após a instalação, será criado um atalho para o produto no grupo Desenvolvimento (Development) no menu de aplicativos de seu desktop no Linux. Clique no atalho para abri-lo.
8. Mantendo o SQL Server atualizado
Para verificar se há atualizações disponíveis para o SQL Server 2017 e suas ferramentas de linha de comando (sqlcmd e bcp), basta executar, como root, os seguintes comandos:
# yum makecache # yum check-update mssql-server mssql-tools
Após executar os comandos acima, caso haja atualizações disponíveis, basta executar o seguinte comando, como root, para instalar as atualizações disponíveis e seguir as instruções apresentadas em tela:
# yum update mssql-server mssql-tools
Importante! Sempre faça e teste seus backups antes de fazer a atualização de seu sistema.
9. Desinstalação do SQL Server
Para desinstalar o SQL Server 2017 e suas ferramentas de linha de comando de seu servidor, basta executar, como root, o seguinte comando:
# yum remove mssql-server mssql-tools
Importante! Antes de desinstalar o SQL Server de seu servidor, faça e teste o backup de seus bancos de dados.
Nota: A desinstalação do SQL Server não remove os arquivos de dados e logs de seus bancos de dados localizados em /var/opt/mssql/. Estes deverão ser removidos manualmente após a desinstalação.
Para desinstalar o SQL Operations Studio, execute, como root, o comando:
# yum remove sqlops
Observação! Ao invés de desinstalar o SQL Server 2017 de seu servidor, você poderá apenas parar e desabilitar o serviço do mesmo, isto é, deixá-lo instalado, porém, inativo em seu servidor. Para fazer isso, execute os seguintes comandos (será solicitada a senha de root):
# systemctl stop mssql-server.service # systemctl disable mssql-server.service
# systemctl enable mssql-server.service # systemctl start mssql-server.service
Para verificar o status do serviço do SQL Server 2017, execute o seguinte comando (não será necessária a senha de root):
# systemctl status mssql-server.service
Pronto! Isso é tudo!
Bom trabalho!