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 no 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 utiliza partilhas 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/path1pelos agentes de replicação no publicador possam ser vistos pelo assinante. - SQL Server está configurado para usar caminhos de partilha ao configurar o publicador no servidor de distribuição, de forma que todas as instâncias acessem o
//share/path - SQL Server encontra o caminho local a partir do
//share/pathpara saber onde procurar os ficheiros - O SQL Server lê/escreve em caminhos locais apoiados 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 mssqlEditar o
/etc/samba/smb.confpara incluir a seguinte entrada e preencher os campos share_name e path :<[share_name]> path = </local/path/on/host/1> writable = yes create mask = 770 directory mask valid users = mssqlA tabela a seguir descreve cada configuração.
Configuração Descrição [mssql_data]Nome do diretório compartilhado pathLocalização do diretório que desejamos compartilhar writableDeterminar se a partilha é gravável a partir de outros anfitriões create maskPermissões do Linux para arquivos criados directory maskPermissões do Linux para diretórios criados valid usersLista 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 snapshot share
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_datapara um diretório local e, em seguida, adicionar o mapeamento amssql.conf.