蓝牙产品市场分析:智能定时自动备份数据的方法与探讨2

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 03:17:18

钟一霆:智能定时自动备份数据的方法与探讨


2005-09-21 09:30:40
来源:浙江省统计局

  在数据处理工作中,为了保障数据的安全,需要经常进行数据备份。一份及时的备份数据,在关键时刻能发挥很大的作用。它不仅能为数据提供可恢复性,还能为数据提供可追溯性。尤其是能够最大限度地避免数据处理人员误操作时可能带来的毁灭性灾难。因此,养成一个良好的数据备份习惯,对数据处理人员来说是非常重要的。

  
  在这次经济普查工作中,经普程序存在某些缺憾,没有提供可及时备份这一功能项,同时,可登陆经普程序进行数据处理操作的人员的权限设置也不够完善。而在连续数月的日夜加班加点的疲惫状态下,难免会出现个别数据处理人员在数据录入、审核、改错、排重、删除等数据处理操作过程中出现误操作,导致数据缺失或误修改,严重的甚至会丢失全部已录经普数据,致使整个数据录入阶段的工作白做,尤其是会影响到上报时间。而通过直接copy的方法进行每日备份,不仅浪费时间还浪费服务器上的硬盘空间,效果也不太好。而且,如果要求数据处理人员每天都要登陆到服务器手工进行相同的操作,难免让人感觉有点烦琐。


  是否有什么办法能让电脑自动完成每日的备份任务呢?经笔者日常实践,发现有好几种方法能实现自动备份功能,包括自己动手编写辅助备份程序。现结合第一次经济普查数据处理工作,来与大家交流笔者所采用的两种备份方法,以期抛砖引玉,为从事普查或统计日常数据处理的工作人员提供参考或帮助。


  一、自己动手编写程序实现自动备份功能


  在日常数据处理工作中,我们有时候需要登陆服务器进行终止某程序的运行,然后对该程序进行完整备份。为了简化工作流程,同时方便自己使用,又提高工作效率,笔者利用vfp自带的winsock控件做了个远程控制程序,该程序包含2个独立的子程序,即客户端与服务器端。在服务器上设置开机时自动运行服务器端,在客户机上运行客户端,通过服务器端子程序监听客户端子程序所发送过来的命令,来执行预设命令,实现远程启动、关闭服务器里的应用程序,然后执行备份,当然还可以执行其他远程操作。下面结合这次经济普查数据处理工作,浅谈一下自行编制远程定时自动备份数据程序的方法。


  1、首先,用vfp6.0软件分别建立“服务器端”与“客户端”子程序界面。分别在两个子程序里各添加1个winsock控件,在客户端子程序里再添加1个文本框text控件,与1个命令按钮command控件。


  2、其次,分别在“服务器端”与“客户端”子程序的winsock控件里,以及命令按钮command控件里添加代码:


  ①“服务器端”winsock控件:在该控件里,主要是编写代码预设定要执行的操作命令以及相对应的命令判别字符串,同时,设置监听客户端的连接与接收客户端发送过来的数据,并判断是否符合预设定的命令判别字符串,如果符合,则执行相应操作命令。我们所要远程执行的操作,都是通过在该控件里进行预设定命令语句来执行的。


  以本例,我们在执行备份经普数据之前,必须先退出ePRAS服务器端,然后才能正确执行备份操作。即本程序的编制基于如下思路:“服务器端”收到“客户端”发送过来的执行备份数据的命令后,先获取ePRAS服务器端的窗口句柄,然后终止该进程(即结束该程序的继续运行并于内存里彻底退出),然后调用第三方共享软件winrar执行压缩备份,备份完成后,重新启动ePRAS服务器端。因此,我们就需要预先在“服务器端”winsock控件里编写特定代码,来预先设定所要执行的远程启动或关闭ePRAS服务器端、运行winrar压缩程序执行备份等操作的命令语句,同时,要为这些操作命令设定相应的唯一的命令判别字符串供程序判断。


  关键点:winsock控件的LocalIP、LocalPort 、Accept、Listen、GetData、Close,窗口句柄FindWindow,命令行run等函数或方法、属性的运用。


  ②“客户端”winsock控件:在该控件里,主要是编写代码进行判断用户欲发送的操作命令是否成功发送到服务器端,以及连接状态是否超时等。


  关键点:winsock控件的SendData、SendComplete等方法、事件的运用。


  ③“客户端”的命令按钮command控件:在该按钮里,主要是编写代码预设定要连接的服务器端的IP地址与端口,以及获取用户在文本框text控件里输入的字符串并发送至服务器端。当然,我们也可以再增加一个文本框text控件,用于由用户输入运行服务器端子程序的服务器的IP地址。


  关键点:winsock控件的Connect等事件的运用。


  经过以上代码设置后,我们可以分别编译这2个子程序,然后把服务器端子程序拷贝至服务器上,并在开机启动里添加该程序。以后就可以在自己的机器上,手工远程操作服务器执行我们设定的特定操作了。


  3、以上步骤是说明如何用预设命令来远程执行特定操作。下面我们在前面程序功能的基础上,结合vfp里的计时器Timer控件,来实现定时执行预设命令,从而达到让程序智能进行特定操作的目的。


  ①向“服务器端”里添加1个“计时器Timer控件”:在 “计时器Timer控件”里,添加代码来设定要执行操作命令的日期与时间,并获取当前日期与时间,判断当前日期时间是否符合预设日期时间,如果符合,则开始执行预设操作命令。


  ②向“客户端”里添加1个“计时器Timer控件”:在 “计时器Timer控件”里,添加代码来设定要执行操作命令的日期与时间,并获取当前日期与时间,判断当前日期时间是否符合预设日期时间,如果符合,则向“服务器端”发送预设字符串,“服务器端”收到字符串后进行判断,并执行预设操作命令。


  ③“服务器端”与“客户端”只要有一方添加“计时器Timer控件”即可实现定时执行预设命令。不过,不管是任何一方添加该控件与代码,“服务器端”里都必须预设执行命令与相应的命令判别字符串,因此,还是把定时执行的命令语句设置于服务器端为佳。


  通过以上计时器Timer控件的利用与相应设置,我们就可以实现让程序在我们规定的时间点自动执行特定操作,达到智能化的目的。以上步骤与相关设置代码在windows2000+vfp6.0系统环境下成功测试通过。


  下面再将笔者研究出的另一备份方法----“利用‘WinRAR+任务计划’实现每日定时自动备份普查数据”,详尽介绍于下。


  二、利用“WinRAR+任务计划”实现每日定时自动备份普查数据


  经过笔者实验,按下面步骤顺序依次去做,能够让电脑将你需要备份的普查数据(当然还可以是任何其他你想要备份的文件)每天自动备份到指定的文件夹下并且名称不重复,199MB的初始数据备份后只需30多MB硬盘空间,耗时只需2分钟多一点!而且,只需免费的共享压缩软件“WinRAR”,再加上windows系统自带的“任务计划”就能轻松实现。


  (本例中,定时于早晨4点钟重启服务器,然后于4:30备份服务器上的“D:\Program Files\EPRAS”文件夹下的所有文件到服务器上的“E:\ 国家经济普查数据日备份”文件夹下,再于5:30备份该文件夹到局域网上IP为192.168.0.3的计算机的“国家经普数据日备份”文件夹下。最后于6:30启动ePRAS服务器。操作系统为windows 2000 advancde server,WinRAR软件为3.3版本。本实例自1月31日实验通过并应用在我县经济普查日常数据处理工作中后,截止6月23日,已连续成功运行144天!)


  (一)建立需要备份的列表文件

    
   1、首先,确定需要被备份的文件和文件夹。以本例:


  需要备份的文件夹位于服务器上的D:\Program Files\EPRAS(该路径与文件夹就是你安装ePRAS服务器端程序时指定的);


  保存备份文件的文件夹为:服务器本机上的“E:\ 国家经济普查数据日备份”文件夹(请在服务器上的E盘下建立名称为“国家经济普查数据日备份”文件夹)、局域网IP地址为192.168.0.3机子的“国家经普数据日备份”文件夹(请在IP为192.168.0.3机子上的任意分区下建立名称为“国家经普数据日备份”文件夹,并设置为共享)。


  WinRAR的安装路径为服务器本机上D:\program files\WinRAR。(在进行本文档示例步骤之前请先下载并安装WinRAR软件于服务器上)


  (下面步骤都是以本例的设置进行操作,各位可以根据自己的实际情况进行相应更改。)


  2、建立一个备份列表文件,以1st为后缀名(l是英文字母L的小写,非数字1)。这个文件里所要输入的内容就是我们具体需要被备份的数据文件的路径。步骤:


  新建文本文档(或打开“记事本”),在其中输入“D:\Program Files\EPRAS”(不包括双引号!),然后保存在“E:\ 国家经济普查数据日备份”文件夹下,取名并修改后缀名为“eprasbak.lst”。


  3、建立执行备份命令的配置文件。步骤:


  ①建立服务器本机备份配置文件:在桌面上单击右键,选择“新建”→“快捷方式”命令,将打开标题为“创建快捷方式”的窗口,在该窗口中单击“浏览”按钮,在D:\program files\WinRAR文件夹下找到并点中WinRAR.exe文件,然后点确定返回“创建快捷方式”窗口,然后在该窗口的“请键入项目的位置”下面的文本框里,移动光标到行尾,再继续输入“a -ag -ep2 -ibck E:\ 国家经济普查数据日备份\epars.rar @E: 国家经济普查数据日备份\eprasbak.lst”,然后点击下一步,输入名称“备份ePRAS于本机”,然后点完成。(注意各个命令之间要输入一个空格!经过以上步骤的输入与设置,最后的命令行应该是à"D:\Program Files\WinRAR\WinRAR.exe" a -ag -ep2 -ibck E:\ 国家经济普查数据日备份\epars.rar @E:\ 国家经济普查数据日备份\eprasbak.lst)此时将在桌面上产生一个名称为“备份ePRAS于本机”的WinRAR的快捷方式。


  以后如果要随时手动开始备份(请先参阅“(三)备份时需要注意的事项”),只要双击该快捷方式,WINRAR就会在后台自动读取eprasbak.lst文件中要备份的文件和文件夹,并把它们自动备份到“E:\ 国家经济普查数据日备份”文件夹中,自动取名为“epras+备份时的年月日时分秒.rar”(例如2005年2月3日早晨4:30备份的文件,名称即为epras20050203043000.rar)。


  ②建立局域网备份配置文件:步骤请参考上面的“①建立服务器本机备份”,只将“a -ag -ep2 -ibck E:\国家经济普查数据日备份\epars.rar @E:\国家经济普查数据日备份\eprasbak.lst”替换成“a -ag -ep2 -ibck \\192.168.0.3\国家经普数据日备份\epars.rar @E:\国家经济普查数据日备份\eprasbak.lst”,然后点击下一步,输入名称“备份epras至192.168.0.3”,然后点完成。
 
  (经过以上步骤的输入与设置,最后的命令行应该是à"D:\Program Files\WinRAR\WinRAR.exe" a -ag -ep2 -ibck \\192.168.0.3\国家经普数据日备份\epars.rar @E:\国家经济普查数据日备份\eprasbak.lst)此时将在桌面上产生一个名称为“备份epras至192.168.0.3”的WinRAR的快捷方式。


  经过以上配置后,我们已经能很方便的对普查数据进行手动开始备份了。下面,我们将通过和Windows系统的常用功能“任务计划”的结合,让备份自动进行。


  (二)设置智能自动开始备份


  1、打开“任务计划”。(依次单击:开始à程序à附件à系统工具à任务计划)


  2、拖动桌面上的“备份ePRAS于本机”的WinRAR的快捷方式至“任务计划” 窗口里,或者采用复制“备份ePRAS于本机”的WinRAR的快捷方式,然后粘贴在“任务计划” 窗口里。此时将会在“任务计划”窗口里产生同名称的任务图标。


  3、双击该图标,将弹出一个同名称的标题的窗口,在那窗口里点击“日程安排”选项卡,然后于“计划任务”的下拉列表框里选择“每天”,把“开始时间”设置为“04:30”,然后点“确定”,此时将弹出标题为“设置帐户信息”的窗口,在该窗口的“运行方式”里设置启动该任务计划的帐户名称(即服务器当前windows操作系统的登陆用户名,一般就取当前默认值Administrator不更改),再于“密码”与“确认密码”里输入该用户登陆本机(本例为服务器)时的登陆密码即可。


  到这一步,每天早晨4:30自动备份服务器上D盘Program Files\EPRAS文件夹下的普查数据设置完成。


  4、按步骤2的方法,在“任务计划”里创建“备份epras至192.168.0.3”任务图标;按步骤3的方法,并设置开始时间为“05:30”。

