Partilhar via


sp_add_log_shipping_primary_database (Transact-SQL)

Aplica-se a:SQL Server

Configura o banco de dados primário para uma configuração de envio de logs, incluindo o trabalho de backup, o registro do monitor local e o registro do monitor remoto.

Transact-SQL convenções de sintaxe

Sintaxe

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 dados»

O nome do banco de dados primário de envio de logs. @database é sysname, sem padrão, e não pode ser NULL.

@backup_directory [ = ] N'backup_directory'

O caminho para a pasta de backup no servidor primário. @backup_directory é nvarchar(500), sem padrão, e não pode ser NULL.

@backup_share [ = ] N'backup_share'

O caminho de rede para o diretório de backup no servidor primário. @backup_share é nvarchar(500), sem padrão, e não pode ser NULL.

@backup_job_name [ = ] «backup_job_name»

O nome do trabalho do SQL Server Agent no servidor primário que copia o backup para a pasta de backup. @backup_job_name é sysname e não pode ser NULL.

@backup_retention_period [ = ] backup_retention_period

O período de tempo, em minutos, para manter o arquivo de backup de log no diretório de backup no servidor primário. @backup_retention_period é int, sem padrão, e não pode ser NULL.

@monitor_server [ = ] «monitor_server»

O nome do servidor monitor. @monitor_server é sysname, sem padrão, e não pode ser NULL.

@monitor_server_security_mode [ = ] monitor_server_security_mode

O modo de segurança usado para se conectar ao servidor monitor.

  • 1: Autenticação do Windows
  • 0: Autenticação do SQL Server

@monitor_server_security_mode é bit, com um padrão de 1, e não pode ser NULL.

@monitor_server_login [ = ] «monitor_server_login»

O nome de usuário da conta usada para acessar o servidor monitor.

@monitor_server_password [ = ] «monitor_server_password»

A senha da conta usada para acessar o servidor monitor.

@backup_threshold [ = ] backup_threshold

O período de tempo, em minutos, após o último backup antes que um erro de @threshold_alert seja gerado. @backup_threshold é int, com um padrão de 60 minutos.

@threshold_alert [ = ] threshold_alert

O alerta a ser disparado quando o limite de backup for excedido. @threshold_alert é int, com um padrão de 14.420.

@threshold_alert_enabled [ = ] threshold_alert_enabled

Especifica se um alerta é gerado quando @backup_threshold é excedido. O valor zero (0), o padrão, significa que o alerta está desativado e não será gerado. @threshold_alert_enabled é pouco.

@history_retention_period [ = ] history_retention_period

O período de tempo em minutos em que o histórico é mantido. @history_retention_period é int, com um padrão de NULL. Um valor de 14420 é usado se nenhum for especificado.

@backup_job_id [ = ] backup_job_id SAÍDA

A ID do trabalho do SQL Server Agent associada ao trabalho de backup no servidor primário. @backup_job_id é um parâmetro OUTPUT do tipo uniqueidentifier e não pode ser NULL.

@primary_id [ = ] primary_id SAÍDA

A ID do banco de dados primário para a configuração de envio de logs. @primary_id é um parâmetro OUTPUT do tipo uniqueidentifier e não pode ser NULL.

@backup_compression [ = ] backup_compression_option

Especifica se uma configuração de envio de logs usa compactação de backup.

  • 0: Desativado. Nunca compacte backups de log.
  • 1: Ativado. Sempre compacte backups de log.
  • 2 (padrão): use a opção de configuração do servidor padrão de compactação de backup .

@primary_connection_options [ = ] «<key_value_pairs>;[ ...]»

Aplica-se a: SQL Server 2025 (17.x) e versões posteriores

Especifica opções de conectividade adicionais ao se conectar ao primário, na forma de pares de valores de chave. @primary_connection_options é nvarchar(4000) e tem o padrão de NULL.

A tabela a seguir lista as opções de conectividade disponíveis:

Key Valor
Encrypt strict, mandatory, optional, true, false
TrustServerCertificate true, false, yes, no
ServerCertificate Caminho no sistema de arquivos para o certificado do servidor. Este tem um comprimento máximo de 260 caracteres.
HostNameInCertificate Substituição de nome de host para o certificado. Este tem um comprimento máximo de 255 caracteres.

@monitor_connection_options [ = ] «<key_value_pairs>;[ ...]»

Aplica-se a: SQL Server 2025 (17.x) e versões posteriores

Especifica opções de conectividade adicionais para a conexão do servidor vinculado ao utilizar um monitor remoto, na forma de pares de valores de chave. @monitor_connection_options é nvarchar(4000) e tem o padrão de NULL.

A tabela a seguir lista as opções de conectividade disponíveis:

Key Valor
Encrypt strict, mandatory, optional, true, false
TrustServerCertificate true, false, yes, no
ServerCertificate Caminho no sistema de arquivos para o certificado do servidor. Este tem um comprimento máximo de 260 caracteres.
HostNameInCertificate Substituição de nome de host para o certificado. Este tem um comprimento máximo de 255 caracteres.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

sp_add_log_shipping_primary_database deve ser executado a master partir do banco de dados no servidor primário. Este procedimento armazenado executa as seguintes funções:

  1. Gera uma ID primária e adiciona uma entrada para o banco de dados primário na tabela log_shipping_primary_databases usando os argumentos fornecidos.

  2. Cria um trabalho de backup para o banco de dados primário que está desabilitado.

  3. Define a log_shipping_primary_databases ID da tarefa de backup na entrada como a ID da tarefa de backup.

  4. Adiciona um registro de monitor local na tabela log_shipping_monitor_primary no servidor primário usando argumentos fornecidos.

  5. Se o servidor monitor for diferente do servidor primário, sp_add_log_shipping_primary_database adiciona um registro de monitor no log_shipping_monitor_primary servidor monitor usando os argumentos fornecidos.

Permissões

Somente membros da função de servidor fixa sysadmin podem executar este procedimento.

Exemplos

A. Adicionar uma base de dados primária numa configuração de envio de troncos

Este exemplo adiciona o banco de dados como o banco de AdventureWorks2025 dados primário em uma configuração de envio de logs.

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. Adicionar base de dados primária com encriptação rigorosa

Este exemplo adiciona o banco de dados como o banco de AdventureWorks2025 dados primário em uma configuração de envio de logs e instrui o envio de logs a usar as opções de criptografia estritas para a conexão com a instância primária do executável de envio de logs e da instância primária para a instância monitor-serverdo monitor remoto.

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. Use um monitor remoto com opções de conectividade

A monitorização do envio de registos pode falhar se o monitor for uma instância remota do SQL Server 2025 (17.x), quando outras instâncias do SQL Server na topologia de envio de registos usam uma versão anterior.

Depois de abandonares a configuração existente, usa o seguinte script de exemplo para recriar a configuração de envio de troncos com o @monitor_connection_options correto, tanto para as réplicas primárias como secundárias.

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 mais informações, veja Comportamento de encriptação e validação de certificados.