Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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.
- 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 - 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
- SQL Server encuentra la ruta de acceso local de
//share/path
para saber dónde tiene que buscar los archivos. - 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
Configurar el recurso compartido de Samba en el distribuidor (host 1)
Configure el usuario y la contraseña para Samba:
sudo smbpasswd -a mssql
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 amssql.conf
.