Поделиться через


sp_add_log_shipping_primary_database (Transact-SQL)

Область применения:SQL Server

Настраивает базу данных-источник для конфигурации доставки журналов, включая задания резервного копирования, запись локального монитора и запись удаленного монитора.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @database = ] 'база данных'

Имя базы данных-источника доставки журналов. @database — sysname, без значения по умолчанию и не может бытьNULL.

[ @backup_directory = ] N'backup_directory'

Путь к папке резервного копирования на основном сервере. @backup_directory является nvarchar(500), без значения по умолчанию и не может бытьNULL.

[ @backup_share = ] N'backup_share'

Сетевой путь к каталогу резервного копирования на основном сервере. @backup_share является nvarchar(500), без значения по умолчанию и не может бытьNULL.

[ @backup_job_name = ] 'backup_job_name'

Имя задания агент SQL Server на основном сервере, который копирует резервную копию в папку резервного копирования. @backup_job_name является sysname и не может бытьNULL.

[ @backup_retention_period = ] backup_retention_period

Продолжительность хранения файла резервного копирования журнала в каталоге резервного копирования на основном сервере в минутах. @backup_retention_period является int, без значения по умолчанию и не может бытьNULL.

[ @monitor_server = ] 'monitor_server'

Имя сервера монитора. @monitor_server является sysname, без значения по умолчанию и не может бытьNULL.

[ @monitor_server_security_mode = ] monitor_server_security_mode

Режим безопасности, используемый для подключения к серверу мониторинга:

  • 1: проверка подлинности Windows
  • 0: проверка подлинности SQL Server

@monitor_server_security_mode бит, с значением по умолчанию 1и не может бытьNULL.

[ @monitor_server_login = ] 'monitor_server_login'

Имя пользователя учетной записи, используемой для доступа к серверу мониторинга.

[ @monitor_server_password = ] 'monitor_server_password'

Пароль учетной записи, используемой для доступа к серверу мониторинга.

[ @backup_threshold = ] backup_threshold

Длительность времени в минутах после последнего резервного копирования до возникновения ошибки @threshold_alert . @backup_threshold имеет значение int с значением по умолчанию 60 минут.

[ @threshold_alert = ] threshold_alert

Предупреждение, создаваемое при превышении порогового значения. @threshold_alert имеет значение int с значением по умолчанию 144 420.

[ @threshold_alert_enabled = ] threshold_alert_enabled

Указывает, вызывается ли оповещение при превышении @backup_threshold . Значение нуля (0) по умолчанию означает, что оповещение отключено и не будет поднято. @threshold_alert_enabled бит.

[ @history_retention_period = ] history_retention_period

Длительность времени в минутах, в течение которого сохраняется журнал. @history_retention_period имеет значение int с значением по умолчаниюNULL. Если ничего не указано, используется значение 14 420.

[ @backup_job_id = ] backup_job_id ВЫХОД

Идентификатор задания агент SQL Server, связанный с заданием резервного копирования на основном сервере. @backup_job_id является параметром OUTPUT типа uniqueidentifier и не может бытьNULL.

[ @primary_id = ] primary_id ВЫХОД

Идентификатор базы данных-источника в конфигурации доставки журналов. @primary_id является параметром OUTPUT типа uniqueidentifier и не может бытьNULL.

[ @backup_compression = ] backup_compression_option

Указывает, используется ли конфигурация доставки журналов сжатие резервных копий.

  • 0:Нетрудоспособный. Не сжимать резервные копии журналов.
  • 1:Включен. Всегда сжимать резервные копии журналов.
  • 2 (по умолчанию): используйте параметр конфигурации сервера сжатия резервных копий по умолчанию .

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

Применимо к: SQL Server 2025 (17.x) и более поздним версиям

Задает дополнительные параметры подключения при подключении к первичному источнику в виде пар "значение ключа". @primary_connection_optionsnvarchar(4000) и имеет значение по умолчанию NULL.

В следующей таблице перечислены доступные параметры подключения:

Key Ценность
Encrypt strict, , mandatoryoptional, truefalse
TrustServerCertificate true false yes no
ServerCertificate Путь к файловой системе к сертификату сервера. Это имеет максимальную длину 260 символов.
HostNameInCertificate Переопределение имени узла для сертификата. Это имеет максимальную длину 255 символов.

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

Применимо к: SQL Server 2025 (17.x) и более поздним версиям

Задает дополнительные параметры подключения для подключения связанного сервера при использовании удаленного монитора в виде пар "значение ключа". @monitor_connection_optionsnvarchar(4000) и имеет значение по умолчанию NULL.

В следующей таблице перечислены доступные параметры подключения:

Key Ценность
Encrypt strict, , mandatoryoptional, truefalse
TrustServerCertificate true false yes no
ServerCertificate Путь к файловой системе к сертификату сервера. Это имеет максимальную длину 260 символов.
HostNameInCertificate Переопределение имени узла для сертификата. Это имеет максимальную длину 255 символов.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Нет.

Замечания

sp_add_log_shipping_primary_database необходимо запустить из master базы данных на сервере-источнике. Эта хранимая процедура выполняет следующие действия:

  1. Создает первичный идентификатор и добавляет запись для базы данных-источника в таблице log_shipping_primary_databases с помощью предоставленных аргументов.

  2. создает задание резервного копирования для базы данных-источника, если она отключена;

  3. Задает идентификатор задания резервного копирования в log_shipping_primary_databases записи идентификатором задания резервного копирования.

  4. Добавляет запись локального монитора в таблицу log_shipping_monitor_primary на основном сервере с помощью предоставленных аргументов.

  5. Если сервер монитора отличается от основного сервера, sp_add_log_shipping_primary_database добавляет запись монитора на log_shipping_monitor_primary сервер монитора с использованием предоставленных аргументов.

Разрешения

Только члены предопределенных ролей сервера sysadmin могут выполнять эту процедуру.

Примеры

А. Добавьте первичную базу данных в конфигурации доставки журналов

В этом примере база данных AdventureWorks2025 добавляется в качестве базы данных-источника в конфигурацию доставки журналов.

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

В. Добавить первичную базу данных с строгим шифрованием

В этом примере база данных добавляется в качестве базы данных-источника AdventureWorks2025 в конфигурации доставки журналов и указывает доставке журналов использовать строгие параметры шифрования для подключения к основному экземпляру из исполняемого файла доставки журналов и из основного экземпляра в экземпляр monitor-serverудаленного монитора.

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

С. Используйте удалённый монитор с опциями подключения

Мониторинг доставки журналов может нарушиться, если монитор является удаленным экземпляром SQL Server 2025 (17.x), если другие экземпляры SQL Server в топологии доставки журналов используют предыдущую версию.

После отказа от существующей конфигурации используйте следующий пример скрипта, чтобы воссоздать конфигурацию лог-отправки с правильным @monitor_connection_options как для основной, так и для вторичной реплики.

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

Дополнительные сведения см. в разделе о поведении проверки шифрования и сертификата.