SQL Server 2000 Maintenance plan 維護計劃
2024-08-31 00:48:06
供稿:網友
 
 
被定期自動執行的維護計劃: 
用新的填充(占空)因子重建索引以重組數據和索引頁上的數據。這確保數據庫頁包含相等分布的數據和剩余空間 ,這允許未來更快速成長。 從數據庫頁中移出空數據頁壓縮數據文件。更新索引統計以確保查詢優化有表分布數據值得最新信息。這允許查詢優化作出訪問數據的最優途徑的更好的判斷,因為它有關于數據存儲在數據庫中的更多信息。雖然索引統計被sql server周期更新的,這個選項強制統計立即更新。執行數據庫上的數據和數據頁內部一致性檢查以確保系統或軟件問題不會損壞數據備份數據庫和事物日志。數據庫和日期備份可以保持一個指定的周期,這允許你創建用在你需要恢復數據庫一個比最后一個備份早的事件備份歷史設置日志傳輸。日志傳輸允許事物日志從一個數據庫(源)不變地反饋到另一個數據庫(目的)。保持目的數據庫和原數據庫的同步使你有一個備用數據庫而且也提供一個從主數據庫到只讀目的服務器卸下查詢處理的方法 
1、  sp_add_maintenance_plan
    增加一個維護計劃并返回計劃id 
    語法:sp_add_maintenance_plan [ @plan_name = ] 'plan_name' ,
@plan_id = 'plan_id' output
    返回值:0成功1失敗
備注:sp_add_maintenance_plan必須在msdb上執行,它創建一個新的空維護計劃。增加一個或多個數據庫與一個或多個job交互執行sp_add_maintenance_plan_db和sp_add_maintenance_plan_job.
只有sysadmin固定服務器角色成員可執行sp_add_maintenance_plan
 
1、  sp_add_maintenance_plan_db 
    將數據庫加到維護計劃中
    語法:sp_add_maintenance_plan_db [ @plan_id = ] 'plan_id' , 
[ @db_name = ] 'database_name'
    返回值:0成功1失敗
備注:sp_add_maintenance_plan_db 必須在msdb上執行,只有sysadmin固定服務器角色成員可執行sp_add_maintenance_plan_db
 
2、  sp_add_maintenance_plan_job
    將維護計劃中加到一個存在的job中
    語法:sp_add_maintenance_plan_job [ @plan_id = ] 'plan_id', [ @job_id = ] 'job_id'
    返回值:0成功1失敗
備注:sp_add_maintenance_plan_job必須在msdb上執行,只有sysadmin固定服務器角色成員可執行sp_add_maintenance_plan_db
 
3、  sp_delete_maintenance_plan
    刪除指定維護計劃
    語法:sp_delete_maintenance_plan [ @plan_id = ] 'plan_id' 
    返回值:0成功1失敗
備注:sp_delete_maintenance_plan必須在msdb上執行,只有sysadmin固定服務器角色成員可執行sp_add_maintenance_plan_db
 
4、  sp_delete_maintenance_plan_db從維護計劃中取消指定數據庫
語法:sp_delete_maintenance_plan_db [ @plan_id = ] 'plan_id' , 
    [ @db_name = ] 'database_name' 
    返回值:0成功1失敗
備注:sp_delete_maintenance_plan_db必須在msdb上執行,只有sysadmin固定服務器角色成員可執行sp_delete_maintenance_plan_db。當最后一個數據庫從維護計劃中刪除則維護計劃也被刪除。
5、  sp_delete_maintenance_plan_job
從指定job中取消(刪除)維護計劃
語法:sp_delete_maintenance_plan_job [ @plan_id = ] 'plan_id' , 
    [ @job_id = ] 'job_id' 
    返回值:0成功1失敗
備注:sp_delete_maintenance_plan_job必須在msdb上執行,只有sysadmin固定服務器角色成員可執行sp_delete_maintenance_plan_job。當最后一個數據庫從維護計劃中刪除則維護計劃也被刪除。當所有jobs被從維護計劃中刪除推薦用戶執行sp_delete_maintenance_plan_db從維護計劃中移出剩余的數據庫
 
6、  sp_help_maintenance_plan
返回指定維護計劃的信息,如果未指定計劃則返回所有的維護計劃信息
語法:sp_help_maintenance_plan [ [ @plan_id = ] 'plan_id' ]
如果指定計劃則返回三張表: plan, database,  job.
plan 
列名
數據類型
描述
plan_id
uniqueidentifier
維護計劃id
plan_name
sysname
維護計劃名.
date_created
datetime
計劃創建日期.
owner
sysname
計劃擁有者
max_history_rows
int
計劃在系統表中記錄歷史的最大分配行數
remote_history_server
int
寫歷史報告的遠程服務器名
max_remote_history_rows
int
寫歷史報告的遠程服務器在系統表中最大分配行數.
user_defined_1
int
缺省為 null.
user_defined_2
nvarchar(100)
缺省為null.
user_defined_3
datetime
缺省為null.
user_defined_4
uniqueidentifier
缺省為null.
 
database 
列名
描述
database_name
維護計劃中的所有數據庫名 database_name is sysname.
 
job 
列名
描述
hui
維護計劃中的所有job id. job_id is uniqueidentifier.
 
如果未指定計劃則返回所有計劃信息. 
7、  sysdbmaintplan_databases
一個相關維護計劃中的每個數據庫包含一行,本表保存在msdb 中。
列名
數據類型
描述
plan_id
uniqueidentifier
維護計劃id
database_name
sysname
數據庫名
8、  sysdbmaintplan_history
每個維護計劃完成一次包含一行,本表保存在msdb 中。
列名
數據類型
描述
sequence_id
int
維護計劃執行歷史順序號
plan_id
uniqueidentifier
維護計劃 id.
plan_name
sysname
維護計劃名.
database_name
sysname
相關計劃數據庫名
server_name
sysname
系統名
activity
nvarchar(128)
維護計劃激活執行 (例如備份事物日志等).
succeeded
bit
0 = 成功1 = 失敗
end_time
datetime
每次行動完成時間
duration
int
必須完成行動的時間長度
start_time
datetime
行動開始時間
error_number
int
失敗報告的錯誤數
message
nvarchar(512)
sqlmaint發生的消息.
9、  sysdbmaintplan_jobs
每個維護計劃job包含一行. 本表保存在msdb 中。
列名
數據類型
描述
plan_id
uniqueidentifier
維護計劃id
job_id
uniqueidentifier
job id 
 
10、              sysdbmaintplans
每個數據庫維護計劃包含一行. 本表保存在msdb 中。
column name
data type
description
plan_id
uniqueidentifier
維護計劃id
plan_name
sysname
維護計劃名.
date_created
datetime
計劃創建日期.
owner
sysname
計劃擁有者
max_history_rows
int
計劃在系統表中記錄歷史的最大分配行數
remote_history_server
sysname
寫歷史報告的遠程服務器名
max_remote_history_rows
int
寫歷史報告的遠程服務器在系統表中最大分配行數.
user_defined_1
int
缺省為 null.
user_defined_2
nvarchar(100)
缺省為null.
user_defined_3
datetime
缺省為null.
user_defined_4
uniqueidentifier
缺省為null.
log_shipping
bit
日志運行狀態0 = 失效1 = 激活