Condividi tramite


sp_add_log_shipping_primary_database (Transact-SQL)

Si applica a:SQL Server

Imposta il database primario per una configurazione di log shipping, inclusi il processo di backup, il record di monitoraggio locale e il record di monitoraggio remoto.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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>;[...]' ]
[ ; ]

Argomenti

[ @database = ] 'database'

Nome del database primario per il log shipping. @database è sysname, senza impostazione predefinita e non può essere NULL.

[ @backup_directory = ] N'backup_directory'

Percorso della cartella di backup nel server primario. @backup_directory è nvarchar(500), senza impostazione predefinita e non può essere NULL.

[ @backup_share = ] N'backup_share'

Percorso di rete della directory di backup nel server primario. @backup_share è nvarchar(500), senza impostazione predefinita e non può essere NULL.

[ @backup_job_name = ] 'backup_job_name'

Nome del processo di SQL Server Agent nel server primario che copia il backup nella cartella di backup. @backup_job_name è sysname e non può essere NULL.

[ @backup_retention_period = ] backup_retention_period

Periodo di tempo, espresso in minuti, per conservare il file di backup del log nella directory di backup nel server primario. @backup_retention_period è int, senza impostazione predefinita e non può essere NULL.

[ @monitor_server = ] 'monitor_server'

Nome del server di monitoraggio. @monitor_server è sysname, senza impostazione predefinita e non può essere NULL.

[ @monitor_server_security_mode = ] monitor_server_security_mode

Modalità di sicurezza utilizzata per connettersi al server di monitoraggio.

  • 1: autenticazione di Windows
  • 0: autenticazione di SQL Server

@monitor_server_security_mode è bit, con un valore predefinito e 1non può essere NULL.

[ @monitor_server_login = ] 'monitor_server_login'

Nome utente dell'account utilizzato per accedere al server di monitoraggio.

[ @monitor_server_password = ] 'monitor_server_password'

Password dell'account utilizzato per accedere al server di monitoraggio.

[ @backup_threshold = ] backup_threshold

Periodo di tempo, espresso in minuti, dopo l'ultimo backup prima che venga generato un errore di @threshold_alert . @backup_threshold è int, con un valore predefinito di 60 minuti.

[ @threshold_alert = ] threshold_alert

Avviso da generare quando viene superata la soglia per il backup. @threshold_alert è int, con un valore predefinito pari a 14.420.

[ @threshold_alert_enabled = ] threshold_alert_enabled

Specifica se viene generato un avviso quando viene superato @backup_threshold . Il valore zero (0), il valore predefinito indica che l'avviso è disabilitato e non verrà generato. @threshold_alert_enabled è bit.

[ @history_retention_period = ] history_retention_period

Periodo di tempo in minuti in cui viene mantenuta la cronologia. @history_retention_period è int, con il valore predefinito NULL. Se non si specifica un valore, verrà utilizzato il valore 14420.

[ @backup_job_id = ] backup_job_id OUTPUT

ID processo di SQL Server Agent associato al processo di backup nel server primario. @backup_job_id è un parametro OUTPUT di tipo uniqueidentifier e non può essere NULL.

[ @primary_id = ] primary_id OUTPUT

ID del database primario nella configurazione per il log shipping. @primary_id è un parametro OUTPUT di tipo uniqueidentifier e non può essere NULL.

[ @backup_compression = ] backup_compression_option

Specifica se una configurazione per il log shipping utilizza la compressione dei backup.

  • 0:Disabile. I backup del log non vengono mai compressi.
  • 1:Abilitato. I backup del log vengono sempre compressi.
  • 2 (impostazione predefinita): usare l'opzione di configurazione del server backup compression default .

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

Si applica a: SQL Server 2025 (17.x) e versioni successive

Specifica opzioni di connettività aggiuntive per la connessione al database primario, sotto forma di coppie chiave-valore. @primary_connection_options è nvarchar(4000) e ha il valore predefinito .NULL

Nella tabella seguente sono elencate le opzioni di connettività disponibili:

Key Value
Encrypt strict, mandatory, optional, truefalse
TrustServerCertificate true, false, yesno
ServerCertificate Percorso nel file system del certificato del server. Lunghezza massima di 260 caratteri.
HostNameInCertificate Override del nome host per il certificato. Lunghezza massima di 255 caratteri.

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

Si applica a: SQL Server 2025 (17.x) e versioni successive

Specifica opzioni di connettività aggiuntive per la connessione al server collegato quando si utilizza un monitoraggio remoto, sotto forma di coppie chiave-valore. @monitor_connection_options è nvarchar(4000) e ha il valore predefinito .NULL

Nella tabella seguente sono elencate le opzioni di connettività disponibili:

Key Value
Encrypt strict, mandatory, optional, truefalse
TrustServerCertificate true, false, yesno
ServerCertificate Percorso nel file system del certificato del server. Lunghezza massima di 260 caratteri.
HostNameInCertificate Override del nome host per il certificato. Lunghezza massima di 255 caratteri.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

sp_add_log_shipping_primary_database deve essere eseguito dal master database nel server primario. Questa stored procedure esegue le funzioni seguenti:

  1. Genera un ID primario e aggiunge una voce per il database primario nella tabella log_shipping_primary_databases utilizzando gli argomenti forniti.

  2. Crea un processo di backup per il database primario disabilitato.

  3. Imposta l'ID processo di backup nella log_shipping_primary_databases voce sull'ID processo del processo di backup.

  4. Aggiunge un record di monitoraggio locale nella tabella log_shipping_monitor_primary nel server primario utilizzando argomenti forniti.

  5. Se il server di monitoraggio è diverso dal server primario, sp_add_log_shipping_primary_database aggiunge un record di monitoraggio nel log_shipping_monitor_primary server di monitoraggio utilizzando argomenti forniti.

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin possono eseguire questa procedura.

Esempi

A. Aggiungi un database primario in una configurazione di spedizione di log

In questo esempio il database AdventureWorks2025 viene aggiunto come database primario in una configurazione per il log shipping.

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. Aggiungi database primario con crittografia rigorosa

Questo esempio aggiunge il database AdventureWorks2025 come database primario in una configurazione per il log shipping e indica al log shipping di usare le opzioni di crittografia rigorose per la connessione all'istanza primaria dal file eseguibile per il log shipping e dall'istanza primaria all'istanza monitor-serverdi Monitoraggio 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. Usa un monitor remoto con opzioni di connettività

Il monitoraggio del log shipping può interrompere se il monitoraggio è un'istanza remota di SQL Server 2025 (17.x), quando altre istanze di SQL Server nella topologia di log shipping usano una versione precedente.

Una volta eliminata la configurazione esistente, usa il seguente script di esempio per ricreare la configurazione di spedizione dei log con il @monitor_connection_options corretto, sia per la replica primaria che per quella secondaria.

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;';

Per altre informazioni, vedere Comportamento di crittografia e convalida dei certificati.