Compartir vía


sp_add_log_shipping_primary_database (Transact-SQL)

Se aplica a:SQL Server

Configura la base de datos principal de una configuración de trasvase de registros, incluido el trabajo de copia de seguridad, el registro de monitor local y el registro de monitor remoto.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_add_log_shipping_primary_database
    [ @database = ] 'database'
    , [ @backup_directory = ] N'backup_directory'
    , [ @backup_share = ] N'backup_share'
    , [ @backup_job_name = ] 'backup_job_name'
    [ , [ @backup_retention_period = ] backup_retention_period ]
    [ , [ @monitor_server = ] 'monitor_server' ]
    [ , [ @monitor_server_security_mode = ] monitor_server_security_mode ]
    [ , [ @monitor_server_login = ] 'monitor_server_login' ]
    [ , [ @monitor_server_password = ] 'monitor_server_password' ]
    [ , [ @backup_threshold = ] backup_threshold ]
    [ , [ @threshold_alert = ] threshold_alert ]
    [ , [ @threshold_alert_enabled = ] threshold_alert_enabled ]
    [ , [ @history_retention_period = ] history_retention_period ]
    [ , [ @backup_job_id = ] backup_job_id OUTPUT ]
    [ , [ @primary_id = ] primary_id OUTPUT ]
    [ , [ @backup_compression = ] backup_compression_option ]
    [ , [ @primary_connection_options = ] '<key_value_pairs>;[...]' ]
    [ , [ @monitor_connection_options = ] '<key_value_pairs>;[...]' ]
[ ; ]

Argumentos

[ @database = ] 'base de datos'

Nombre de la base de datos principal de trasvase de registros. @database es sysname, sin valor predeterminado y no puede ser NULL.

[ @backup_directory = ] N'backup_directory'

Ruta de acceso a la carpeta de copia de seguridad en el servidor principal. @backup_directory es nvarchar(500), sin ningún valor predeterminado y no puede ser NULL.

[ @backup_share = ] N'backup_share'

Ruta de acceso de red al directorio de copia de seguridad en el servidor principal. @backup_share es nvarchar(500), sin ningún valor predeterminado y no puede ser NULL.

[ @backup_job_name = ] 'backup_job_name'

Nombre del trabajo de Agente SQL Server en el servidor principal que copia la copia de seguridad en la carpeta de copia de seguridad. @backup_job_name es sysname y no puede ser NULL.

[ @backup_retention_period = ] backup_retention_period

El período de tiempo, en minutos, para conservar el archivo de copia de seguridad de registros en el directorio de copia de seguridad en el servidor principal. @backup_retention_period es int, sin valor predeterminado y no puede ser NULL.

[ @monitor_server = ] 'monitor_server'

Nombre del servidor de supervisión. @monitor_server es sysname, sin ningún valor predeterminado y no puede ser NULL.

[ @monitor_server_security_mode = ] monitor_server_security_mode

Modo de seguridad utilizado para conectarse al servidor de supervisión.

  • 1: Autenticación de Windows
  • 0: autenticación de SQL Server

@monitor_server_security_mode es bit, con un valor predeterminado de 1y no puede ser NULL.

[ @monitor_server_login = ] 'monitor_server_login'

Nombre de usuario de la cuenta usada para acceder al servidor de supervisión.

[ @monitor_server_password = ] 'monitor_server_password'

Contraseña de la cuenta usada para acceder al servidor de supervisión.

[ @backup_threshold = ] backup_threshold

El período de tiempo, en minutos, después de la última copia de seguridad antes de que se produzca un error de @threshold_alert . @backup_threshold es int, con un valor predeterminado de 60 minutos.

[ @threshold_alert = ] threshold_alert

Alerta que se generará cuando se sobrepase el umbral de copia de seguridad. @threshold_alert es int, con un valor predeterminado de 14 420.

[ @threshold_alert_enabled = ] threshold_alert_enabled

Especifica si se genera una alerta cuando se supera @backup_threshold . El valor de cero (0), el valor predeterminado significa que la alerta está deshabilitada y no se generará. @threshold_alert_enabled es bit.

[ @history_retention_period = ] history_retention_period

El período de tiempo en minutos en el que se conserva el historial. @history_retention_period es int, con un valor predeterminado de NULL. Si no se especifica ningún valor, se utiliza 14420.

[ @backup_job_id = ] backup_job_id SALIDA

El Agente SQL Server identificador de trabajo asociado al trabajo de copia de seguridad en el servidor principal. @backup_job_id es un parámetro OUTPUT de tipo uniqueidentifier y no puede ser NULL.

[ @primary_id = ] primary_id SALIDA

Id. de la base de datos principal para la configuración del trasvase de registros. @primary_id es un parámetro OUTPUT de tipo uniqueidentifier y no puede ser NULL.

[ @backup_compression = ] backup_compression_option

Especifica si una configuración de trasvase de registros usa la compresión de copia de seguridad.

  • 0:Deshabilitado. No se comprimen nunca las copias de seguridad de registros.
  • 1:Habilitado. Se comprimen siempre las copias de seguridad de registros.
  • 2 (valor predeterminado): use la opción de configuración predeterminada del servidor de compresión de copia de seguridad .

