SQL Server Maintenance plan 维护计划

发表于:2007-05-26来源:作者:点击数: 标签:
被定期自动执行的维护计划: 用新的填充(占空)因子重建索引以重组数据和索引页上的数据。这确保 数据库 页包含相等分布的数据和剩余空间 ,这允许未来更快速成长。 从数据库页中移出空数据页压缩数据文件。更新索引统计以确保查询优化有表分布数据值得最新

被定期自动执行的维护计划:

用新的填充(占空)因子重建索引以重组数据和索引页上的数据。这确保数据库页包含相等分布的数据和剩余空间 ,这允许未来更快速成长。 从数据库页中移出空数据页压缩数据文件。更新索引统计以确保查询优化有表分布数据值得最新信息。这允许查询优化作出访问数据的最优途径的更好的判断,因为它有关于数据存储在数据库中的更多信息。虽然索引统计被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

2、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

3、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

4、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

5、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。当最后一个数据库从维护计划中删除则维护计划也被删除。

6、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从维护计划中移出剩余的数据库

7、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.

如果未指定计划则返回所有计划信息.

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 = 激活

原文转自:http://www.ltesting.net