地震台站前兆数据库备份管理
2018-12-28裴红云李罡风
裴红云,陈 俊,谢 庆,李 发,李罡风
(安徽省地震局,安徽 合肥 230031)
“十五”数字化改造后,地震前兆台网建立了基于Oracle数据库的技术平台,实现全国地震前兆观测数据的统一管理。通过各级数据库层层交换前兆观测数据的模式(周克昌,2010),为数据的处理、汇集、上报及服务提供平台。首先由各节点台站通过数据采集功能将前兆观测数据采集至台站数据库,再上报至区域前兆台网中心,然后由区域前兆台网中心汇总至国家局数据库。功能强大的Oracle数据库为前兆技术系统提供了便捷的平台,为保障前兆台网技术系统的正常运行,数据库的管理与运维也受到越来越多的关注(林树泽,2010;陈俊,2016)。
各级数据库的高效运转是前兆观测数据及时汇集、提供数据服务的基本保障,区域中心数据库备份维护已趋于常态化(袁燕妮,2011;徐吉,2005;张云帆,2009;哈斯高娃,2010;陈传华,2010;蒋春曦,1999),台站节点因为架设在各个台站,无论是硬件条件还是技术管理上,较之区域台网中心都存在不足(裴红云,2015)。台站节点数据库大多未采取任何形式的备份,一旦故障就无法进行数据库数据恢复,近年来因服务器硬件故障及数据库系统故障等原因,多次重建台站节点数据库,造成台站数据库数据信息的大量缺失,给台站数据处理及使用带来损失。因此建立台站数据库的备份体系,利用备份集重建数据库后进行数据恢复,对保证台站数据库的信息完整,以及快速恢复基于数据库的各类应用软件的正常使用的重要性不言而喻。
1 台站前兆数据库现状
安徽区域共架设9个台站节点地震前兆数据库,主要用于前兆观测数据的采集、处理和报送,具体流程如图1所示。地震台站是观测数据产出的源头,台站人员也是借助台站数据库,利用各种前兆专业软件进行数据的采集、预处理和相应的前兆数据产品的产出;因此,节点台站数据库的正常运转,对数据连续完整以及前兆数据的及时产出和传输至关重要。目前,台站数据库的软硬件全部放置在台站,软硬件技术管理主要由区域中心工作人员承担;因台站软硬件条件及技术人员的匮乏,数据库尚未进行备份管理,台站服务器一旦发生系统及数据库级别的故障时,重建台站数据库就会造成台站数据库中数据的丢失,必然给台站的数据处理和产品产出造成损失。因此,建立台站节点数据库的备份,以便故障时进行数据恢复,也有助于各类前兆软件与新建数据库的顺利衔接,快速恢复台站的数据。
2 台站前兆数据库备份
2.1 备份设计
首先,在硬件方面,鉴于台站仅有一台前兆服务器,从资源节约的角度考虑,可以从区域中心抽调一台服务器用于所有台站的备份集存储;其次,从技术层面,台站或区域中心人员定期手动备份的安全隐患较大,重复多次的手动操作费时费力且增加了出错误概率,因此,备份设计中尽量实现自动化操作与管理。这里制定的节点台站数据库备份方案满足以下条件:(1)备份过程自动化,定期在台站数据库本机自动产出备份集;(2)备份集异机存储,自动化传输备份集;(3)自动化管理备份集,定期删除过期备份。整个备份的步骤也是围绕这几个方面展开的。
2.2 备份步骤及方法
台站数据库备份按照以下步骤来完成:(1)备份集产出,定期在各台站服务器自动产出备份集(如一周两次一般即可以满足台站数据库数据备份的需要);(2)备份集自动异机存储,备份集产出后,自动将备份集传输至区域中心备份专用服务器上存储,异机存储较好地保障备份集的安全性;(3)备份集自动化管理,自动查看备份集时间,删除过期的备份集,释放空间。备份流程如图2所示。
图1 地震台站前兆技术系统示意图
2.3 备份部署
按照上述数据库备份方案的思路,需要在台站和备份集存储服务器上进行备份的相关部署。首先,在台站数据库服务器上,实现数据库自动备份和备份集自动传输两个功能。这里,分别编辑了数据库备份脚本oraclebackup.sh和备份集传输脚本auto.sh,通过修改脚本文件中对应的参数,并将这两个脚本文件上传至各个台站服务器,用于完成数据库的备份和备份集传输功能。其次,通过crontab设置脚本文件自动执行时间,可实现脚本文件的自动执行,进而完成数据库的备份和备份集传输的自动化。另一方面,在区域中心的备份集存储服务器上,仅需完成各个台站节点数据库备份集的管理。这里,也编写了备份集管理脚本mv.sh和rm.sh,分别完成备份集文件名修改及删除过期备份集的功能;以时间日期修改备份集文件名便于同时存储多个时间点的备份集,删除过期备份可以释放存储空间,提高硬件利用率。这里同样通过crontab设置脚本自动执行。
3 备份实施中问题解析
完成台站数据库服务器及区域中心存储服务器的备份管理部署后,实际执行过程中可能会出现一些问题,这里也逐一对这些问题进行解析。
3.1 脚本权限及格式问题
脚本文件上传后,首先需要对脚本文件进行权限赋值,一般执行chmod 777-R filename即可,如下所示:
执行脚本文件时,实验中曾出现“no such file …”以及“^M”等错误提示,经查原因为脚本在Windows下编辑,上传到Linux系统存在版本错误。可以通过直接在Linux下重新编辑脚本,或者修改脚本格式来解决,方法如下:vim filename检查脚本文件格式,如果显示fileformat=dos,直接修改格式为unix(语句为“:set ff=unix”),然后退出文件即可。
3.2 备份及备份集传输问题
以安徽区域前兆台站为例,需要对9个节点台站进行数据库备份,并且将9个台站数据库的备份集传输至同一台服务器。从降低对数据库使用影响,采取夜间数据库冷备份模式进行备份;从节约存储空间的角度考虑,各台站备份保存为压缩格式文件;从管理方便考虑,9个节点台站数据库同时备份稍后传输,预估备份完成时间,适当延后备份集传输时间;此外,设置传输备份集时间时应考虑网络传输速度,可采取各台站依次传输模式。
3.3 脚本自动执行设置
crontab命令是Linux操作系统中用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供读取和执行。crontab的使用形式多样,这里仅需要利用crontab -l和crontab -e来查看、编辑当前用户下的crontab指令即可。查看crontab指令如下:
键入crontab-e ,进入crontab指令编辑,insert按键进入编辑,esc按键退出编译,“:wq”保存修改并退出。
crontab基本语法:f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天,而program 表示要执行的指令。例如,00 1 * * 0,3 /…/rm.sh表示每周日、周三1∶00执行rm.sh脚本,其中“*”默认为全选。
4 结语
地震台站前兆数据库备份管理方案充分考虑前兆台站软硬件和技术人员的实际现状、以及前兆数据库数据完整性、运行稳定性等要求;以自动化管理为特色,利用数据库使用空闲时段选择全库备份模式进行数据库冷备份;采取区域中心集中存储、管理备份集的模式,实现资源的有效利用和统一管理;并通过设定功能脚本定期自动执行的方式,来完成整个备份和备份管理过程的自动化。按照上述方案对安徽区域节点台站前兆数据库进行备份管理,并设定每周备份两次,定期删除过期备份集,整个备份及管理运行情况良好。部分台站因系统损坏,重建数据库后,使用自动备份的备份集进行数据恢复,方便快捷;各类前兆处理分析软件,访问数据库时,无需重新配置参数,各项工作可快速恢复正常。实践证明,建立地震台站前兆数据库备份管理体系,改变了台站数据库无备份的现状,简化了数据库备份流程,缩短了前兆台站数据库系统的故障恢复时间,并尽可能保证了数据完整性,为前兆技术系统的高效运转和数据的及时产出与传输提供了更好的安全保障。