Compartir a través de


Configuración de la carpeta de instantáneas de replicación con recursos compartidos

Se aplica a:SQL Server - Linux

La carpeta de instantáneas es un directorio designado como recurso compartido; los agentes que leen y escriben en esta carpeta deben tener permisos suficientes para acceder a ella.

Diagrama que muestra la replicación y la compartición de instantáneas.

Explicación del recurso compartido de instantáneas de replicación

Antes de los ejemplos, echemos un vistazo al uso que hace SQL Server de los recursos compartidos de Samba en la replicación. A continuación se muestra un ejemplo básico de su funcionamiento.

  1. Los recursos compartidos de Samba se configuran de manera que los archivos que los agentes de replicación escriben en /local/path1 puedan ser vistos por el suscriptor
  2. SQL Server está configurado para usar rutas de acceso de recursos compartidos al establecer el publicador en el servidor de distribución, de modo que todas las instancias mirarían a //share/path
  3. SQL Server encuentra la ruta de acceso local de //share/path para saber dónde tiene que buscar los archivos.
  4. SQL Server lee y escribe en rutas locales respaldadas por una compartición Samba.

Configura un recurso compartido de Samba para la carpeta de instantáneas

Los agentes de replicación necesitarán un directorio compartido entre los hosts de replicación para tener acceso a las carpetas de instantáneas de otras máquinas. Por ejemplo, en la replicación de extracción transaccional, el agente de distribución reside en el suscriptor, que requiere acceso al distribuidor para obtener artículos. En esta sección, veremos un ejemplo de cómo configurar un recurso compartido de Samba en dos hosts de replicación.

Pasos

Por ejemplo, configuraremos una carpeta de instantáneas en el host 1 (el distribuidor) que se compartirá con el host 2 (el suscriptor) mediante Samba.

Instalación e inicio de Samba en ambos equipos

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

Configurar el recurso compartido de Samba en el distribuidor (host 1)

  1. Configure el usuario y la contraseña para Samba:

    sudo smbpasswd -a mssql
    
  2. Edite /etc/samba/smb.conf para incluir la entrada siguiente y rellene los campos share_name y path.

    <[share_name]>
    path = </local/path/on/host/1>
    writable = yes
    create mask = 770
    directory mask
    valid users = mssql
    

    En la tabla siguiente se describe cada configuración.

    Ajuste Descripción
    [mssql_data] Nombre del directorio compartido
    path Ubicación del directorio que queremos compartir
    writable Determinar si el recurso compartido es escribible desde otros hosts
    create mask Permisos de Linux para archivos creados
    directory mask Permisos de Linux para directorios creados
    valid users Lista de usuarios que pueden iniciar sesión en este recurso compartido

    Ejemplo

    [mssql_data]
    path = /var/opt/mssql/repldata
    writable = yes
    create mask = 770
    directory mask = 770
    valid users = mssql
    

Montar el recurso compartido de Samba en el suscriptor (host 2)

Edite el comando con las rutas de acceso correctas y ejecute el siguiente comando en el equipo 2:

sudo mount //<name_of_host_1>/<share_name> </local/path/on/host/2> -o user=mssql,uid=mssql,gid=mssql

Ejemplo

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 SQL Server en ambos hosts de Linux para que usen el recurso compartido de instantáneas

Agregue la siguiente sección a mssql.conf en ambas máquinas. Use la ubicación del recurso compartido de Samba para //share/path. En este ejemplo, sería //host1/mssql_data.

[uncmapping]
//share/path = /local/path/on/hosts/

Ejemplo

En host1:

[uncmapping]
//host1/mssql_data = /local/path/on/hosts/1

En host2:

[uncmapping]
//host1/mssql_data = /local/path/on/hosts/2

Configuración del publicador con rutas de acceso compartidas

  • Al configurar la replicación, use la ruta de acceso de los recursos compartidos (por ejemplo, //host1/mssql_data).
  • Asigne //host1/mssql_data a un directorio local y la asignación agregada a mssql.conf.