深入解析智能定时自动备份数据

在数据处理工作中,为了保障数据的安全,需要经常进行数据备份。一份及时的备份数据,在关键时刻能发挥很大的作用。它不仅能为数据提供可恢复性,还能为数据提供可追溯性。尤其是能够最大限度地避免数据处理人员误操作时可能带来的毁灭性灾难。因此,智能定时自动备份数据对数据处理人员来说是非常重要的。
在这次经济普查工作中,经普程序存在某些缺憾,没有提供可及时备份这一功能项,同时,可登陆经普程序进行数据处理操作的人员的权限设置也不够完善。而在连续数月的日夜加班加点的疲惫状态下,难免会出现个别数据处理人员在数据录入、审核、改错、排重、删除等数据处理操作过程中出现误操作,导致数据缺失或误修改,严重的甚至会丢失全部已录经普数据,致使整个数据录入阶段的工作白做,尤其是会影响到上报时间。而通过直接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控件”即可实现定时执行预设命令。不过,不管是任何一方添加该控件

网策通  发表于: 2009-11-30

我要回答

电子邮件地址不会被公开。 必填项已用*标注

敬请读者进行回答,本站保留删除与本问题无关和不雅内容的权力。

相关推荐