原文:http://www.onegreen.net/Article/Database/SQLServer/SQLServer9/15425.html
作为网管员,无论其管理的网络的规模是大还是小,在日常的管理中除了维护网络平稳运行、及时排除网络故障、保护网络安全等工作以外,备份网络中关键数据也是其中的一个非常非常重要的工作环节。
网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过维修或更换硬件设备得到及时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法及时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补的。即使可以恢复部分数据,弥补它们所花费的代价(诸如时间、人力、财力、物力等)都可能远远超出了公司的承受能力。
所以说,注重数据的备份工作是网管员日常管理工作中的必须时刻关注的一项任务,也是必须周期性重复操作的一项工作。
现行备份策略
我公司在组建局域网时,考虑到商业企业的特点,仔细考量了购、销、存三大环节中发生的各种数据及其存储问题后,选定了以Windows 2000 Server为操作系统,SQL Server 2000为数据库平台来搭建局域网的应用系统的软件平台,以网线为载体将购、销、存等核心部门的计算机通过局域网平台紧密地连接起来。这样,各个核心部门每天的任何一笔业务都及时地、动态地存储到公司局域网的核心Dell服务器上的SQL Server 2000数据库中,并以此为基础平台向各方提供所需的各种数据服务。
因此,自公司局域网开始正式运作之日起,作为网管员的我就非常注重对局域网中的关键数据——特别是这些业务数据的备份工作。同时,我也希望备份数据的软件能够实现以下自动功能。
功能1:能够在每天的某个固定的时刻(如夜晚0:00:00,当然这个时间是可以自主设定的)对包含所有业务数据库在内的所有关键数据库进行一次“完全备份”。
功能2:能够在每天的0:00:00至23:59:59这段时间内,每间隔1个小时对功能1中所涉及到的各个数据库的事务日志进行“差异备份”。
功能3:每天都能够保留功能1和功能2中所生成的数据库和事务日志的最近两天的备份(即:前一天的和前两天的),而且能够自动地删除久于两天前的所有数据库和事务日志的备份。
功能4:定期(如每个星期一次)将所有关键数据库的完全备份的副本备份到磁带或其它存储介质上(这部分工作可能需要手工完成)。
于是,围绕这些功能的实现,在日常管理工作中,我尽可能地尝试了各种备份数据的软件和方法,如Windows 2000自带的“备份”工具、SQL Server 2000自带的“备份”功能等。这些备份软件和方法的功能各有千秋,但是都存在以下缺点:
一种就是需要人工干预,无法实现自动备份(如Windows 2000自带的“备份”工具)。如果采用这种方法,就必须时刻人工手动备份,万一哪天因为出差或其它原因没有进行备份,而这时又出现服务器或数据故障的话,那麻烦就大了。
另一种就是能够实现自动备份,但是旧的备份不能被自动地删除(如SQL Server 2000自带的“备份”功能)。如果采取这种方法,就必须及时地手工删除旧的备份,否则再大的硬盘也会迅速地被用完。
在相互比较后,我还是决定采用第二种——SQL Server 2000自带的“备份”功能对关键数据库进行备份,因为它能够实现“自动备份”功能,比第一种略强。所以,在一段时期内,我每天上班后的第一件事就是先检查一下备份目录下各种数据的新的备份,然后手工删除旧的备份数据。这种做法一度让我很是苦恼。
一天,我在利用SQL Server 2000的“帮助”查询某个Transact-SQL语句的语义解释时无意中阅读到“自动化管理任务”的内容。从头到尾地仔细阅读后,我不由得眼睛一亮,原来SQL Server 2000本身自带了一个能够实现我的备份要求的、强大的功能——“数据库维护计划”。于是我立刻按照这部分内容的提示,以一个数据库为试验样本一步一步地操作,成功地创建了一个数据库维护计划。经过一个星期的试运行,这个计划果然能够实现自动备份调度,以及自动删除旧的数据备份,完全能够满足我的备份要求。
从那时起,我就利用SQL Server 2000的“数据库维护计划”备份所有关键数据库,而且严格地、定期地执行功能4,每个星期五将完全备份的数据库备份到磁带和局域网中其它客户机(主要是用于网络管理的网管PC)的硬盘上。这样做的目的是,能同时异地保存三份相同的备份,减少故障带来的损失。
而且,通过SQL Server 2000的“数据库维护计划”,我现在能够较轻松地备份所需各种数据,方便地管理其备份,相应地减少了日常工作量,也减轻了部分工作压力。
具体实现步骤
目录
第一步:打开SQL Server“企业管理器”窗体
第二步:找到“数据库维护计划”功能
第三步:创建“数据库维护计划”
第四步:维护和管理“数据库维护计划”
第五步:启动SQL Server 2000代理以便执行“作业”
第六步:检查结果
“数据库维护计划”功能在SQL Server 2000的“企业管理器”中可以找到。
说明:
1.以下操作是在服务器的Windows 2000 Server上进行操作的。在Window 9X系统上操作相同。
2.由于SQL Server 2000执行备份时将产生许多文件(特别是在进行事务日志备份时),所以建议按数据库名称分别建立独立的备份目录进行存储。
3.以下所有操作过程当中一般不会对数据库的使用产生影响。
第一步:打开SQL Server“企业管理器”窗体
用鼠标单击任务栏上的“开始”按钮中的“程序(P)”菜单下的“Microsoft SQL Server”子菜单中的“企业管理器”菜单项,即可打开SQL Server 2000的“企业管理器”窗体。
第二步:找到“数据库维护计划”功能
在“企业管理器”窗体中左侧的树型选项卡中,用鼠标单击“+”图标扩展开“控制台根目录”下的“Microsoft SQL Servers”,可以看到其下有一个“SQL Server组”;接着继续扩展开“SQL Server组”,此时可以看到其下出现了服务器的名称(图1中的“JXNC-SERVER”就是我的服务器的名称);再继续扩展开此服务器,可以看到其下列出了诸如“数据库”、“数据转换服务”等项目;最后单击“管理”项目,可以看到其下存在一个“数据库维护计划”(如图1)。
图1
单击“数据库维护计划”项目,在“企业管理器”窗口右侧将会显示出已经存在的维护计划项目。每个维护计划均包括以下项目:
1.名称:就是维护计划的名称。此名称可以自定义,中英文皆可。
2.数据库:就是维护计划所进行维护的数据库的名称。
因为一个维护计划允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图1中可以看到名为“系统数据库备份”的数据库维护计划中的“数据库就包括三个数据库:master、model和msdb)。
3.服务器:也就是维护计划所维护的数据库所处的服务器的名称。“(local)”表示是本地服务器。
4.对策:是指维护计划所需要进行的具体维护工作的内容。
图1中有3个“数据库维护计划”均为“数据库备份,事务日志备份”,它的含义就是这些维护计划中同时对所指定的数据库进行“数据库”和“事务日志”的备份。