定期自动执行的维护计划:
用新的填充(占空)因子重建索引以重组数据和索引页上的数据。这确保数据库页包含相等分布的数据和剩余空间 ,这允许未来更快速成长。 从数据库页中移出空数据页压缩数据文件。更新索引统计以确保查询优化有表分布数据值得最新信息。这允许查询优化作出访问数据的最优途径的更好的判断,因为它有关于数据存储在数据库中的更多信息。虽然索引统计被sql server周期更新的,这个选项强制统计立即更新。执行数据库上的数据和数据页内部一致性检查以确保系统或软件问题不会损坏数据备份数据库和事物日志。数据库和日期备份可以保持一个指定的周期,这允许你创建用在你需要恢复数据库一个比最后一个备份早的事件备份历史设置日志传输。日志传输允许事物日志从一个数据库(源)不变地反馈到另一个数据库(目的)。保持目的数据库和原数据库的同步使你有一个备用数据库而且也提供一个从主数据库到只读目的服务器卸下查询处理的方法
1、sp_add_maintenance_plan
增加一个维护计划并返回计划ID
语法:
1
2
|
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
2、sp_add_maintenance_plan_db
将数据库加到维护计划中
语法:
1
2
|
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
3、sp_add_maintenance_plan_job
将维护计划中加到一个存在的job中
语法:
1
|
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
4、sp_delete_maintenance_plan
删除指定维护计划
语法:
1
|
sp_delete_maintenance_plan [ @plan_id = ] 'plan_id'
|
返回值:0成功1失败
备注:sp_delete_maintenance_plan必须在msdb上执行,只有sysadmin固定服务器角色成员可执行sp_add_maintenance_plan_db
5、sp_delete_maintenance_plan_db从维护计划中取消指定数据库
语法:
1
2
|
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。当最后一个数据库从维护计划中删除则维护计划也被删除。
6、sp_delete_maintenance_plan_job
从指定job中取消(删除)维护计划
语法:
1
2
|
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从维护计划中移出剩余的数据库
7、sp_help_maintenance_plan
返回指定维护计划的信息,如果未指定计划则返回所有的维护计划信息
语法:
1
|
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.
如果未指定计划则返回所有计划信息.
8、sysdbmaintplan_databases
一个相关维护计划中的每个数据库包含一行,本表保存在msdb 中。
列名
数据类型
描述
plan_id
uniqueidentifier
维护计划ID
database_name
sysname
数据库名
9、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发生的消息.
10、sysdbmaintplan_jobs
每个维护计划job包含一行. 本表保存在msdb 中。
列名
数据类型
描述
plan_id
uniqueidentifier
维护计划ID
job_id
uniqueidentifier
job ID
11、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 = 激活