sp_add_log_shipping_primary_database (Transact-SQL)
設定記錄傳送組態的主要資料庫,其中包括備份作業、本機監視記錄,以及遠端監視記錄。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
sp_add_log_shipping_primary_database [ @database = ] 'database',
[ @backup_directory = ] 'backup_directory',
[ @backup_share = ] '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 ]
引數
[ @database= ] 'database'
這是記錄傳送主要資料庫的名稱。 database 是 sysname,沒有預設值,且不能是 NULL。[ @backup_directory= ] 'backup_directory'
這是主要伺服器上備份資料夾的路徑。 backup_directory 是 nvarchar(500),沒有預設值,且不能是 NULL。[ @backup_share= ] 'backup_share'
這是主要伺服器上備份目錄的網路路徑。 backup_share 是 nvarchar(500),沒有預設值,且不能是 NULL。[ @backup_job_name= ] 'backup_job_name'
這是將備份複製到備份資料夾之主要伺服器上的 SQL Server Agent 作業名稱。 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 是 bit,且不能是 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,預設值是 14,420。[ @threshold_alert_enabled= ] threshold_alert_enabled
指定在超出 backup_threshold 時,是否產生警示。 預設值零 (0) 表示警示已停用,而且將不會引發。 threshold_alert_enabled 是 bit。[ @history_retention_period= ] history_retention_period
這是保留記錄的時間長度 (以分鐘為單位)。 history_retention_period 是 int,預設值是 NULL。 若未指定,則使用 14420。[ @backup_job_id= ] backup_job_id OUTPUT
與主要伺服器上之備份作業相關聯的 SQL Server Agent 作業識別碼。 backup_job_id 是 uniqueidentifier,且不能是 NULL。[ @primary_id= ] primary_id OUTPUT
記錄傳送組態之主要資料庫的識別碼。 primary_id 是 uniqueidentifier,且不能是 NULL。[ @backup_compression= ] backup_compression_option
指定記錄傳送設定是否會使用備份壓縮。 只有在 SQL Server 2008 Enterprise (或更新版本) 中才支援這個參數。0 = 已停用。 永遠不會壓縮記錄備份。
1 = 已啟用。 一定會壓縮記錄備份。
2 = 使用檢視或設定 backup compression default 伺服器組態選項的設定。 這是預設值。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
無
備註
sp_add_log_shipping_primary_database 必須從主要伺服器的 master 資料庫中執行。 這個預存程序會執行下列功能:
利用提供的引數,在 log_shipping_primary_databases 資料表中,產生主要識別碼和加入主要資料庫的項目。
為停用的主要資料庫建立備份作業。
將 log_shipping_primary_databases 項目中的備份作業識別碼設為備份作業的作業識別碼。
利用提供的引數,在主要伺服器的 log_shipping_monitor_primary 資料表中,加入本機監視記錄。
如果監視伺服器不是主要伺服器,請利用提供的引數,在監視伺服器的 log_shipping_monitor_primary 中,加入一項監視記錄。
權限
只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個程序。
範例
這個範例會在記錄傳送組態中,加入 AdventureWorks2012 資料庫來做為主要資料庫。
DECLARE @LS_BackupJobId AS uniqueidentifier ;
DECLARE @LS_PrimaryId AS uniqueidentifier ;
EXEC master.dbo.sp_add_log_shipping_primary_database
@database = N'AdventureWorks'
,@backup_directory = N'c:\lsbackup'
,@backup_share = N'\\tribeca\lsbackup'
,@backup_job_name = N'LSBackup_AdventureWorks'
,@backup_retention_period = 1440
,@monitor_server = N'rockaway'
,@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