中国地震前兆观测台网“十五”数字化观测网络建设完成已近10年,国家地震前兆台网中心 (以下简称国家中心) 是全国的数据汇集与存储中心。作为地震前兆观测的数据中心,数据库的安全、稳定是数据管理工作的核心。Oracle数据库以其高性能和稳定性著称,成为各行业用户首选商业数据库,“十五”地震前兆观测数据就存储在Oracle 10g数据库。
随着时间的推移,地震前兆台网数字观测仪器越来越多,加上高采样率仪器的入网,地震前兆观测数据量剧增。面对日益庞大的数据库,数据的备份、恢复和迁移成为难题。目前主流的Oracle数据复制技术有:磁盘阵列厂商提供的复制技术,如EMC的vplex技术,一般用于大型数据中心的高端SAN阵列,服务费用高昂;基于数据库日志挖掘的第三方复制软件,如DSG公司的RealSync、Quest公司的SharePlex等,均价格不菲,同时收取服务费。从经济效益的角度出发,地震前兆数据库普遍采用Oracle自带工具、自行开发软件或免费软件进行数据备份,然而常规的Oracle工具在复制大型数据库时在速度、停库时间等方面难以满足前兆台网的运行与服务需要。为此本文提出若干数据备份与迁移策略,应对不同的应用场景,满足不同的数据管理需求。
1 数据库备份方式 1.1 常规备份方式地震前兆数据库常用备份方式有:“十五”地震前兆数据管理系统 (以下简称管理系统) 备份、冷备份和导入导出备份。其中,管理系统备份和冷备份是管理系统软件培训时推荐方式。管理系统备份是应用软件级别的备份,通过在数据表中的标记实现基于表的增量备份。冷备份操作相对简单,停止数据库,直接复制数据库相关文件即可 (李国佑等,2013),用于各区域地震前兆台网中心和地震台站数据库的数据备份 (《区域地震前兆台网运行管理技术要求》明确指出,区域中心地震前兆数据库应每月冷备份1次)。导入导出是一种逻辑备份方式,对数据库表数据进行操作 (齐志飞等,2016),备份工具一般为EXP/IMP或EXPDP/IMPDP (数据泵方式,速度比普通导入导出快)。
1.2 准在线冷备份Oracle使用重做 (redo) 日志来保证事务意外中断 (如断电时) 可以重演 (谷长勇等,2008)。用户修改数据库时,首先在内存中进行修改,不直接写入数据文件,修改达到一定数量后顺序写入重做日志 (写数据文件比较分散,磁盘I/O效率低),当重做日志写满时才真正将数据写入数据文件,并切换重做日志,同时由ARC进程生成归档日志 (重做日志的副本),可以最大化提升性能。图 1为Oracle重做日志示意图。
因此,处于归档模式下的数据库可以使用归档日志对过期数据文件进行日志重演,恢复数据文件的一致性。由实践经验进行模拟试验,笔者提出冷备份改良方式,称为准在线冷备份,可以将国家中心地震前兆数据库关闭时间缩短至30 min以内,其他时段数据库正常使用,适合大型前兆数据库备份与迁移。
1.3 备份策略对比除上述备份方式外,还可使用RMAN备份 (蔡晓洁等,2016)、Data Guard (宋亮等,2013) 和Golden Gate等方式实现数据备份或复制。从国家地震前兆台网中心的实践经验可知,不同数据库备份方式各具特点,需要根据实际情况灵活使用。对地震前兆数据库各种备份方式作对比,结果见表 1。
国家中心“十五”前兆数据管理系统包括4个数据库:国家中心主数据库 (7 TB)、备份数据库 (7 TB)、地电台网中心数据库 (190 GB)、流体台网中心数据库 (390 GB)。各省地震局前兆观测数据汇集到国家中心主数据库后,经管理系统流向备份数据库,同时分发到学科中心数据库 (地电和流体等)。国家中心主库存储在中国地震台网中心 (以下简称台网中心) 的SAN阵列上,备份库和2个学科数据库存储在台网中心NAS阵列。国家中心数据存储架构见图 2。
目前,由管理系统将主数据库的数据增量复制到备份库,出于性能和安全考虑,由备份库对外提供数据服务。然而,由于管理系统基于应用级别进行数据备份,无法捕捉除管理系统外的其他应用软件产生的数据变化,造成主库与备份库数据不一致,通常是主库数据较多 (如:“九五”观测系统迁移数据未参与管理系统数据交换)。另外,管理系统中地震台站基础信息表等使用快照方式复制数据,当主库崩溃切换到备份库时,需要重建快照,由于国家中心汇集的全国基础数据量大,重建快照过程较长,可能需要几天,严重影响业务的正常运行。严格来说,管理系统的数据备份做不到数据的完全镜像复制。
随着地震前兆数据库数据量的日益增长,冷备份停库时间越来越长,以致于管理系统无法进行数据交换,影响数据的及时更新,对数据使用造成影响。综合以上分析,国家地震前兆台网中心数据库由于数据量大,且不能长时间停止数据库,所以无法使用常规数据备份方式进行全库数据备份与迁移。
3 国家中心主数据库磁盘阵列故障与准在线冷备份实施2016年1月22日晚,中国地震台网中心的EMC CX380磁盘阵列出现故障,致使国家中心主数据库无法启用,而国家中心备份数据库使用的NetApp NAS磁盘阵列从2015年11月起运行不稳定,多次出现故障,其中两次故障造成数据库出现ORA-600错误而无法启动,国家中心运行维护组修复多张数据库表的逻辑错误,使用隐藏参数强制推进SCN后可以正常启动数据库。为确保地震前兆观测数据安全性,准备将前兆备份数据库数据复制到新购置的NAS存储设备上,由国家前兆台网中心运维组制定备份方案并负责具体实施工作。
3.1 准备工作(1) 硬件准备。由信息网络部新建两个卷的NAS阵列空间作为目标库磁盘,考虑到空间增长需求,新建卷大小分别为10 TB和5 TB;由于阵列故障前主库上运行的是AIX操作系统,与备份库Linux系统不兼容,使用一台新服务器安装目标数据库Oracle实例;信息网络部更换旧NetApp阵列上的故障配件,保障数据复制的顺利进行。
(2) 软件准备。在目标数据库服务器上安装与源库相同版本的Oracle并建立PDBQZ实例;修改源库和目标库服务器的root密码和Oracle密码,防止误操作;拷贝文件命令前加上setsid命令,以确保后台执行,防止中断会话后备份停止;每条命令必须经过三个人员确认才可执行,防止误操作。
(3) 应急准备。如果在数据备份过程中发生地震,而数据备份库不能及时打开,将给地震预报部门提供各学科数据库账户用于地震应急会商,并由预报部各学科组进行实际连接测试,确保可以正常访问学科数据库。
3.2 实施备份考虑到国家中心地震前兆数据库的数据量巨大,为了最大化备份速度和最小化停库时间,决定使用准在线冷备份的方式进行备份,即在归档模式和数据库打开的状态下,进行数据文件的拷贝。准在线冷备份实施步骤如下:① 在目标数据库服务器上挂载新建卷,修改权限为Oracle所有;② 查看源库数据文件存放文件夹、文件大小等信息;③ 关闭目标库,备份目标库的参数文件;④ 在源数据库打开归档模式 (需要重启数据库),若源库在归档模式则清除归档日志,减少后续复制的日志文件大小;⑤ 在目标服务器终端上,使用后台命令复制所有数据文件和数据库参数文件到目标库,每隔1-2小时远程登录该服务器,查看文件复制情况;⑥ 关闭源数据库,复制控制文件和在线重做日志到目标库,然后打开源数据库;⑦ 复制归档日志到目标库;⑧ 启动目标库到mount状态,使用recover database恢复数据库,恢复完成后打开目标库,备份完成。
3.3 解决备份过程出现的问题在数据库备份过程中,可能会遇到一些操作系统或数据库的错误,使用以下方法予以解决。
(1) SUSE11无法进入图形模式。修改/etc/X11/xorg.config中的分辨率,重启服务器即可进入图形模式。
(2) 无法将源库切换到归档模式。源库用shutdown immediate关闭时挂起,使用shutdown abort强制关闭后无法切换到归档模式,分析认为,数据库关闭时有事务仍在执行。查询v$transaction视图和系统的锁状态,判断smon_scn_time表被锁定,是系统进程SMON占用的表,可使用以下语句暂时停止SMON对该表的更新。即
alter system set events ' 12500 trace name context forever, level 10';
重启数据库后,将smon_scn_time表truncate掉,使用以下语句恢复SMON的更新。即
alter system set events ' 12500 trace name context off';
数据库再次重启即可正常工作,切换到归档模式。
(3) 启动目标库报ORA-4031错误。判断为数据库启动参数问题,尝试修改参数无法解决,复制备份的PDBQZ实例参数文件,目标库启动恢复正常。
4 数据存储架构调整2016年3月地电学科中心数据库崩溃,国家中心运维组重建地电数据库并修复表权限,从国家中心主库导出地电数据到新库,然后从旧地电库的数据文件中恢复大部分地电私有表数据。国家中心主数据库的磁盘阵列故障与地电学科中心数据库的崩溃这两次数据风险凸显了数据备份的重要性,也暴露了地震数据管理的一些问题,如:主库与备库数据不完全一致、地电库无备份库等,促进国家中心调整数据存储架构。
2016年6月中国地震局监测预报司组织专家重新设计国家中心数据存储架构 (图 3),拟改造为生产库、交换库、备份库3个数据库,从生产库到备份库使用Data Guard的物理standby实现镜像,从生产库到交换库使用Data Guard的逻辑standby或Golden Gate复制数据,通过冗余保障数据安全。生产库作为数据变更源头,包含前兆观测数据、前兆台网中心门户网站运行数据以及背景场软件加工的产品数据等,其他2个库则是其完全备份,从而保证数据备份的准确性和数据库的高可用性。长远来看,需要对访问数据库的应用软件进行优化,以实现“十五”库、学科库和背景场产品数据库的整合,减少数据管理的复杂度和工作量。
地震前兆数据库的备份作为前兆数据管理的日常工作,对于确保前兆数据的安全、前兆业务的正常运行和地震行业的数据服务具有重要意义。本文提出的准在线冷备份方式适合大型前兆数据库全库备份,可以同时兼顾备份速度与停库时间,减小对前兆业务的影响。此外,RMAN等其他备份方式的灵活使用可以提高数据备份效率和自动化程度,值得在地震行业推广应用。
李国佑, 白占孝, 等. 地震台站前兆数据库的备份和恢复方式[J]. 高原地震, 2013, 25(1): 49-52. | |
齐志飞, 陆培, 等. 基于Oracle数据泵的多版本Geodatabase备份迁移[J]. 城市勘测, 2016, 2(1): 117-121. | |
谷长勇, 王彬, 陈杰, 单永红, 等. Oracle 11g权威指南[M]. 北京: 电子工业出版社, 2008. | |
蔡晓洁, 等. 基于RMAN数据备份与恢复[J]. 自动化技术与应用, 2016, 35(6): 99-102. | |
宋亮, 等. 医院信息系统中Oracle Data Guard部署与实践[J]. 2013, 34(5): 62-65. |