设计和使用维护计划

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
常见的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创建维护计划和维护计划的调度及执行呢?
20032098
  展开SQL2005(本地计算机名称)--管理--对着维护计划右键--选择维护计划向导  接着下一步  注意: 配置SQL Server维护计划是有前提的 一定要确保SQL Server代理这一项服务要启用
20032099
   名称就叫做MP Demo Wizard吧  接着下一步
20032100
   在选择维护任务里面把检查数据库完整性、重新生成索引、更新统计信息、清除历史记录、备份数据库(完整)沟上  接着下一步 
20032101
   如果你想调整这些任务的顺序的话 你可以按上移或者下移来调整顺序  接着下一步
20032102
   在数据库的以下数据库里面把AdventureWorks沟上  按确定  接着下一步
20032103
   在数据库的以下数据库里面把AdventureWorks沟上  按确定  在对象里面选择表  在选择里面选择全部  把将每页的可用空间百分比更改为50%  接着下一步
20032104
  在数据库的以下数据库里面把AdventureWorks沟上  按确定  在对象里面选择表  在选择里面选择全部  在更新里面选择所有现有统计信息  接着下一步
20032105
  接着下一步
20032106
  在数据库的以下数据库里面把AdventureWorks沟上  按确定  在跨一个或多个文件备份数据库里面输入一个路径-->C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\bak  接着下一步
20032107
   把将报告写入文本文件沟上  接着下一步
20032108
   按完成
20032109
  可以看到状态全部成功了  按关闭  展开管理--维护计划--可以看到一个叫做MP Demo Wizard的维护计划 这个维护任务是如何来执行的呢? 展开SQL Server 代理--作业--可以看到一个叫做MP Demo Wizard Subplan_1的作业来调用维护计划的
20032110
   维护计划是保存在什么地方呢?  在对象资源管理器里面按连接--在服务器类型里面选择Integration Services  在连接到服务器里面按连接  展开SQL2005(Integration Services...)--已存储的包--MSDB--Maintenance Plans--可以看到我刚才设计的MP Demo Wizard这个维护任务 
20032111
   展开SQL Server代理--作业--对着MP Demo Wizard Subplan_1右键--选择属性--按步骤--可以看到一个叫做Subplan_1的作业步骤  双击这个作业步骤来打开它
20032112
   可以看到这个作业任务的类型就是SQL Server Integration Services包  其实它是通过SQL 代理服务账户来调用刚才生成的MP Demo Wizard这样的一个SSIS的包
20032113
   除了通过向导去实现维护计划之外 我们还可以直接来新建维护计划  展开管理--对着维护计划右键--选择新建维护计划--名称就叫做MP Demo SSMS吧  按确定
20032114
  这里我们还可以去设计完整的作业任务  把"检查数据库完整性"拖曳到里面--双击这个任务--在数据库的以下数据库里面把AdventureWorks沟上  按确定
20032115
  检查数据库完整性之后  比如说我还想去"重新生成索引"任务怎么办呢? 可以把"重新生成索引"任务拖曳到检查数据库完整性的下面  双击这个任务来打开它--在数据库里面选择AdventureWorks这个数据库--在对象里面选择表--在选择里面选择全部--把将每页的可用空间百分比更改为50%  按确定
20032116
把"更新统计信息"任务拖曳到"重新生成索引"任务的下面  在数据库里面选择AdventureWorks这个数据库 在对象里面选择表 在选择里面选择全部 在更新里面选择所有现有统计信息  按确定 
20032117
  把"备份数据库"任务拖曳到"更新统计信息"任务的下面  双击这个任务来打开它--在备份类型里面选择完整--在数据库里面选择AdventureWorks这个数据库--在备份文件扩展名里面输入bak--把验证备份完整性沟上--按确定
20032118
    这样的一个作业就完成了  我把它设置成在每周星期日的0:00:00执行。在上面按保存那个图标就ok了 
20032119
  按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
          数据完整性检查                    DBCC CHECKDB
         执行SQL Agent作业               sp_start_job
           执行T-SQL脚本                   sp_executesql            
                                            execute
           历史数据清理                       sp_purgejob_history
                                                  sp_delete_backuphistory
                                                  sp_maintplan_delete_log
与维护计划相关的T-SQL语句(二)-->见下列表:
             维护计划                          T-SQL语句
         维护计划数据清理                    xp_delete_file
             重建索引                          ALTER INDEX index_name 
                                               REBUILD WITH params 
                                             DBCC DBREINDEX* 
             重组索引                          ALTER INDEX index_name 
                                               REORGANIZE WITH params 
                                             DBCC INDEXDREFREG*
            收缩数据库                        DBCC SHRINKDATABASE
             更新统计                         UPDATE STATISTICS 
维护计划的元数据存储和检索: 为兼容而保留的-->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
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6月前
|
存储 SQL 搜索推荐
【其他】多维分析预汇总应该怎样做才管用?
【其他】多维分析预汇总应该怎样做才管用?
18 0
|
9月前
|
SQL 数据库连接 数据库
机房收费系统之数据配置问题
机房收费系统之数据配置问题
54 0
|
12月前
|
SQL 消息中间件 JavaScript
系统上线前,SQL脚本的9大坑
系统上线前,SQL脚本的9大坑
|
测试技术 存储 数据挖掘
loadrunner 场景设计-手工场景方案设计
loadrunner 场景设计-手工场景方案设计
107 0
loadrunner 场景设计-手工场景方案设计
|
存储 SQL 数据采集
多维分析预汇总应该怎样做才管用?
多维分析预汇总应该怎样做才管用?
128 0
多维分析预汇总应该怎样做才管用?
|
知识图谱
SAP LSMW 物料主数据导入毛重净重放大1000倍问题之对策
SAP LSMW 物料主数据导入毛重净重放大1000倍问题之对策
SAP LSMW 物料主数据导入毛重净重放大1000倍问题之对策
|
数据采集 监控 调度
十步法原则解决数据质量问题
十步法原则解决数据质量问题,设计数据质量产品。
|
数据处理 数据库
软件造价之:浅析快速功能点方法度量软件的规则及过程
采用优化后的功能点方法——快速功能点方法进行规模估算或测量的基本过程或步骤如下:确定计数类型→识别系统边界→识别功能点计数项→计算未调整的功能点数→计算调整后的功能点数。
1874 0