Partilhar via


Configurar a pasta de snapshot de replicação com compartilhamentos

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.

Diagrama mostrando a replicação e o compartilhamento de snapshot.

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.

  1. 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.
  2. 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.
  3. O SQL Server localiza o caminho local do //share/path para saber onde procurar os arquivos
  4. 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

sudo yum install samba
sudo service smb start
sudo service smb status

Configurar a partilha Samba no distribuidor (host1)

  1. Configurar usuário e senha para samba:

    sudo smbpasswd -a mssql
    
  2. 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 a mssql.conf.