Teilen über


sp_add_log_shipping_secondary_primary (Transact-SQL)

Gilt für:SQL Server

Richtet die primären Informationen ein, fügt Links zur lokalen und Remoteüberwachung hinzu und erstellt auf dem sekundären Server Kopier- und Wiederherstellungsaufträge für die angegebene primäre Datenbank.

Transact-SQL-Syntaxkonventionen

Syntax

sp_add_log_shipping_secondary_primary
    [ @primary_server = ] 'primary_server'
    , [ @primary_database = ] 'primary_database'
    , [ @backup_source_directory = ] N'backup_source_directory'
    , [ @backup_destination_directory = ] N'backup_destination_directory'
    , [ @copy_job_name = ] 'copy_job_name'
    , [ @restore_job_name = ] 'restore_job_name'
    [ , [ @file_retention_period = ] 'file_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' ]
    [ , [ @copy_job_id = ] 'copy_job_id' OUTPUT ]
    [ , [ @restore_job_id = ] 'restore_job_id' OUTPUT ]
    [ , [ @secondary_id = ] 'secondary_id' OUTPUT ]
    [ , [ @secondary_connection_options = ] '<key_value_pairs>;[...]' ]
    [ , [ @monitor_connection_options = ] '<key_value_pairs>;[...]' ]
[ ; ]

Argumente

[ @primary_server = ] 'primary_server'

Der Name der primären Instanz der SQL Server-Datenbank-Engine in der Protokollversandkonfiguration @primary_server ist "sysname" und kann nicht seinNULL.

[ @primary_database = ] 'primary_database'

Der Name der Datenbank auf dem primären Server. @primary_database ist "sysname" ohne Standard.

[ @backup_source_directory = ] N'backup_source_directory'

Das Verzeichnis, in dem die Dateien der Transaktionsprotokollsicherung gespeichert werden. @backup_source_directory ist nvarchar(500) und kann nicht seinNULL.

[ @backup_destination_directory = ] N'backup_destination_directory'

Das Verzeichnis auf dem sekundären Server, in das Sicherungsdateien kopiert werden @backup_destination_directory ist nvarchar(500) und kann nicht seinNULL.

[ @copy_job_name = ] 'copy_job_name'

Der Name, der für den erstellten SQL Server-Agent Auftrag verwendet werden soll, um Transaktionsprotokollsicherungen auf den sekundären Server zu kopieren. copy_job_name ist "sysname" und kann nicht seinNULL.

[ @restore_job_name = ] 'restore_job_name'

Der Name des SQL Server-Agent Auftrags auf dem sekundären Server, mit dem die Sicherungen in der sekundären Datenbank wiederhergestellt werden. restore_job_name ist "sysname" und kann nicht seinNULL.

[ @file_retention_period = ] 'file_retention_period'

Die Zeitdauer in Minuten, die eine Sicherungsdatei auf dem sekundären Server im durch den @backup_destination_directory Parameter angegebenen Pfad aufbewahrt wird, bevor sie gelöscht werden. @history_retention_period ist int, mit einem Standardwert von NULL. Falls nichts angegeben wird, wird ein Wert von 14420 verwendet.

[ @monitor_server = ] 'monitor_server'

Der Name des Monitorservers. @monitor_server ist "sysname" ohne Standard und kann nicht seinNULL.

[ @monitor_server_security_mode = ] 'monitor_server_security_mode'

Der Sicherheitsmodus, der zum Herstellen einer Verbindung mit dem Überwachungsserver verwendet wird.

  • 1: Windows-Authentifizierung
  • 0: SQL Server-Authentifizierung

@monitor_server_security_mode ist bit, mit einem Standardwert von 1, und kann nicht seinNULL.

[ @monitor_server_login = ] 'monitor_server_login'

Der Benutzername des Kontos, das für den Zugriff auf den Monitorserver verwendet wird.

[ @monitor_server_password = ] 'monitor_server_password'

Das Kennwort des Kontos, das für den Zugriff auf den Monitorserver verwendet wird.

[ @copy_job_id = ] 'copy_job_id' AUSGABE

Die dem Kopierauftrag zugeordnete ID auf dem sekundären Server @copy_job_id ist eindeutiger Bezeichner und kann nicht seinNULL.

