Teilen über


sp_add_log_shipping_primary_database (Transact-SQL)

Gilt für:SQL Server

Richtet die primäre Datenbank, einschließlich des Sicherungsauftrags sowie des lokalen und Remoteüberwachungseintrags, für eine Protokollversandkonfiguration ein.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @database = ] 'Datenbank'

Der Name der primären Datenbank für den Protokollversand. @database ist "sysname" ohne Standard und kann nicht seinNULL.

[ @backup_directory = ] N'backup_directory'

Der Pfad zum Sicherungsordner auf dem primären Server. @backup_directory ist nvarchar(500), ohne Standard und kann nicht seinNULL.

[ @backup_share = ] N'backup_share'

Der Netzwerkpfad zum Sicherungsverzeichnis auf dem primären Server. @backup_share ist nvarchar(500), ohne Standard und kann nicht seinNULL.

[ @backup_job_name = ] 'backup_job_name'

Der Name des SQL Server-Agent Auftrags auf dem primären Server, der die Sicherung in den Sicherungsordner kopiert. @backup_job_name ist "sysname" und kann nicht seinNULL.

[ @backup_retention_period = ] backup_retention_period

Die Dauer der Aufbewahrung der Protokolldatei im Sicherungsverzeichnis auf dem primären Server in Minuten. @backup_retention_period ist int, ohne Standard und kann nicht seinNULL.

[ @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.

[ @backup_threshold = ] backup_threshold

Die Zeitdauer in Minuten nach der letzten Sicherung, bevor ein @threshold_alert Fehler ausgelöst wird. @backup_threshold ist "int" mit einer Standardeinstellung von 60 Minuten.

[ @threshold_alert = ] threshold_alert

Die Warnung, die bei Überschreiten des Sicherungsschwellenwertes ausgelöst wird. @threshold_alert ist "int" mit dem Standardwert 14.420.

[ @threshold_alert_enabled = ] threshold_alert_enabled

Gibt an, ob eine Warnung ausgelöst wird, wenn @backup_threshold überschritten wird. Der Wert null (0), der Standardwert, bedeutet, dass die Warnung deaktiviert ist und nicht ausgelöst wird. @threshold_alert_enabled ist bit.

[ @history_retention_period = ] history_retention_period

Die Zeitdauer in Minuten, in der der Verlauf beibehalten wird. @history_retention_period ist int, mit einem Standardwert von NULL. Falls nichts angegeben wird, wird ein Wert von 14420 verwendet.

[ @backup_job_id = ] backup_job_id AUSGABE

Die SQL Server-Agent Auftrags-ID, die dem Sicherungsauftrag auf dem primären Server zugeordnet ist. @backup_job_id ist ein OUTPUT-Parameter vom Typ uniqueidentifier und kann nicht seinNULL.

[ @primary_id = ] primary_id AUSGABE

Die ID der primären Datenbank für die Protokollversandkonfiguration. @primary_id ist ein OUTPUT-Parameter vom Typ uniqueidentifier und kann nicht seinNULL.

[ @backup_compression = ] backup_compression_option

Gibt an, ob eine Protokollversandkonfiguration Sicherungskomprimierung verwendet.

  • 0:Arbeitsunfähig. Protokollsicherungen nie komprimieren.
  • 1:Ermöglichte. Protokollsicherungen immer komprimieren.
  • 2 (Standardeinstellung): Verwenden Sie die Standardkonfigurationsoption für die Sicherungskomprimierung .

[ @primary_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 primären Verbindung in Form von Schlüsselwertpaaren an. @primary_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_primary_database muss aus der master Datenbank auf dem primären Server ausgeführt werden. Diese gespeicherte Prozedur führt die folgenden Aktionen aus:

  1. Generiert eine primäre ID und fügt mithilfe der angegebenen Argumente einen Eintrag für die primäre Datenbank in der Tabelle log_shipping_primary_databases hinzu.

  2. Erstellen eines Sicherungsauftrags für die primäre Datenbank, die deaktiviert ist.

  3. Legt die Sicherungsauftrags-ID im log_shipping_primary_databases Eintrag auf die Auftrags-ID des Sicherungsauftrags fest.

  4. Fügt einen lokalen Monitordatensatz in der Tabelle log_shipping_monitor_primary auf dem primären Server mithilfe der angegebenen Argumente hinzu.

  5. Wenn sich der Monitorserver vom primären Server unterscheidet, sp_add_log_shipping_primary_database wird ein Monitordatensatz log_shipping_monitor_primary auf dem Monitorserver mithilfe der angegebenen Argumente hinzugefügt.

Berechtigungen

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

Beispiele

A. Fügen Sie eine primäre Datenbank in einer Log-Shipping-Konfiguration hinzu

In diesem Beispiel wird die AdventureWorks2025-Datenbank als primäre Datenbank in einer Protokollversandkonfiguration hinzugefügt.

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. Primäre Datenbank mit strikter Verschlüsselung hinzufügen

In diesem Beispiel wird die Datenbank als primäre Datenbank AdventureWorks2025 in einer Protokollversandkonfiguration hinzugefügt und der Protokollversand angewiesen, die strengen Verschlüsselungsoptionen sowohl für die Verbindung mit der primären Instanz aus der ausführbaren Datei des Protokollversands als auch von der primären Instanz zur Remoteüberwachungsinstanz monitor-serverzu verwenden.

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. Verwenden Sie einen Fernmonitor mit Verbindungsoptionen

Die Protokollversandüberwachung kann unterbrochen werden, wenn der Monitor eine SQL Server 2025(17.x)-Remoteinstanz ist, wenn andere SQL Server-Instanzen in der Protokollversandtopologie eine frühere Version verwenden.

Sobald du die bestehende Konfiguration entfernt hast, verwende das folgende Beispielskript, um die Log-Shipping-Konfiguration mit dem richtigen @monitor_connection_options sowohl für die primäre als auch für die sekundäre Replika neu zu erstellen.

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

Weitere Informationen finden Sie unter Verschlüsselungs- und Zertifikatüberprüfungsverhalten.