照清

用勤奋之这石,补能力之缺口!

导航

条码服务器数据库备份计划与实现

Posted on 2008-06-20 09:54  照清  阅读(2357)  评论(3编辑  收藏  举报
    上几篇文章提到了关于条形码管理的部分内容,目前条形码系统内的固定资产盘点部分已经运行了一周了,在运行过程中由于条码打印机故障或财务相关人员操作的问题,有些条码打印情况(我们每个条码最多允许打印2次,因为打印纸太贵了---3毛多一张)的信息需要后台来操作,这样会不可避免的对服务器内数据带来一定的危险,所以数据库的备份是一件刻不容缓的事情,为此特制定了以下备份计划:
      功能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上进行操作的。
  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.名称:就是维护计划的名称。此名称可以自定义,中英文皆可。
  2.数据库:就是维护计划所进行维护的数据库的名称。
  因为一个维护计划允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图1中可以看到名为“系统数据库备份”的数据库维护计划中的“数据库”就包括三个数据库:master、model和msdb)。
  3.服务器:也就是维护计划所维护的数据库所处的服务器的名称。“(local)”表示是本地服务器。
  4.对策:是指维护计划所需要进行的具体维护工作的内容。
  图1中有3个“数据库维护计划”均为“数据库备份,事务日志备份”,它的含义就是这些维护计划中同时对所指定的数据库进行“数据库”和“事务日志”的备份。
  第三步:创建“数据库维护计划”
  鼠标右击“数据库维护计划”项目,选择“新建维护计划(P)”功能,将打开“数据库维护计划向导”窗体,依照此向导能够创建一个新的“数据库维护计划”。
  步骤1:单击 “下一步(N)”按钮,打开“选择数据库”窗体(如图2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述方便,我在此只选择了一个数据库“regie”。

 
  步骤2:单击图2中的“下一步(N)”按钮,打开“更新数据优化信息”窗体(如图3)。
  

 


  在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的情况下,维护计划自动删除数据库中的未使用的空间,以便提高性能。
  但要注意的是,在此窗体中,只要选定了“重新组织数据和索引页[R]”复选框,“更新查询优化器所使用的统计。示例[D]”复选框将失效(变成灰色,不能选择)。而且“重新组织数据和索引页[R]”复选框和“从数据库文件中删除未使用的空间[M]”复选框二者只要有一个被选中,其下的“调度[S]”功能才有效。单击“更改[C]”按钮可以对“调度”进行自定义。

各位读者可以根据自身情况决定是否选用其中的功能。当然也可以通过单击“帮助”按钮来查看各功能的具体含义。
  在此窗体中能够便捷地设定每项作业的持续运行时间和运行的频率。完成自己的设置后,一定要选定右上角的“启用调度[B]”复选框,这样一个作业调度才算真正完成了。
      
步骤3:单击图3中的“下一步(N)”按钮,打开“检查数据库完整性”窗体。
  在此窗体中可以设定维护计划在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不一致。在此窗体中只有先选定了“检查数据库完整性[H]”复选框即可。
       剩下的操作就不提了,只要根据自己的需要进行相应的配置即可,最后不要忘了数据库内的作业任务检查一下,看有没有启用。

请教问题
上述备份问题已经解决了,但现在还有新的备份策略需要完成,如下:
年度备份:要求每年都能够保留上年完整的一份数据库。
季度备份:要求每一季度能够保留上季度完整的一份数据库。
月度备份:要求每月能够保留上月完整的一份数据库。

上述问题如果系统自动完成有没有好的办法,与大家一起讨论。

Hellow!