到这一步,每天早晨5:30自动备份服务器上D盘Program Files\EPRAS文件夹下的普查数据到局域网192.168.0.3机子的“国家经普数据日备份”文件夹的设置完成。


  (三)备份时需要注意的事项


  1、执行备份前必须确保已经关闭ePRAS Network服务器以及MYSQL服务器端;如果你无法确定你已经停止MYSQL服务器端运行的话,那么可以采取重新启动服务器后,先不运行“ePRAS 网络版windows服务器端”即可。


  之所以采取重启服务器的原因:可以自动确保内存里不运行epras服务器端程序,从而保证备份程序能正确执行;同时,还能使服务器的内存使用状态得以初始化,使白天上班录机时服务器有良好的内存性能保障。


  2、如果要同时采取局域网多机备份,则那台机子必须是开机状态的,并且必须先登录那台机子或无须输入网络密码,否则WinRAR会因为无法提供密码而拒绝执行压缩备份。因此,最好该机子的登陆用户名与密码同服务器的一致。(本例192.168.0.3的机子由笔者直接使用,所以与服务器的用户名与密码一致。都是采用默认的系统管理员帐号,并统一密码。)由于设置了共享,可能会存在不安全因素,因此不建议出外网的机子采用。


  (四)安装windows 2000 advancde server系统的服务器如何设置自动重启与自动关机本例:


  先找一台安装了windows xp系统的计算机,找到Windows\System32文件夹中的shutdown.exe并拷贝过来,然后粘贴到本机windows 2000 advancde server服务器上的WINNT\system32文件夹下。


  然后开始以下步骤:


  依次单击:开始―>程序―>附件―>系统工具―>计划任务,在弹出的“任务计划”窗口中,双击“添加任务计划”,运行“计划任务向导”,按“下一步”,按“浏览”,找到WINNT\system32目录中的shutdown.exe,点中后按打开,取名称为“定时重启”,选择“每天”,点下一步,设置要重启的时间,(本例为4:00,)点下一步,设置运行本计划任务的登陆用户名与密码,(本例默认用Administrator帐号)点下一步,勾选“在单击‘完成’时,打开此任务的高级属性”,点“完成”。此时会打开标题为“定时重启”的窗口,在默认的“任务”选项卡里的“运行”文本框里,移动光标到最后,然后输入“-f -r -t 1”,(注意各个命令之间要加一个空格!)即完整语句应该为“C:\WINNT\system32\shutdown.exe -f -r -t 1”,然后点“确定”,再次按要求设置好用户名与密码后点确定即可。
   
  以后只要服务器机子开着就会在每天早晨4:00自动重启!
   
  如果要自动关机,只要更改为“C:\WINNT\system32\shutdown.exe -f -s -t 1”即可。
   
  其中: 

  -f 强制关闭任何正在运行的程序而且不警告

  -r 关机后重新启动

  -s 关机
  -t 设置提示时间,本例设置为1秒
   
  如果你本来就用的是windows xp系统的话,就直接参照本例进行设置即可。


  (五)自动启动ePRAS服务器端


  依次单击:开始―>程序―>附件―>系统工具―>计划任务,在弹出的“任务计划”窗口中,把桌面上的“ePRAS 网络版windows服务器端”图标拖进来或复制后粘贴进来,然后参照上面的类似步骤设置启动时间为6:30即可。


  经过以上步骤的设置,现在你的服务器将会在每天早晨4点整重启,然后分别于4:30和5:30开始备份ePRAS文件夹,再于6:30启动ePRAS服务器端。在你早上上班时,就可以直接继续录机了!感觉用“自动重启+自动备份”进行日常数据备份是不是方便省力了很多啊? 


  (六)数据的恢复


  找到你要恢复的备份文件,比如要恢复到2005年2月3日4:30备份的数据,则找到“E:\国家经济普查数据日备份”文件夹下的“epras20050203043000.rar”,双击打开后,点“释放到”,然后在“目标路径”下面的下拉文本框里输入“D:\”或者直接点一下D盘,再点“确定”开始解压缩并覆盖原文件夹即恢复数据。


  (七)数据恢复的注意事项


  本例采取备份完整的ePRAS文件夹(即包括:bin、mysql、resources三个文件夹),你可以按上述步骤直接全部覆盖而恢复,或只恢复其中的任一个文件夹下的所有文件与数据。


  由于后续工作中我们将不可避免的会给ePRAS系统打补丁(个别市县甚至有可能还会更新制度),所以建议在日常数据备份与恢复工作流程中:


  ①每次给ePRAS系统打补丁或重新安装ePRAS系统前,重启服务器,然后手工双击桌面上“备份ePRAS于本机”或“备份epras至192.168.0.3”的WinRAR的快捷方式立即执行完整备份,以保证有最新最近的可恢复数据源;


  ②如果你要恢复的数据是在ePRAS系统打补丁之前的话,别忘了恢复早期数据后,要重新打补丁!


  之所以采取完整备份与恢复,是为了避免万一出现ePRAS\bin文件夹中的文件非人为的损坏或丢失而导致ePRAS系统运行错误。


  ③如果担心以后重新安装ePRAS系统程序可能会存在或多或少的问题,那么何不在某次程序安装后、使用正常时、先给windows操作系统来个ghost备份?那以后除非ePRAS程序变化极大出了新的安装包,否则,我们平时只需在这ePRAS程序平台上进行恢复数据或打补丁即可。


  (八)服务器开机时的windows操作系统自动登陆的设置


  打开“记事本”,输入以下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

