Udostępnij za pomocą


sp_add_log_shipping_primary_database (Transact-SQL)

Dotyczy:SQL Server

Konfiguruje podstawową bazę danych na potrzeby konfiguracji wysyłania dziennika, w tym zadanie tworzenia kopii zapasowej, rekord lokalnego monitora i rekord zdalnego monitorowania.

Transact-SQL konwencje składni

Składnia

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

Arguments

[ @database = ] 'baza danych'

Nazwa podstawowej bazy danych wysyłania dziennika. @database jest nazwą systemu bez wartości domyślnej i nie może być NULL.

[ @backup_directory = ] N'backup_directory'

Ścieżka do folderu kopii zapasowej na serwerze podstawowym. @backup_directory to nvarchar(500), bez wartości domyślnej i nie może być NULL.

[ @backup_share = ] N'backup_share'

Ścieżka sieciowa do katalogu kopii zapasowej na serwerze podstawowym. @backup_share to nvarchar(500), bez wartości domyślnej i nie może być NULL.

[ @backup_job_name = ] 'backup_job_name'

Nazwa zadania agenta programu SQL Server na serwerze podstawowym, który kopiuje kopię zapasową do folderu kopii zapasowej. @backup_job_name jest nazwą sysname i nie może być NULL.

[ @backup_retention_period = ] backup_retention_period

Czas przechowywania pliku kopii zapasowej dziennika w katalogu kopii zapasowej na serwerze podstawowym w minutach. @backup_retention_period jest int, bez wartości domyślnej i nie może być NULL.

[ @monitor_server = ] 'monitor_server'

Nazwa serwera monitora. @monitor_server jest nazwą systemu bez wartości domyślnej i nie może być NULL.

[ @monitor_server_security_mode = ] monitor_server_security_mode

Tryb zabezpieczeń używany do nawiązywania połączenia z serwerem monitora.

  • 1: Uwierzytelnianie systemu Windows
  • 0: Uwierzytelnianie programu SQL Server

@monitor_server_security_mode jest bit, z wartością domyślną 1, a nie może być NULL.

[ @monitor_server_login = ] 'monitor_server_login'

Nazwa użytkownika konta używanego do uzyskiwania dostępu do serwera monitora.

[ @monitor_server_password = ] 'monitor_server_password'

Hasło konta używanego do uzyskiwania dostępu do serwera monitora.

[ @backup_threshold = ] backup_threshold

Czas (w minutach) po utworzeniu ostatniej kopii zapasowej przed wyświetleniem błędu @threshold_alert . @backup_threshold jest int, z wartością domyślną 60 minut.

[ @threshold_alert = ] threshold_alert

Alert, który ma zostać zgłoszony po przekroczeniu progu kopii zapasowej. @threshold_alert jest int z wartością domyślną 14 420.

[ @threshold_alert_enabled = ] threshold_alert_enabled

Określa, czy alert jest zgłaszany po przekroczeniu @backup_threshold . Wartość zero (0), wartość domyślna oznacza, że alert jest wyłączony i nie zostanie zgłoszony. @threshold_alert_enabled jest bit.

[ @history_retention_period = ] history_retention_period

Czas przechowywania historii w minutach. @history_retention_period jest int z wartością domyślną NULL. Wartość 14420 jest używana, jeśli nie określono żadnej.

[ @backup_job_id = ] backup_job_id DANE WYJŚCIOWE

Identyfikator zadania agenta programu SQL Server skojarzony z zadaniem tworzenia kopii zapasowej na serwerze podstawowym. @backup_job_id jest parametrem OUTPUT typu uniqueidentifier i nie może być NULL.

[ @primary_id = ] primary_id WYJŚCIE

Identyfikator podstawowej bazy danych dla konfiguracji wysyłania dziennika. @primary_id jest parametrem OUTPUT typu uniqueidentifier i nie może być NULL.

[ @backup_compression = ] backup_compression_option

Określa, czy konfiguracja wysyłania dziennika używa kompresji kopii zapasowej.

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

