Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server - Linux
A pasta de instantâneo é um diretório que você designou como um compartilhamento; Os agentes que leem e gravam nessa pasta devem ter permissões suficientes para acessá-la.
Explicação da partilha de pasta de instantâneo de replicação
Antes dos exemplos, vamos explicar como o SQL Server usa compartilhamentos samba na replicação. A seguir está um exemplo básico de como isso funciona.
- As pastas partilhadas do Samba são configuradas para que os arquivos gravados em
/local/path1
pelos agentes de replicação no publicador possam ser vistos pelo assinante. - O SQL Server está configurado para usar caminhos de partilha ao configurar o publicador no servidor de distribuição, de modo que todas as instâncias observem o
//share/path
. - O SQL Server localiza o caminho local do
//share/path
para saber onde procurar os arquivos - O SQL Server lê/grava em caminhos locais suportados por uma partilha Samba
Configurar um compartilhamento samba para a pasta de instantâneo
Os agentes de replicação precisarão de um diretório compartilhado entre hosts de replicação para acessar pastas de snapshot em outras máquinas. Por exemplo, na replicação pull transacional, o agente de distribuição reside no assinante, que requer acesso ao distribuidor para obter artigos. Nesta seção, veremos um exemplo de como configurar um compartilhamento samba em dois hosts de replicação.
Passos
Como exemplo, vamos configurar uma pasta de instantâneo no Host 1 (o distribuidor) para ser compartilhada com o Host 2 (o assinante) usando o Samba.
Instale e inicie o Samba em ambas as máquinas
Configurar a partilha Samba no distribuidor (host1)
Configurar usuário e senha para samba:
sudo smbpasswd -a mssql
Edite o
/etc/samba/smb.conf
para incluir a seguinte entrada e preencha os campos share_name e caminho<[share_name]> path = </local/path/on/host/1> writable = yes create mask = 770 directory mask valid users = mssql
A tabela a seguir descreve cada configuração.
Configuração Descrição [mssql_data]
Nome do diretório compartilhado path
Localização do diretório que desejamos compartilhar writable
Determinar se a partilha é gravável a partir de outros anfitriões create mask
Permissões do Linux para arquivos criados directory mask
Permissões do Linux para diretórios criados valid users
Lista de utilizadores que podem iniciar sessão nesta partilha Exemplo
[mssql_data] path = /var/opt/mssql/repldata writable = yes create mask = 770 directory mask = 770 valid users = mssql
Monte o compartilhamento do Samba no assinante (host2)
Edite o comando com os caminhos corretos e execute o seguinte comando no machine2:
sudo mount //<name_of_host_1>/<share_name> </local/path/on/host/2> -o user=mssql,uid=mssql,gid=mssql
Exemplo
mount //host1/mssql_data /var/opt/mssql/repldata_shared -o user=mssql,uid=mssql,gid=mssql
user=mssql <- sets the login name for samba
uid=mssql <- makes the mssql user as the owner of the mounted directory
gid=mssql <- sets the mssql group as the owner of the mounted directory
Configurar o SQL Server em ambos os hosts Linux para usar o compartilhamento de instantâneo
Adicione a seguinte secção ao mssql.conf
em ambas as máquinas. Use onde quer que o samba compartilhe para o //share/path
. Neste exemplo, seria //host1/mssql_data
.
[uncmapping]
//share/path = /local/path/on/hosts/
Exemplo
Em host1
:
[uncmapping]
//host1/mssql_data = /local/path/on/hosts/1
Em host2
:
[uncmapping]
//host1/mssql_data = /local/path/on/hosts/2
Configurar o editor com caminhos compartilhados
- Ao configurar a replicação, use o caminho de compartilhamentos (exemplo
//host1/mssql_data
- Mapear
//host1/mssql_data
para um diretório local e, em seguida, adicionar o mapeamento amssql.conf
.