Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server em Linux
Este artigo explica como configurar o armazenamento NFS para uma instância de cluster de failover (FCI) no Linux.
NFS, ou sistema de arquivos de rede, é um método comum para compartilhar discos no mundo Linux, mas não no Windows. Semelhante ao iSCSI, o NFS pode ser configurado em um servidor ou em algum tipo de dispositivo ou unidade de armazenamento, desde que atenda aos requisitos de armazenamento do SQL Server.
Informações importantes sobre o servidor NFS
A fonte que hospeda NFS (um servidor Linux ou outra coisa) deve estar usando/sendo compatível com a versão 4.2 ou posterior. As versões anteriores não funcionam com o SQL Server no Linux.
Ao configurar as pastas a serem compartilhadas no servidor NFS, certifique-se de que elas sigam estas opções gerais de diretrizes:
-
rwpara garantir que a pasta possa ser lida e escrita -
syncpara garantir gravações garantidas na pasta - Não use
no_root_squashcomo opção; é considerado um risco de segurança - Verifique se a pasta tem todos os direitos (
777) aplicados
Certifique-se de que seus padrões de segurança sejam aplicados para acesso. Ao configurar a pasta, certifique-se de que apenas os servidores que participam da FCI devem ver a pasta NFS. No exemplo a seguir, um /etc/exports modificado em uma solução NFS baseada em Linux é mostrado, onde a pasta é restrita a FCIN1 e FCIN2.
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See export(5).
#
/var/nfs/fci1 FCIN1(rw,sync) FCIN2(rw,sync)
Instruções
Escolha um dos servidores que participarão da configuração da FCI. Não importa qual.
Verifique se o servidor consegue ver os pontos de montagem no servidor NFS.
sudo showmount -e <IPAddressOfNFSServer>-
<IPAddressOfNFSServer>é o endereço IP do servidor NFS que você vai usar.
-
Para bancos de dados do sistema ou qualquer coisa armazenada no local de dados padrão, siga estas etapas. Caso contrário, pule para a Etapa 4.
Verifique se o SQL Server está parado no servidor em que você está trabalhando.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverMude totalmente para ser o superusuário.
sudo -iMude para ser o
mssqlutilizador.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 anterior.
-
Exclua os arquivos do diretório de dados existente do SQL Server.
rm - f /var/opt/mssql/data/*Verifique se os arquivos foram excluídos.
ls /var/opt/mssql/dataDigite exit para voltar para o usuário root.
Monte o compartilhamento NFS na pasta de dados do SQL Server.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr-
<IPAddressOfNFSServer>é o endereço IP do servidor NFS que você vai usar -
<FolderOnNFSServer>é o nome do compartilhamento NFS. A sintaxe de exemplo a seguir corresponde às informações NFS da Etapa 2.
mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr-
Verifique se a montagem foi bem-sucedida executando o comando 'mount' sem opções.
mountAqui está a saída esperada.
10.201.202.63:/var/nfs/fcil on /var/opt/mssql/data type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard, proto=tcp,port=0,timeo=14, retrans=2,sec=sys,clientaddr=10.201.202.128,local lock=none, addr=10.201.202.63)Mude para o utilizador
mssql.su mssqlCopie os arquivos do diretório temporário /var/opt/mssql/data.
cp /var/opt/mssql/tmp/* /var/opt/mssqldataVerifique se os arquivos estão lá.
ls /var/opt/mssql/dataDigite
exitpara não sermssql.Digite
exitpara não ser root.Inicie o SQL Server. Se tudo foi copiado corretamente e a segurança aplicada corretamente, o SQL Server deve mostrar como iniciado.
sudo systemctl start mssql-server sudo systemctl status mssql-serverCrie um banco de dados para testar se a segurança está configurada corretamente. O exemplo a seguir mostra que está sendo feito via Transact-SQL. Isso também pode ser feito por meio do SQL Server Management Studio (SSMS).
Desligue o SQL Server e confirme se ele foi encerrado.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverSe não estiveres a criar outras montagens NFS, desmonta a partilha. Se estiver a criar outras montagens, não desmonte.
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>-
<IPAddressOfNFSServer>é o endereço IP do servidor NFS que você vai usar -
<FolderOnNFSServer>é o nome do compartilhamento NFS -
<FolderMountedIn>é a pasta criada na etapa anterior.
-
Para coisas diferentes de bancos de dados do sistema, como bancos de dados de usuários ou backups, siga estas etapas. Se estiver usando apenas o local padrão, pule para a Etapa 5.
Mude para ser 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 precisa ser especificado se não estiver no local certo.
O exemplo a seguir cria uma pasta chamada
/var/opt/mssql/userdata.mkdir /var/opt/mssql/userdata-
Monte o compartilhamento NFS na pasta que foi criada na etapa anterior.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr-
<IPAddressOfNFSServer>é o endereço IP do servidor NFS que você vai usar -
<FolderOnNFSServer>é o nome do compartilhamento NFS -
<FolderToMountIn>é a pasta criada na etapa anterior.
O exemplo a seguir monta o compartilhamento NFS.
mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr-
Verifique se a montagem foi bem-sucedida executando o comando 'mount' sem opções.
Digite exit para não ser mais o superusuário.
Para testar, crie um banco de dados nessa pasta. O exemplo a seguir usa 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 o local temporário. Você pode usar o SSMS.
Desmontar o compartilhamento
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>-
<IPAddressOfNFSServer>é o endereço IP do servidor NFS que você vai usar -
<FolderOnNFSServer>é o nome do compartilhamento NFS -
<FolderMountedIn>é a pasta criada na etapa anterior.
-
Repita as etapas nos outros nós.