Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
Gera uma ID primária e adiciona uma entrada para o banco de dados primário na tabela
log_shipping_primary_databasesusando os argumentos fornecidos.Cria um trabalho de backup para o banco de dados primário que está desabilitado.
Define a
log_shipping_primary_databasesID da tarefa de backup na entrada como a ID da tarefa de backup.Adiciona um registro de monitor local na tabela
log_shipping_monitor_primaryno servidor primário usando argumentos fornecidos.Se o servidor monitor for diferente do servidor primário,
sp_add_log_shipping_primary_databaseadiciona um registro de monitor nolog_shipping_monitor_primaryservidor 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.