[ @primary_connection_options = ] '<key_value_pairs>;[ ...]'

Aplica a: SQL Server 2025 (17.x) y versiones posteriores

Especifica opciones de conectividad adicionales al conectarse a la principal, en forma de pares clave-valor. @primary_connection_options es nvarchar(4000) y tiene el valor predeterminado de NULL.

En la tabla siguiente se enumeran las opciones de conectividad disponibles:

Key Importancia
Encrypt strict, mandatory, optional, , true, false
TrustServerCertificate true, false, , yes, no
ServerCertificate Ruta de acceso del sistema de archivos al certificado de servidor. Tiene una longitud máxima de 260 caracteres.
HostNameInCertificate Invalidación de nombre de host para el certificado. Tiene una longitud máxima de 255 caracteres.

[ @monitor_connection_options = ] '<key_value_pairs>;[ ...]'

Aplica a: SQL Server 2025 (17.x) y versiones posteriores

Especifica opciones de conectividad adicionales para la conexión del servidor vinculado al usar un monitor remoto, en forma de pares clave-valor. @monitor_connection_options es nvarchar(4000) y tiene el valor predeterminado de NULL.

En la tabla siguiente se enumeran las opciones de conectividad disponibles:

Key Importancia
Encrypt strict, mandatory, optional, , true, false
TrustServerCertificate true, false, , yes, no
ServerCertificate Ruta de acceso del sistema de archivos al certificado de servidor. Tiene una longitud máxima de 260 caracteres.
HostNameInCertificate Invalidación de nombre de host para el certificado. Tiene una longitud máxima de 255 caracteres.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

sp_add_log_shipping_primary_database debe ejecutarse desde la master base de datos en el servidor principal. Este procedimiento almacenado realiza las siguientes funciones:

  1. Genera un identificador principal y agrega una entrada para la base de datos principal de la tabla log_shipping_primary_databases mediante los argumentos proporcionados.

  2. Crea un trabajo de copia de seguridad para la base de datos principal que está deshabilitada.

  3. Establece el identificador del trabajo de copia de seguridad en la log_shipping_primary_databases entrada en el identificador de trabajo del trabajo de copia de seguridad.

  4. Agrega un registro de monitor local en la tabla log_shipping_monitor_primary del servidor principal mediante argumentos proporcionados.

  5. Si el servidor de supervisión es diferente del servidor principal, sp_add_log_shipping_primary_database agrega un registro de supervisión en log_shipping_monitor_primary en el servidor de supervisión mediante argumentos proporcionados.

Permisos

Solo los miembros del rol fijo de servidor sysadmin pueden ejecutar este procedimiento.

Ejemplos

A. Añadir una base de datos primaria en una configuración de envío de troncos

En este ejemplo se agrega la base de datos AdventureWorks2025 como la base de datos principal en una configuración de trasvase de registros.

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXECUTE master.dbo.sp_add_log_shipping_primary_database
    @database = N'AdventureWorks',
    @backup_directory = N'c:\lsbackup',
    @backup_share = N'\\backupshare\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 1440,
    @monitor_server = N'monitor-server',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert = 0,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @backup_compression = 0;
GO

B. Añadir base de datos primaria con cifrado estricto

En este ejemplo se agrega la base de datos como base de datos AdventureWorks2025 principal en una configuración de trasvase de registros y se indica al trasvase de registros que usen las opciones de cifrado estrictas para la conexión a la instancia principal desde el ejecutable de trasvase de registros y desde la instancia principal a la instancia monitor-serverde supervisión remota.

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXECUTE master.dbo.sp_add_log_shipping_primary_database
    @database = N'AdventureWorks',
    @backup_directory = N'c:\lsbackup',
    @backup_share = N'\\backupshare\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 1440,
    @monitor_server = N'monitor-server',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert = 0,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @backup_compression = 0,
    @primary_connection_options = N'Encrypt=Strict;',
    @monitor_connection_options = N'Encrypt=Strict;';
GO

C. Utiliza un monitor remoto con opciones de conectividad

La supervisión del trasvase de registros puede interrumpirse si el monitor es una instancia remota de SQL Server 2025 (17.x), cuando otras instancias de SQL Server de la topología de trasvase de registros usan una versión anterior.

Una vez que elimines la configuración existente, usa el siguiente script de ejemplo para recrear la configuración de envío de troncos con el @monitor_connection_options correcto, tanto para la réplica primaria como para la secundaria.

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXECUTE
    master.dbo.sp_add_log_shipping_primary_database
    @database = N'LogShippedDB',
    @backup_directory = N'\\backupshare\lsbackup',
    @backup_share = N'\\backupshare\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 4320,
    @backup_compression = 2,
    @monitor_server = N'LS25Monitor',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert_enabled = 1,
    @history_retention_period = 5760,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @monitor_connection_options = N'Encrypt=Mandatory;TrustServerCertificate=Yes;';

Para obtener más información, consulte Comportamiento de validación de certificados y cifrado.