2. 中国江西 341000 赣州市地震局;
3. 中国北京 010000 中国地震应急搜救中心
2. Ganzhou Earthquake Agency, Jiangxi Province 342500, China;
3. National Earthquake Response Support Service, Beijing Municipality 100049, China
Oralce数据库是中国地震前兆台网数据管理系统运行的重要组成部分之一,建立一套完整的数据库备份及恢复方案,以保证数据安全和数据库的可用性(陈传华等,2010)。特别是,当服务器故障、数据库控制文件、数据文件、参数文件等受到损坏,如数据文件被删除、机器故障、表中数据被删除等,可以使用备份数据文件对数据库进行及时恢复,尽可能保全用户数据免遭损失,使地震前兆数据库继续正常运行(路川等,2008)。
中国地震前兆台网数据管理系统只针对省地震局节点实现数据库备份,而对于地震台站节点无备份数据库,且未曾做数据文件备份,因此当台站节点出现服务器故障时,数据丢失是一个必然事件,如何保障地震台站节点数据库的数据及备份恢复是一项重要工作。
脱机备份(冷备份)是多数省地震局与台站采用的一种主流数据库备份与恢复方式(李国佑等,2015),经文献查询与实地调研,地震系统前兆数据库主要以脱机备份(冷备份)为主,且主要应用于省地震局数据库的备份与恢复,山东省地震前兆台网是较早开展数据库脱机备份单位之一,其使用的数据库脱机备份方式先后用于多个省地震局前兆数据恢复。对于逻辑备份方式,近年来中国地震台网中心前兆部、青海省地震局均开始实验与应用,主要通过编写脚本方式实现逻辑备份,数据恢复仍处于实验阶段并未推广。开展逻辑备份主要原因是,脱机备份对数据库安装版本与操作系统的基础架构要求较严格,跨版本的脱机备份无法实现数据库恢复。同时,脱机备份是最原始的数据迁移方法,就是在目标机器上建立与原机器上完全相同的运行环境,把原来的数据文件拷贝到目标机器上完成迁移,受数据量增加、数据服务器停止工作时间的限制,脱机备份比较影响工作进程,因此不停机、热备份是当前数据库备份与恢复的一种需求。
逻辑备份(热备份)方式较多,以表空间、数据文件级的备份为主,可实现数据库的整体备份与恢复,但必须在归档模式下实现,不可实现定制备份,且一旦出错将不可实现恢复。本文应用PL/SQL工具的EXP与IMP数据导出、导入功能,实现表级的备份与恢复,且通过条件筛选实现数据的自定义备份与恢复。该方法不受Oracle数据库是否归档的限制,不同Oracle数据库之间可实现恢复,且与表空间、数据文件备份方式不同的是表备份不需要通过不断调整备份参数方式完成备份与恢复。如果地震台站节点表备份不成功,可通过省地震局数据主库或备份库条件筛选表内数据恢复台站观测数据。
1 数据库备份与恢复 1.1 方式Oracle数据库有2种备份与恢复方式,分别为物理备份和逻辑备份,其实现形式如下:①物理备份。又分为冷备份、热备份,将实际组成数据库的操作系统文件从一处拷贝到另一处,通常是从磁盘到磁带;②逻辑备份恢复:利用SQL语言从数据库中抽取数据并存于二进制文件。逻辑备份使用导入导出工具为EXPDP/IMPDP或EXP/IMP。
1.2 实用性2种备份方式优点与缺点并存,需要用户根据实际环境平台选择适合备份与恢复的方式,例如:跨平台方式、是否可以关闭数据库等,优缺点分析见表 1。
由于前兆台网数据存储量不断增加,采用脱机备份方式进行物理文件备份一次需要长时间关闭数据库,影响正常业务工作。此外,台站节点数据库崩溃,无数据源,只可使用逻辑备份方式通过省地震局数据库恢复台站数据库节点。
2 数据恢复流程使用Oracle数据库自带的数据恢复工具EXP与IMP,通过条件筛选方式由省地震局数据库备份邯郸前兆节点所有设备的观测数据与日志信息(存储表级别),将备份文件导入邯郸地震前兆台站节点,恢复邯郸节点数据库,具体恢复流程见图 1。
以上方法也可在数据库无故障状态下以文件形式备份数据,并将备份数据文件异地存储,可以避免数据库节点硬件、软件故障后丢失数据的现象,是一种操作简单、实用性较强的数据库备份方式。为减少人为编写脚本产生的错误,本实例通过PL/SQL Developer软件自带的导出/导入界面实现上述操作功能,一方面减少人为干预可能产生的错误,避免单独写脚本错误的产生;另一方面,实现窗口的可视化操作可以提高操作效率,是一种相对高效的方式。
3 数据备份与恢复通过PL/SQL Developer工具的Oracle数据导出、导入功能,将省地震局数据库表中有关邯郸地震台网的数据全部导出,并通过导入功能将数据导入邯郸地震台站数据库节点(目标数据库),恢复邯郸地震前兆台站节点数据管理工作。
3.1 实例操作平台以恢复邯郸地震前兆节点为实例,具体操作环境见表 2所示,平台搭建适用于省地震局节点和前兆台站节点,该平台搭建配置简单、易操作,且可在配置较高的服务器完成,本实例使用Lenovo X3650M系列机器。
完成地震前兆台站节点恢复的客户端操作要求如下:①客户端需高硬件(CUP、内存、硬盘)配置,必须满足导出数据文件的存储空间;②网络通畅,建议在一个交换机上进行操作,避免延时过大或网络中断造成数据导出/导入失败;③安装PL/SQL Developer软件用于数据导出与导入;④安装Oracle数据库客户端软件,应用EXP与IMP工具作为工具接口。
3.3 数据备份通过省地震局前兆数据管理系统(数据库源)的节点拓扑图查看数据库中邯郸前兆节点包含测项,以测项代码锁定检索的数据表,应用PL/SQLDeveloper工具的Export Table功能,在选定邯郸地震台网所包含设备测项数据表前提下,实现观测数据的导出,具体备份操作流程如下。
(1)打开PL/SQL软件,用qzdata用户登录省地震局数据库(数据源),点击Tools-Export Tables,弹出任务窗口,见图 2。
(2)根据选定邯郸前兆节点所包含的测项表(多个表可通过CTRL键实现表格复选)填写筛选条件。
(3)数据导出参数设置。Compress实现数据的压缩,确保文件在一个分区存储,减少碎片文件;Constraints:导出限制;Grants:导出权限;Rows:导出数据行;Buffer size:大小取决于系统应用、数据库规模,通常设为百兆;Where clause:邯郸节点包含台站(where stationid='13012' or stationid='13026' or stationid='13027')。
未配置Indexes、Triggers是因为在实现数据导入前提下,邯郸节点已安装管理系统,建立触发器及索引。Zip可根据数据量大小进行勾选。
(4)选择输出文件的存放路径。设置数据存放路径后,点击Export开始数据导出,导出过程弹出数据统计对话框,显示导出数据条目数及报错情况(log日志信息),见图 3。
(5)导出数据文件后对话框自动关闭,文件形成,打开存储数据文件路径,查看备份数据文件,至此数据备份操作完成。
3.4 数据恢复应用PL/SQL Developer软件登录邯郸地震节点数据库服务器(目标数据库),通过PL/SQL Developer工具的Import Table功能实现数据导入,具体恢复操作流程如下:①打开PL/SQL软件,使用qzdata用户登录邯郸数据库服务器(目标数据库),点击Tools Import Tables,弹出任务窗口,见图 4;②设置导入数据参数,本例选择导入参数如下:Constraints:导入限制;Grants:导入权限;Ignore:忽略一些错误,该项必须选择,否则出现数据不唯一时会自动退出;Rows:导入数据行;Buffer size:大小取决于系统应用、数据库规模,通常设为百兆;③选择输入文件的导入路径,点击Import导入数据,操作完成对话框自动关闭。
(1)避免数据重复交换。根据前兆数据同步机制,完成邯郸节点数据导入操作后,为避免台站节点数据再次交换到省地震局数据库,减少数据交换带来的压力,修改导入数据对应的data_index字段,统一设该字段为-1,执行语句为update qz_312_dys_01 set data_index=-1。
(2)数据条目数检查。为确保导入数据条目数的准确性,需检验数据源与目标数据库中数据表两端条目数的一致性,数据条目数统计检查结果见图 5。用于保障数据完全导入,避免两端数据条目的不一致,执行语句如下select count(*) from qz_312_dys_01。
(3)一致性检查。为避免数据导入失败或数据丢失,在条目数一致前提下,抽样检查各测项一段时间内数据的一致性。通过数据绘图方式,将某一台站某一段数据在源库与目标库分别绘图,人工检查数据的一致性,避免数据导入失败等造成数据不一致现象。
3.6 操作注意事项(1)数据备份前应分析导出数据效率,如果某一张表数据量较大,应分级导出数据,避免数据恢复不成功。如:长周期、秒数据,建议只导出一张表内的数据,避免导入出错影响操作效率。
(2)通过PL/SQL数据导出要考虑导出条件,避免导入时出现约束错误或数据导入失败。如:不同表之间字段不一致,通过一个条件导出的表在写入目标数据库时会因为条件不一致造成数据无法入库。
(3)使用PL/SQL Developer工具进行数据恢复时,如违反条件约束,数据导入库中也不影响数据恢复。
(4)备份表要全,特别是个别学科的特殊表名,如:地电五日均值、地磁产品数据、数据跟踪分析产品blob格式图件。
(5)数据恢复时,data_index字段务必改为-1或较大的数,避免数据恢复后再次交换,对上级数据库唯一性约束造成影响。
(6)通过sql语句查询每个表中数据的容量大小,可以综合考虑导出数据按表容量分级,尽量将数据限制在一定范围内,避免数据过大造成导入负担,如:包含测项条目数、秒数据、分钟值、小时值等。
(7)在同一个交换机上测试:4年内2套秒采样设备数据表导出时长约20 min,导入约耗时35 min。
4 程序特点及应用效果 4.1 特点(1)图形化界面简单易操作。PL/SQL的EXP/IMP功能是在图形化界面下完成数据的导出与导入,参数设置采用复选框形式,可实现零基础操作,只需严格按照操作过程实现数据复制,是台站节点实现数据备份与恢复的有效途径。
(2)可移植性强。工具导出文件格式为.dmp。该文件是二进制文件,可通过文本编辑器查看(显示为二进制代码),可实现跨平台数据恢复,且数据恢复的可移植性较强,应用效果较好。
(3)软件自带冗余判断。由于地震前兆数据库表通过设置多字段作为约束条件,PL/SQL软件在实现数据导入时如遇到违反主键约束的数据导入,将通过日志告警方式提醒用户,数据导入不成功,不影响后续数据导入。因此,冗余判断功能可以避免多次重复调整数据导入筛选条件,方便用户使用。
4.2 效果河北省共有8个地震前兆分中心,根据数据存储量、基础信息更新频率,采用分阶段备份方式完成数据及基础信息备份。按照数据量大小备份周期长短的方式,对数据量较大的张家口地震分中心采用1个月备份1次的方式,而对于数据量较小的其余7个地震分中心采用半月为一个周期的备份方式,在数据库出现故障时可保障台站节点数据的及时恢复。而对于基础信息,则采用变更时备份的方式。具体备份内容及信息见表 3。
通过EXP/IMP工具完成的数据备份与恢复,实际测试发现,导出与导入数据条目数一致性为100%,抽查数据完整性为100%,数据完整性与一致性效果优良。
5 结束语PL/SQL备份可定期人工操作。通过人工备份与恢复相对较安全,备份不成功可多次手动备份或按照表容量大小拆分备份。实验与实际恢复邯郸前兆节点暂未发现问题。
EXP、IMP工具在数据库不停止工作的前提下可以较好地完成数据的导出、导入,减少人为停止数据库带来的不便。该工具提供可视化界面操作,在配置参数较少的前提下可以完成数据库的备份与恢复,可用于无备份数据库台站节点的观测数据备份。此项操作对数据库知识要求较少,简单易操作,便于台站数据备份。及时的数据备份可避免台站节点数据库崩溃带来的不便,可有效保障前兆台网数据存储,提高整体效率。
陈传华, 曲保安, 朱荣, 等. 前兆管理系统数据库冷备份及恢复方法实现[J]. 地震地磁观测与研究, 2010, 31(4): 135-139. | |
李国佑, 李增华. 采用数据库冷备份更换升级玉树地震台前兆服务器[J]. 高原地震, 2015, 27(Z1): 68-70. DOI:10.3969/j.issn.1005-586X.2015.z1.012 | |
路川, 胡欣杰. Oracle 10g宝典[M]. 北京: 电子工业出版社, 2008, 791. |