"DefaultUserName"="Administrator"

"DefaultPassword"="1234567890"

"AutoAdminLogon"="1"  


  其中:


  DefaultUserName是设置开机默认用户名,应该与前面要执行自动备份的用户名一致;


  DefaultPassword是你设置的开机默认用户名的登陆密码;


  (请修改本例密码1234567890为你自己的密码!否则可就出错啦!)


  AutoAdminLogon设置为1将使用默认值自动登陆。


  然后依次点“文件”―>“另存为”,再选择“保存类型”后面下拉列表框里的“所有文件”,然后在“文件名”后的文本框里输入“开机自动登陆.reg”,再点“保存”即可。


  然后找到“开机自动登陆.reg”,双击,将弹出标题为“注册表编辑器”的窗口,选择“是”后开始导入,则设置服务器的windows操作系统开机时自动登陆成功!


  你可以马上重启测试一下了。


  开机自动登陆是必须的!否则你服务器上很多后台服务程序将不能自动启动!包括本例中设置的“ePRAS 网络版windows服务器端”于6:30的自动启动将不能成功执行!(但本例中的定时压缩备份能正常进行!所以,应该说只要你机子开着就能确保做到每天正常定时自动备份!)


  “WinRar”与“任务计划”以及“shutdown”还有一些强大功能,我们可以参考这些程序自带的帮助文档里的内容,在日常工作中根据实际需要充分运用并扩展其功能,应该能减轻一些工作量,并为数据安全提供尽可能多的智能保障。


  三、两种备份方法的比较


  在以上两种智能备份数据的实现方法说明里,我们不难看出,直接利用“WinRAR+任务计划”来实现每日定时自动备份数据的方法具有容易上手,操作简便的优点,尤其是适合大面积推广至各地日常数据处理工作中使用。而自行编写程序实现智能定时自动备份则有点复杂,因程序里需要考虑的容错细节较多,并且需要数据处理工作人员懂vfp编程,因此不是大家都适用,也不便于大面积推广使用。


  不过,利用“WinRAR+任务计划”来实现每日定时自动备份的方法的不足之处是:只能在设定好的特定时间点执行相应操作,却不能实现在日常随时开机或重启后的特定时间点来智能自动运行某程序或执行特定操作,而是需要再辅以手工行为。而在自行编制的程序里,则能通过添加几句代码就能轻松实现该功能。


  因此,尽管远程定时备份并操作服务器的程序的编写略显复杂,但该程序在实际应用中的功能是强大的,具有相当的实用性与可扩充性。我们还可以在这自动备份经普数据的功能基础上,继续添加一些日常工作需要的功能,比如开机时自动备份名录库sql数据库、开机后特定时间内自动备份服务器上的其他重要应用程序及其数据或文件夹,等等。这些操作都只需根据我们的特定需要继续在程序里添加数行代码就能顺利实现,


  以上实现智能定时自动备份数据的思路与方法,仅是笔者结合工作中的实际需要所做的研究。愿上述方法能简化一些您的日常工作,更愿其智能化自动定时运行的特点能弥补您偶尔忘记备份时可能发生的缺憾。