【51CTO.com独家特稿】6月14日,微软顶级数据库专家与51CTO网友就“怎样成为一名高效的DBA?”这一主题进行了面对面的热烈讨论,这是访谈系列文章中的一篇节选。
欲看专题请进入:http://www.51cto.com/exp/dba_sqlserver/
先装上一个Microsoft SQL Server 2005 Service Pack 2 (SP 2),接着,我给大家展示数据库维护计划,可以用来管理工作台中不同的结点。
这下面有一个维护计划节点。目前为止,我这里还没有建立一个任何的管理计划。我们知道,数据库的备份是一个很重要的事情,这是每位DBA每天要做的工作。这好比你自己家中的数据一样,你的身份证也需要做一份拷贝,万一有一天丢了还可以拿出来用。我们数据库也是同样的道理。以前我见过很多的DBA他们非常的聪明,也非常的敬业,但是忘了给数据库做备份。做备份其实是简单的一件事。备份上,你可以设定你需要备份什么样的数据库?你使用什么样的日程?比如说是每天、每小时还是一星期一次的?你是做数据库全部的备份还是做交易日程的备份?我给大家演示一下。
在画面上我要建立一个新的维护计划,我点击鼠标右键建立新的维护计划,自己起一个名字,比如我叫做PLAN1。这时候你会发现这需要有一个描述,描述给你自己看。你需要知道这里可以做什么用。在这个计划下面还有一些计划,要列出你需要做什么事情。我下面继续给大家演示。子计划像一个日历,在这里你需要定义你使用什么样的日程。
你用鼠标单击就可以把这个计划定上来了,下面你可以看到是自动的,或者是使CPU变得显眼些运行,或者在重复的一个时间只定义一次。比如我们选择重复的时间,在这里你可以说明是每天跑一次,还是每一星期或者是一个月跑一次。我选择了每天跑一次,你还可以具体定义为几天跑一次?如果是选择每星期的话,你还可以选择是这个星期中的任何一天。在每一次运行时,比如说每天运行一次,你可以选择一个时间,比如说每一小时、每两个小时等等。如果你需要一小时一次或者是一分钟一次,你还可以讲明是什么时候开始的?比如你只希望在夜晚,比如说晚上12点,这都是可以自己调整的。
这个计划是从什么时候开始做,比如说今天开始做,是否有终止日期?如果有,你可以说明终止日期,如果没有就可以表示出没有。这样就可以把时间表定义完了。我们定义时间表之后,要考虑维护计划到底做什么?这里面有不同的事情可以做。第一,你可以在上面备份数据库。你可以检查数据库的一致性,也可以运行一个代理SQL Server的任务。你可以使用一个语句,做一些历史清除,或者是维护历史清除工作,还可以履行告知操作员的工作。比如说你可以定义一些事件,当这些事件发生时,可以自动告知操作员。通过重建、索引,也可以对索引进行重组。
如果数据库比较空,你可以对它进行压缩。因为统计数字涉及到我这一个表中对于不同直列的统计表,我查询的优化器是要利用这些数字决定什么样的查询计划是一个好的计划。所以,我们在数据库中要求数字是准确的。现在我们做一个简单的事情――备份。这时候怎么办呢?你可以把Drawer拉过来放进去。在这里,我可以在数据库做一个备份的计划,里面还有一些细节的问题。
你需要来进行定义。现在我是把这块进行了定义,你定义是由本地服务器连接,你是做差异认证还是做Fillback,这时候你可以从Master、model、msdb、Northwind、Pubs中选择,这时候我可以简单选择两个。或者你选择上面的System Databases等等,你可以有四种不同的选择。我这里面选择两个Databases就可以了。这里面有一些功能,比如你要把每个Databases要有一个Backup files。在这里你还需要检查数据库的完整性,这些都属于可选项目。你选择之后,可以看到刚才的红叉没有了,表示现在我已经把这个定义完成了。
现在我的时间表定义的是每天运行一次,每晚12点。所以到今天晚上12点,如果我的机器是开着的,就可以对每个数据库实现一个backup。我觉得SQL Server 2005比起2000版本进步了很多。
总结:我们做这个演示的目的是想告诉你,定义一个数据库的维护计划是非常简单的一件事。你并不需要有特别高深的技术,只是很普通的人都可以做到这件事,你只要选择好这个东西,它就会为你做。这种简单易操作性是SQL Server重要的一个特性。我们一直认为我们SQL Server使用起来很简单,我们一直为这件事情觉得很骄傲。