Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server no Linux
Este artigo explica como configurar o armazenamento SMB para uma FCI (instância de cluster de failover) no Linux.
No mundo não Windows, o SMB é geralmente conhecido como um compartilhamento CIFS (Common Internet File System) e implementado por meio do Samba. No mundo do Windows, o acesso a um compartilhamento SMB é feito desta maneira: \\SERVERNAME\SHARENAME. Para instalações do SQL Server baseadas em Linux, o compartilhamento SMB precisa ser montado como uma pasta.
Informações importantes de origem e servidor
Estas são algumas dicas e observações para usar o SMB com êxito:
- O compartilhamento SMB pode estar no Windows, no Linux ou, até mesmo, em um dispositivo, desde que esteja usando o SMB 3.0 ou versões posteriores. Para obter mais informações sobre o Samba e o SMB 3.0, confira SMB 3.0 para ver se a implementação do Samba está em conformidade com o SMB 3.0.
- O compartilhamento SMB deve estar altamente disponível.
- A segurança precisa ser definida corretamente no compartilhamento SMB. Veja abaixo um exemplo de
/etc/samba/smb.conf, em queSQLDataé o nome do compartilhamento.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser
Instruções
Escolha um dos servidores que participarão da configuração da FCI. Não importa qual.
Obtenha informações sobre o usuário
mssql.sudo id mssqlObserve
uid,gide grupos.Executar
sudo smbclient -L //NameOrIP/ShareName -U User.-
<NameOrIP>é o nome DNS ou o endereço IP do servidor que hospeda o compartilhamento SMB. -
<ShareName>é o nome do compartilhamento SMB.
-
Para bancos de dados do sistema ou qualquer item armazenado na localização de dados padrão, siga essas etapas. Caso contrário, vá para a etapa 5.
Verifique se o SQL Server está parado no servidor em que você está trabalhando.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverAlterne totalmente para o superusuário.
sudo -iAlterne para que seja o usuário
mssql.su mssqlCrie um diretório temporário para armazenar os dados e os arquivos de log do SQL Server.
mkdir <TempDir>-
<TempDir>é o nome da pasta. O exemplo a seguir cria uma pasta chamada/var/opt/mssql/tmp.
mkdir /var/opt/mssql/tmp-
Copie os dados e os arquivos de log do SQL Server para o diretório temporário.
cp /var/opt/mssql/data/* <TempDir>-
<TempDir>é o nome da pasta da etapa anterior.
-
Verifique se os arquivos estão no diretório.
ls <TempDir><TempDir> é o nome da pasta da etapa D.
Exclua os arquivos do diretório de dados do SQL Server existente.
rm - f /var/opt/mssql/data/*Verifique se os arquivos foram excluídos.
ls /var/opt/mssql/dataDigite exit para voltar ao usuário raiz.
Monte o compartilhamento SMB na pasta de dados do SQL Server. Este exemplo mostra a sintaxe para se conectar a um compartilhamento SMB 3.0 baseado no Windows Server.
Mount -t cifs //<ServerName>/<ShareName> /var/opt/mssql/data -o vers=3.0,username=<UserName>,password=<Password>,domain=<domain>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777-
<ServerName>é o nome do servidor com o compartilhamento SMB -
<ShareName>é o nome do compartilhamento -
<UserName>é o nome do usuário usado para acessar o compartilhamento -
<Password>é a senha do usuário -
<domain>é o nome do Active Directory -
<mssqlUID>é o UID do usuáriomssql -
<mssqlGID>é o GID do usuáriomssql
-
Verifique se a montagem foi bem-sucedida emitindo o comando mount sem opções.
mountAlterne para o usuário
mssql.su mssqlCopie os arquivos do diretório temporário
/var/opt/mssql/data.cp /var/opt/mssql/tmp/* /var/opt/mssql/dataVerifique se os arquivos estão lá.
ls /var/opt/mssql/dataInsira
exitpara não sermssql.Insira
exitpara não serroot.Inicie o SQL Server. Se tudo for copiado corretamente e a segurança for aplicada corretamente, o SQL Server deverá ser mostrado como iniciado.
sudo systemctl start mssql-server sudo systemctl status mssql-serverPara um teste adicional, crie um banco de dados para garantir que as permissões estejam corretas. O exemplo a seguir usa o Transact-SQL; você poderá usar o SSMS.
Pare o SQL Server e verifique se ele está desligado. Se for adicionar ou testar outros discos, não desligue o SQL Server enquanto eles não forem adicionados e testados.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverSomente se tiver terminado, desmonte o compartilhamento. Caso contrário, desmonte-o depois de concluir o teste/a adição de outros discos.
sudo umount //<IPAddressorServerName>/<ShareName /<FolderMountedIn>-
<IPAddressOrServerName>é o endereço IP ou o nome do host SMB -
<ShareName>é o nome do compartilhamento -
<FolderMountedIn>é o nome da pasta em que o SMB está montado
-
Para outros itens que não os bancos de dados do sistema, como bancos de dados de usuário ou backups, siga estas etapas. Se estiver usando apenas a localização padrão, vá para a Etapa 14.
Alterne para o superusuário.
sudo -iCrie uma pasta que será usada pelo SQL Server.
mkdir <FolderName><FolderName> é o nome da pasta. O caminho completo da pasta precisará ser especificado se não estiver na localização correta. O exemplo a seguir cria uma pasta chamada
/var/opt/mssql/userdata.mkdir /var/opt/mssql/userdataMonte o compartilhamento SMB na pasta de dados do SQL Server. Este exemplo mostra a sintaxe para se conectar a um compartilhamento SMB 3.0 baseado no Samba.
Mount -t cifs //<ServerName>/<ShareName> <FolderName> -o vers=3.0,username=<UserName>,password=<Password>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777-
<ServerName>é o nome do servidor com o compartilhamento SMB -
<ShareName>é o nome do compartilhamento -
<FolderName>é o nome da pasta criada na última etapa -
<UserName>é o nome do usuário usado para acessar o compartilhamento -
<Password>é a senha do usuário -
<mssqlUID>é o UID do usuáriomssql -
<mssqlGID>é o GID do usuáriomssql.
-
Verifique se a montagem foi bem-sucedida emitindo o comando mount sem opções.
Digite exit para deixar de ser o superusuário.
Para testar, crie um banco de dados nessa pasta. O exemplo a seguir usa o sqlcmd para criar um banco de dados, alternar o contexto para ele, verificar se os arquivos existem no nível do sistema operacional e, em seguida, exclui a localização temporária. Você pode usar o SSMS.
Desmontar o compartilhamento
sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>-
<IPAddressOrServerName>é o endereço IP ou o nome do host SMB -
<ShareName>é o nome do compartilhamento -
<FolderMountedIn>é o nome da pasta em que o SMB está montado.
-
Repita as etapas nos outros nós.
Agora você está pronto para configurar a FCI.