Dotyczy do: SQL Server 2025 (17.x) i nowszych wersji

Określa dodatkowe opcje łączności podczas nawiązywania połączenia z podstawowymi parami wartości klucza. @primary_connection_options to nvarchar(4000) i ma wartość domyślną NULL.

W poniższej tabeli wymieniono dostępne opcje łączności:

Key Wartość
Encrypt strict, , mandatory, optional, , truefalse
TrustServerCertificate true, , false, , yesno
ServerCertificate Ścieżka w systemie plików do certyfikatu serwera. Ma maksymalną długość 260 znaków.
HostNameInCertificate Zastąpić nazwę hosta dla certyfikatu. Ma maksymalną długość 255 znaków.

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

Dotyczy do: SQL Server 2025 (17.x) i nowszych wersji

Określa dodatkowe opcje łączności dla połączenia serwera połączonego podczas korzystania z monitora zdalnego w postaci par klucz wartość. @monitor_connection_options to nvarchar(4000) i ma wartość domyślną NULL.

W poniższej tabeli wymieniono dostępne opcje łączności:

Key Wartość
Encrypt strict, , mandatory, optional, , truefalse
TrustServerCertificate true, , false, , yesno
ServerCertificate Ścieżka w systemie plików do certyfikatu serwera. Ma maksymalną długość 260 znaków.
HostNameInCertificate Zastąpić nazwę hosta dla certyfikatu. Ma maksymalną długość 255 znaków.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Zestaw wyników

Żaden.

Uwagi

sp_add_log_shipping_primary_database należy uruchomić z master bazy danych na serwerze podstawowym. Ta procedura składowana wykonuje następujące funkcje:

  1. Generuje identyfikator podstawowy i dodaje wpis dla podstawowej bazy danych w tabeli log_shipping_primary_databases przy użyciu podanych argumentów.

  2. Tworzy zadanie tworzenia kopii zapasowej dla podstawowej bazy danych, która jest wyłączona.

  3. Ustawia identyfikator zadania tworzenia kopii zapasowej we wpisie log_shipping_primary_databases na identyfikator zadania tworzenia kopii zapasowej.

  4. Dodaje rekord lokalnego monitora w tabeli log_shipping_monitor_primary na serwerze podstawowym przy użyciu podanych argumentów.

  5. Jeśli serwer monitora różni się od serwera podstawowego, sp_add_log_shipping_primary_database dodaje rekord log_shipping_monitor_primary monitora na serwerze monitora przy użyciu podanych argumentów.

Permissions

Tę procedurę mogą uruchamiać tylko członkowie stałej roli serwera sysadmin .

Przykłady

A. Dodaj podstawową bazę danych w konfiguracji wysyłania logów

W tym przykładzie baza danych jest dodana jako podstawowa baza danych AdventureWorks2025 w konfiguracji wysyłania dziennika.

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. Dodaj bazę podstawową z rygorystycznym szyfrowaniem

W tym przykładzie baza danych jest dodawała jako podstawową bazę danych AdventureWorks2025 w konfiguracji wysyłania dziennika i instruuje wysyłanie dzienników, aby korzystała ze ścisłych opcji szyfrowania zarówno dla połączenia z wystąpieniem podstawowym z pliku wykonywalnego wysyłania dziennika, jak i z wystąpienia podstawowego do wystąpienia monitor-serverzdalnego monitora.

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. Użyj zdalnego monitora z opcjami łączności

Monitorowanie wysyłki dzienników może przerwać, jeśli monitor jest zdalnym wystąpieniem programu SQL Server 2025 (17.x), gdy inne wystąpienia programu SQL Server w topologii wysyłki dziennika używają poprzedniej wersji.

Po rezygnacji z istniejącej konfiguracji użyj poniższego przykładowego skryptu, aby odtworzyć konfigurację wysyłki logów z odpowiednim @monitor_connection_options, zarówno dla repliki głównej, jak i drugoplanowej.

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

Aby uzyskać więcej informacji, zobacz Szyfrowanie i zachowanie weryfikacji certyfikatu.