本文共 3636 字,大约阅读时间需要 12 分钟。
常见的SQL Server维护任务: 数据备份 数据完整性检查 数据整理 历史数据清理 执行作业 执行T-SQL脚本 回顾SQL Server 2000中的数据库维护计划: 可配置日志传送 重组数据和索引页 更新统计数据 收缩数据库 检查数据库完整性 备份数据库 生成报表 SQL Server 2000中的数据库维护计划元数据存储: msdb.dbo.sysdbmaintplan_databases msdb.dbo.sysdbmaintplan_history msdb.dbo.sysdbmaintplan_jobs msdb.dbo.sysdbmaintplans SQL Server 2000中数据库维护计划的执行: SQL Agent管理下的作业 调用xp_sqlmaint 外部工具sqlmaint.exe SQL Server 2005下的维护计划: 通过SQL Server Integration Service设计-->在Management Studio中设计 在Development Studio中设计 通过作业调用SSIS包 一个维护计划仅生成一个作业 如何利用Management Studio创建维护计划和维护计划的调度及执行呢? 展开SQL2005(本地计算机名称)--管理--对着维护计划右键--选择维护计划向导 接着下一步 注意: 配置SQL Server维护计划是有前提的 一定要确保SQL Server代理这一项服务要启用 名称就叫做MP Demo Wizard吧 接着下一步 在选择维护任务里面把检查数据库完整性、重新生成索引、更新统计信息、清除历史记录、备份数据库(完整)沟上 接着下一步 如果你想调整这些任务的顺序的话 你可以按上移或者下移来调整顺序 接着下一步 在数据库的以下数据库里面把AdventureWorks沟上 按确定 接着下一步 在数据库的以下数据库里面把AdventureWorks沟上 按确定 在对象里面选择表 在选择里面选择全部 把将每页的可用空间百分比更改为50% 接着下一步 在数据库的以下数据库里面把AdventureWorks沟上 按确定 在对象里面选择表 在选择里面选择全部 在更新里面选择所有现有统计信息 接着下一步 在数据库的以下数据库里面把AdventureWorks沟上 按确定 在跨一个或多个文件备份数据库里面输入一个路径-->C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\bak 接着下一步 可以看到状态全部成功了 按关闭 展开管理--维护计划--可以看到一个叫做MP Demo Wizard的维护计划 这个维护任务是如何来执行的呢? 展开SQL Server 代理--作业--可以看到一个叫做MP Demo Wizard Subplan_1的作业来调用维护计划的 维护计划是保存在什么地方呢? 在对象资源管理器里面按连接--在服务器类型里面选择Integration Services 在连接到服务器里面按连接 展开SQL2005(Integration Services...)--已存储的包--MSDB--Maintenance Plans--可以看到我刚才设计的MP Demo Wizard这个维护任务 展开SQL Server代理--作业--对着MP Demo Wizard Subplan_1右键--选择属性--按步骤--可以看到一个叫做Subplan_1的作业步骤 双击这个作业步骤来打开它 可以看到这个作业任务的类型就是SQL Server Integration Services包 其实它是通过SQL 代理服务账户来调用刚才生成的MP Demo Wizard这样的一个SSIS的包 除了通过向导去实现维护计划之外 我们还可以直接来新建维护计划 展开管理--对着维护计划右键--选择新建维护计划--名称就叫做MP Demo SSMS吧 按确定 这里我们还可以去设计完整的作业任务 把"检查数据库完整性"拖曳到里面--双击这个任务--在数据库的以下数据库里面把AdventureWorks沟上 按确定 检查数据库完整性之后 比如说我还想去"重新生成索引"任务怎么办呢? 可以把"重新生成索引"任务拖曳到检查数据库完整性的下面 双击这个任务来打开它--在数据库里面选择AdventureWorks这个数据库--在对象里面选择表--在选择里面选择全部--把将每页的可用空间百分比更改为50% 按确定 把"更新统计信息"任务拖曳到"重新生成索引"任务的下面 在数据库里面选择AdventureWorks这个数据库 在对象里面选择表 在选择里面选择全部 在更新里面选择所有现有统计信息 按确定 把"备份数据库"任务拖曳到"更新统计信息"任务的下面 双击这个任务来打开它--在备份类型里面选择完整--在数据库里面选择AdventureWorks这个数据库--在备份文件扩展名里面输入bak--把验证备份完整性沟上--按确定 这样的一个作业就完成了 我把它设置成在每周星期日的0:00:00执行。在上面按保存那个图标就ok了 按F5键来刷新一下 可以看到在维护计划里面多出一个叫做MP Demo SSMS的维护任务了 展开SQL Server代理--作业--可以看到多出了一个叫做MP Demo SSMS Subplan_1的作业了 展开SQL2005(Integration Services...)--已存储的包--MSDB--Maintenance Plans 可以看到多出一个叫做MP Demo SSMS的包了 SQL Server 2005维护计划支持的操作: 数据库备份 数据完整性检查 执行SQL Agent作业 执行T-SQL脚本 历史数据清理 维护计划数据清理 重建索引 重组索引 收缩数据库 更新统计 与维护计划相关的T-SQL语句(一)-->见下列表: 维护计划 T-SQL语句 数据库备份 BACKUP DATABASE BACKUP LOG 执行SQL Agent作业 sp_start_job 执行T-SQL脚本 sp_executesql execute 历史数据清理 sp_purgejob_history 与维护计划相关的T-SQL语句(二)-->见下列表: 重建索引 ALTER INDEX index_name REBUILD WITH params DBCC DBREINDEX* 重组索引 ALTER INDEX index_name REORGANIZE WITH params DBCC INDEXDREFREG* 收缩数据库 DBCC SHRINKDATABASE 维护计划的元数据存储和检索: 为兼容而保留的-->msdb.dbo.sysdbmaintplans msdb.dbo.sysdbmaintplan_jobs msdb.dbo.sysdbmaintplan_databases msdb.dbo.sysdbmaintplan_history msdb.dbo.sp_help_maintenance_plan 系统维护计划-->msdb.dbo.sysdtspackages90 msdb.dbo.sysmaintplan_subplans msdb.dbo.sysmaintplan_log msdb.dbo.sysmaintplan_logdetail 利用Development Studio设计维护计划: 维护计划完全基于Integration Service 维护计划生成SSIS Package SQL Agent作业调用SSIS Package 利用Development Studio可在维护计划中加入其它复杂任务 特别注意: 不要通过删除SSIS Package的方式删除维护计划,否则会导致元数据残留在msdb.dbo.sysmaintplan_subplans系统表中。 SQL Server 2005中维护计划的优势: 可自定义维护作业的流程 可在维护作业中加入复杂的逻辑 更加便于导出和跨服务器复制 更加便于与数据维护及业务维护作业衔接 本文转自 叶俊生 51CTO博客,原文链接:http://blog.51cto.com/yejunsheng/161360 转载地址:http://ndzfx.baihongyu.com/