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


sp_add_log_shipping_primary_database (Transact-SQL)

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

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

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

Синтаксис

sys.sp_add_log_shipping_primary_database
    [ @database = ] N'database'
    , [ @backup_directory = ] N'backup_directory'
    , [ @backup_share = ] N'backup_share'
    [ , [ @backup_job_name = ] N'backup_job_name' ]
    [ , [ @backup_retention_period = ] backup_retention_period ]
    [ , [ @monitor_server = ] N'monitor_server' ]
    [ , [ @monitor_server_security_mode = ] monitor_server_security_mode ]
    [ , [ @monitor_server_login = ] N'monitor_server_login' ]
    [ , [ @monitor_server_password = ] N'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 ]
    [ , [ @overwrite = ] overwrite ]
    [ , [ @ignoreremotemonitor = ] ignoreremotemonitor ]
    [ , [ @backup_compression = ] backup_compression ]
    [ , [ @primary_server_with_port_override = ] N'primary_server_with_port_override' ]
    [ , [ @primary_connection_options = ] N'primary_connection_options' ]
    [ , [ @monitor_connection_options = ] N'monitor_connection_options' ]
[ ; ]

Аргументы

[ @database = ] N'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 = ] N'backup_job_name'

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

[ @backup_retention_period = ] backup_retention_period

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

[ @monitor_server = ] N'monitor_server'

Имя сервера монитора. @monitor_server является sysname и не может быть NULL.

[ @monitor_server_security_mode = ] monitor_server_security_mode

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

  • 1 (по умолчанию): проверка подлинности Windows
  • 0: проверка подлинности SQL Server

[ @monitor_server_login = ] N'monitor_server_login'

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

[ @monitor_server_password = ] N'monitor_server_password'

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

[ @backup_threshold = ] backup_threshold

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

[ @threshold_alert = ] threshold_alert

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

[ @threshold_alert_enabled = ] threshold_alert_enabled

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

[ @history_retention_period = ] history_retention_period

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

[ @backup_job_id = ] "backup_job_id" OUTPUT

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

[ = ] @primary_id "primary_id" OUTPUT

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

[ @overwrite = ] перезапись

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @ignoreremotemonitor = ] игнорировать дистанционный монитор

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @backup_compression = ] backup_compression

Указывает, используется ли конфигурация доставки журналов сжатие резервных копий. @backup_compression крошечный и может быть одним из следующих значений:

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

[ @primary_server_with_port_override = ] N'primary_server_with_port_override'

Допустимо только для сценариев, когда доставка журналов используется с содержащимися группами доступности в основном. @primary_server_with_port_overridesysname с значением по умолчанию NULL.

Если вы используете содержащуюся группу доступности на основной стороне доставки журналов, следует передать строку подключения в прослушиватель автономной группы доступности с портом.

Дополнительные сведения см. в разделе Что такое автономная группа доступности?

[ @primary_connection_options = ] N'primary_connection_options'

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

Задает дополнительные параметры подключения при подключении к первичному источнику в виде пар "значение ключа". @primary_connection_options является nvarchar(4000)и может быть одним из следующих значений:

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

[ @monitor_connection_options = ] N'monitor_connection_options'

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

Задает дополнительные параметры подключения для подключения связанного сервера при использовании удаленного монитора в виде пар "значение ключа". @monitor_connection_options является nvarchar(4000)и может быть одним из следующих значений:

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

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