[ @restore_job_id = ] 'restore_job_id' AUSGABE

Die dem Wiederherstellungsauftrag zugeordnete ID auf dem sekundären Server @restore_job_id ist eindeutiger Bezeichner und kann nicht seinNULL.

[ @secondary_id = ] 'secondary_id' AUSGABE

Die ID für den sekundären Server in der Protokollversandkonfiguration. @secondary_id ist eindeutiger Bezeichner und kann nicht seinNULL.

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

Gilt für: SQL Server 2025 (17.x) und spätere Versionen

Gibt zusätzliche Konnektivitätsoptionen beim Herstellen einer Verbindung mit der sekundären Verbindung in Form von Schlüsselwertpaaren an. @secondary_connection_options ist nvarchar(4000) und hat den Standardwert von NULL.

In der folgenden Tabelle sind die verfügbaren Konnektivitätsoptionen aufgeführt:

Key Wert
Encrypt strict, , mandatoryoptional, , truefalse
TrustServerCertificate true false yes no
ServerCertificate Pfad im Dateisystem zum Serverzertifikat. Dies hat eine maximale Länge von 260 Zeichen.
HostNameInCertificate Hostname außer Kraft setzen für das Zertifikat. Dies hat eine maximale Länge von 255 Zeichen.

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

Gilt für: SQL Server 2025 (17.x) und spätere Versionen

Gibt zusätzliche Konnektivitätsoptionen für die verknüpfte Serververbindung bei Verwendung eines Remotemonitors in Form von Schlüsselwertpaaren an. @monitor_connection_options ist nvarchar(4000) und hat den Standardwert von NULL.

In der folgenden Tabelle sind die verfügbaren Konnektivitätsoptionen aufgeführt:

Key Wert
Encrypt strict, , mandatoryoptional, , truefalse
TrustServerCertificate true false yes no
ServerCertificate Pfad im Dateisystem zum Serverzertifikat. Dies hat eine maximale Länge von 260 Zeichen.
HostNameInCertificate Hostname außer Kraft setzen für das Zertifikat. Dies hat eine maximale Länge von 255 Zeichen.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

sp_add_log_shipping_secondary_primary muss von der master Datenbank auf dem sekundären Server ausgeführt werden. Diese gespeicherte Prozedur führt folgende Aktionen aus:

  1. Generiert eine sekundäre ID für den angegebenen primären Server und die primäre Datenbank.

  2. Führt Folgendes aus:

    1. Fügt einen Eintrag für die sekundäre ID hinzu, indem log_shipping_secondary die angegebenen Argumente verwendet werden.
    2. Erstellt einen Kopierauftrag für die sekundäre ID, die deaktiviert ist.
    3. Legt die Kopierauftrags-ID im log_shipping_secondary Eintrag auf die Auftrags-ID des Kopierauftrags fest.
    4. Erstellt einen Wiederherstellungsauftrag für die sekundäre ID, die deaktiviert ist.
    5. Legen Sie die Wiederherstellungsauftrags-ID im log_shipping_secondary Eintrag auf die Auftrags-ID des Wiederherstellungsauftrags fest.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können diese Prozedur ausführen.

Beispiele

In diesem Beispiel wird die Verwendung der sp_add_log_shipping_secondary_primary gespeicherten Prozedur zum Einrichten von Informationen für die primäre Datenbank AdventureWorks2025 auf dem sekundären Server veranschaulicht.

EXECUTE master.dbo.sp_add_log_shipping_secondary_primary
    @primary_server = N'TRIBECA',
    @primary_database = N'AdventureWorks2022',
    @backup_source_directory = N'\\tribeca\LogShipping',
    @backup_destination_directory = N'',
    @copy_job_name = N'',
    @restore_job_name = N'',
    @file_retention_period = 1440,
    @monitor_server = N'ROCKAWAY',
    @monitor_server_security_mode = 1,
    @copy_job_id = @LS_Secondary__CopyJobId OUTPUT,
    @restore_job_id = @LS_Secondary__RestoreJobId OUTPUT,
    @secondary_id = @LS_Secondary__SecondaryId OUTPUT;
GO