適用於:SQL Server
設定主要資訊、加入本機和遠端監視器連結,以及在次要伺服器上建立所指定主要資料庫的複製和還原作業。
語法
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>;[...]' ]
[ ; ]
引數
[ @primary_server = ] 『primary_server』
記錄傳送組態中 SQL Server 資料庫引擎 的主要實例名稱。
@primary_server是 sysname,不能是 NULL。
[ @primary_database = ] 『primary_database』
主伺服器上的資料庫名稱。 @primary_database為 sysname,沒有預設值。
[ @backup_source_directory = ] N'backup_source_directory'
儲存主伺服器的事務歷史記錄備份檔所在的目錄。
@backup_source_directory是 nvarchar(500),不能是 NULL。
[ @backup_destination_directory = ] N'backup_destination_directory'
複製到備份檔之輔助伺服器上的目錄。
@backup_destination_directory是 nvarchar(500),不能是 NULL。
[ @copy_job_name = ] 『copy_job_name』
要用於建立 SQL Server Agent 作業的名稱,以將事務歷史記錄備份複製到輔助伺服器。 copy_job_name是 sysname。
[ @restore_job_name = ] 『restore_job_name』
將備份還原至輔助資料庫的輔助伺服器上 SQL Server Agent 作業的名稱。 restore_job_name是 sysname。
[ @file_retention_period = ] 『file_retention_period』
備份檔在刪除之前,參數所 @backup_destination_directory 指定路徑中的輔助伺服器上會保留備份文件的時間長度,以分鐘為單位。 @history_retention_period為 int。 如果未指定任何值,則會使用 14420 的值。
[ @monitor_server = ] 『monitor_server』
監視伺服器的名稱。
@monitor_server是 sysname,沒有預設值,而且不能是 NULL。
[ @monitor_server_security_mode = ] 『monitor_server_security_mode』
用來線上到監視伺服器的安全性模式。
-
1:Windows 驗證 -
0:SQL Server 驗證
[ @monitor_server_login = ] 『monitor_server_login』
用來存取監視伺服器的帳戶用戶名稱。
[ @monitor_server_password = ] 『monitor_server_password』
用來存取監視伺服器之帳戶的密碼。
[ @copy_job_id = ] 'copy_job_id' 輸出
與輔助伺服器上複製作業相關聯的標識碼。
@copy_job_id是 uniqueidentifier,而且不能是 NULL。
[ @restore_job_id = ] 'restore_job_id' 輸出
與輔助伺服器上還原作業相關聯的標識碼。
@restore_job_id是 uniqueidentifier,而且不能是 NULL。
[ @secondary_id = ] 'secondary_id' 輸出
記錄傳送組態中輔助伺服器的標識碼。
@secondary_id是 uniqueidentifier,而且不能是 NULL。
[ @secondary_connection_options = ] '<key_value_pairs>;[......]'
適用於:SQL Server 2025(17.x)及更新版本
在連線到次要時,以索引鍵值組的形式指定其他連線選項。
@secondary_connection_options 是 nvarchar(4000), 預設值為 NULL。
下表列出可用的連線選項:
| Key | 價值觀 |
|---|---|
Encrypt |
strict、mandatory、optional、true、false |
TrustServerCertificate |
true、false、yes、no |
ServerCertificate |
檔案系統上伺服器憑證的路徑。 其長度上限為 260 個字元。 |
HostNameInCertificate |
憑證的主機名稱覆寫。 其長度上限為 255 個字元。 |
[ @monitor_connection_options = ] '<key_value_pairs>;[......]'
適用於:SQL Server 2025(17.x)及更新版本
在使用遠端監視器時,以索引鍵值組的形式指定連結伺服器連線的其他連線選項。
@monitor_connection_options 是 nvarchar(4000), 預設值為 NULL。
下表列出可用的連線選項:
| Key | 價值觀 |
|---|---|
Encrypt |
strict、mandatory、optional、true、false |
TrustServerCertificate |
true、false、yes、no |
ServerCertificate |
檔案系統上伺服器憑證的路徑。 其長度上限為 260 個字元。 |
HostNameInCertificate |
憑證的主機名稱覆寫。 其長度上限為 255 個字元。 |
傳回碼值
0 (成功) 或 1 (失敗)。
結果集
無。
備註
sp_add_log_shipping_secondary_primary 必須在輔助伺服器上從 master 資料庫執行。 此預存程式會執行下列動作:
為指定的主伺服器和主資料庫產生次要標識碼。
執行下列動作:
- 使用提供的自變數,在中
log_shipping_secondary新增次要標識符的專案。 - 為停用的次要標識碼建立複製作業。
- 將專案中的
log_shipping_secondary複製作業識別元設定為複製作業的作業標識碼。 - 為停用的次要標識碼建立還原作業。
- 將專案中的
log_shipping_secondary還原作業標識碼設定為還原作業的作業標識碼。
- 使用提供的自變數,在中
權限
只有系統管理員固定伺服器角色的成員才能執行此程式。
範例
此範例說明如何使用 sp_add_log_shipping_secondary_primary 預存程式來設定輔助伺服器上主資料庫 AdventureWorks2025 的資訊。
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