洪旭瑜,余 丹,刘坚刚,陈彩虹,张清秀
(1.福建省地震局,福建 福州 350003 2.中国地震台网中心,北京 100045)
自中国地震局启动实施地震前兆观测系统并网以来,我国地震前兆台网先后经历了人工观测、模拟观测、“九五”数字化及 “十五”的网络化等多个阶段。以福建省地震前兆台网为例,已经完成了一部分“九五”仪器通过接入改造为网络化仪器及模拟和人工仪器接入“十五”系统,实现并网运行[1]。“十五”期间,地震前兆网络平台建设将更趋规模化、系统化、科学化以及集成化,数据使用效率将得到极大提高。地震前兆设备网络设施的改造完成使得地震设备具有远程管理和控制功能,简化了地震前兆维护的管理。随着前兆台网规模的不断升级,观测数据量也大幅增长,维护好“十五”观测系统并及时保证其正常运行显得日益的重要。本文主要以为福建前兆台网为例,说明地震前兆台网日常运行过程中数据管理系统和oracle数据库遇到的一些主要问题,并提出解决方案,以此提高前兆台网运行维护效率。
前兆数字台网工程建设是中国地震局“十五”重点项目“中国数字地震前兆网络”的组成部分[2]。前兆观测仪器、通信网络、服务器、台式计算机等硬件和“九五”及“十五”软件构成了前兆台网技术系统。前兆观测仪器主要包括感应器、记录器、数据采集器、通信单元;oracle服务器、SQL SERVER服务器与省级FTP服务器组成前兆服务器。“九五”软件主要是数据采集、数据预处理、数据质量控制、数据备份、数据入库等系统软件;前兆管理系统、数据预处理系统、数据库备份系统、监控日志入库软件等构成“十五”软件 (图1)。
图1 福建地震前兆台网技术系统的主要构成Fig.1 The main components of technical systems of Fujian earthquake precursor network
地震前兆台网系统由国家前兆中心、区域前兆中心、直属观测台站和地方台站组成。地震前兆观测数据的汇集、处理、存储、报送与归档,承担无人值守台站的工作并保证数据质量控制、产品产出与应用服务是前兆台网系统的主要职责。同时也承担着后续前兆观测系统的运行维护与升级改造,如图2为前兆台网数据产出流程。通过前兆台网中心管理平台收取台站原始数据并进行预处理,将原始数据和预处理数据存入到前兆台网专门的数据库里[3]。目前“九五”系统产生的数据主要存储在SQLSERVER数据库,而“十五”系统产生的数据主要是存入到oracle数据库。
图2 前兆台网数据产出流程Fig.2 Output process of the data of precursor network
自“九五”系统改造以来,考虑到我国地震前兆数据存储特点和各方面的需求,根据我国地震行业标准和规范,基于oracle数据库在数据管理方面具有结构化、数据完整性检查、数据库查询性能、实现数据共享、减少数据冗余度及数据安全性方面等功能,而且在表空间管理、数据的备份与恢复及开发工具提供了多种不同方法和手段[4],“十五”系统决定采用甲骨文公司的oracle数据库。目前,我国前兆台网各中心采用的是以suse linux enterprise 10(逐渐更新为suse linux enterprise 11)为应用系统平台,安装oracle 10G (或oracle 11G)为数据存储平台[5],通过十五地震前兆数据管理系统或是基于GIS的地震分析预报系统软件等地震分析预报相关软件,管理和运用前兆数据。
2.2.1 oracle数据库结构
地震前兆oracle数据库结构的设计综合考虑了各省各个台站的地震前兆台站的实际情况,在库结构设计、表空间以及他们之间的相对应的关联都要求精简,使数据库管理人员能够一目了然的统一管理和维护使用。考虑到前兆数据容量和数据的多样性,利用表分区将数据从分区上物理分隔开,不同分区数据保存在不同的数据文件里,缩短对表的查询时间。目前,前兆oracle数据库包括信息表、数据表、日志表和数据字典表等四大类[6]。信息表主要为台站信息表、测项信息表和台站测项信息表等,信息表之间通过主键与外键来实现彼此之间的引用关系,通过测项代码来实现台站测项信息表与测项信息表的关联,而台站测项信息表与台站信息表通过台站编码来取得关联,三者之间的关联如图3所示。数据库表则分别对应地震前兆观测技术进行分钟采样、整点采样、日均值采样三种采样率手段的分钟值表、整点值表、日均值表,三个表的结构都一样,如表1整点值表的结构。日志表包括观测日志表、观测日志和仪器运行日志表[7]。数据字典表主要存放前兆数据库所有模式对象的信息的辅助表,对于每个包含于观测数据有关的前兆数据库表的数据库都建立一套规范的数据字典表,存放在qzdata表空间中。
2.2.2 oracle数据库的体系
关于前兆oracle数据库的体系结构主要是由oracle instance实例即PDBQZ实例、程序全局区(program global areas)、后台进程和文件组成,这里就不详细介绍各个主要体系结构的内容,可以参考相关资料[8]。Oracle数据库详细的体系结构如图4所示,以此对前兆oracle数据的运行有一个总体的框架概念,更好的对oracle数据库进行维护和管理,保证分析预报人员能够及时获取前兆数据[9]。通过十五前兆数据管理系统来做为可视化界面对oracle数据库进行管理和数据入库。
图3 表的E-R关系Fig.3 The E-R relationship of table
表1 整点值表的结构Table 1 The structure of hour-values table
图4 Oracle数据库体系结构Fig.4 The architectur of oracle database
前兆oracle数据库的更新和数据库故障是日常oracle数据库维护的重点,对于数据库的更新主要是通过定期监测前兆表空间的运行状况,例如当表空间容量达到99%以上就需要对表空间进行更新,而oracle数据库的故障主要出现在日常运行中可能出现的问题,这时候就需要针对具体的问题具体的分析。
2.3.1 oracle数据库更新
当oracle数据库运行一段时间,就需要对oracle数据库的表空间进行更新扩展,以保证前兆数据能够及时入库[10]。更新的频率取决于各个区域中心每天前兆观察数据的大小以及QZDATA表空间数据文件的大小。每天采集的观察数据多且数据量大、QZDATA表空间数据文件比较小,更新的频率就需要比较频繁,反之则无需频繁对表空间采取动作。当前主要通过增加QZDATA表空间数据文件来更新oracle数据库。增加表空间数据文件主要有三种方法[11]。首先利用Secure Shell、VNC或SecureCRT等软件工具以oracle用户(用root用户登陆需要输入su-oracle命令切换到oracle用户底下,否则增加的数据文件无效)远程登陆链接到服务器,一般不建议利用本地登陆。然后输入命令进入到PDBQZ实例sys用户下的SQL,如图5所示。在SQL下:①改变表空间数据文件尺寸来直接扩展表空间:ALTER DATABASE DATAFILE'file_name'SIZE file_size;②改变表空间的状态使表空间填满时数据文件可以自动扩展,使用ALTER DATABASE DATAFILE命令激活数据文件自动扩展:ALTERDATABASEDATAFILE'file_name'AUTOEXTENDON [NEXTincrement_by][MAXSIZE maximum_size];③为表空间增加数据文件来扩展表空间:ALTER TABLESPACE tablespace_name ADD DATAFILE'file_name'SIZE file_size。
图5 Sql命令窗口Fig.5 Sql command window
2.3.2 oracle数据库故障
通常情况下,进程故障、用户错误、SQL表达式引起的故障、实例与介质故障是造成oracle数据库正常运行出现故障的主要原因[12]。
Oracle数据库的进程故障主要是针对用户进程而言,当用户进程被意外终止或是DBA终止了服务进程,例如当oracle的监听没有开启或是监听器出现错误(如图6所示)导致用户进程无法访问[13]。
用户在进行误删除表、UPDATA更新、insert插入、DELETE删除等误操作所引发的错误是用户错误,这些情况主要是因为用户在实际操作过程中没有按照规范的步骤进行操作引起的。
SQL表达式引起的故障是oracle数据库故障最常出现的,对oracle造成的影响也比较大,严重可能导致一些重要的数据丢失从而无法恢复。表空间内存不足、超出了空间的配额、执行非法授权操作等原因造成的某些语句处理不正确出现的逻辑错误是常见由SQL表达式引起的故障。
图6 监听异常Fig.6 Lsnrctl errors
实例相关的后台进程、系统内存结构和由于数据文件发生物理损坏导致数据库所需的物理文件无法正常读写成为实例与介质故障。其主要表现在断电,磁盘损坏。断电所引起的实例故障会由SMON进程进行自动处理,而对于磁盘损坏的主要应对方式只能通过RMAN热备和DATA GUARD容灾方案补救。
在前兆台网运行过程中出现的oracle数据库故障,根据运行维护的经验,一般情况只需要重新启动数据库就能够解决问题,使数据库正常运行[14]。重启数据库的步骤详见2.3.1,进入到oracle的SQL命令模式,依次输入图7的命令即可。
图7 命令语句Fig.7 Command statement
“十五”中国地震前兆台网数据管理系统作为面向对象的可视化管理系统,通过该系统对oracle数据库进行操作,实现台网观测数据的入库,保证对数据库的及时更新。其主要由采集模块、交换模块、监控模块和用户界面等五大模块组成。数据管理系统运行的运行维护相对比较简单。数据管理系统运行异常主要表现[15]:①在服务器断电或死机重新启动导致无法进入数据管理系统的界面。②oracle数据库没有开启或oracle数据库进程死机导致登陆数据管理系统 “数据库操作失败,请返回”。③数据交换模块长时间没有响应导致无法进行数据交换而出现的“数据交换中,此操作无效”。对①③的情况只需要重新启动数据管理系统:在suse linux操作系统桌面打开终端,输入cd/install进入install目录,键入./stoprun.sh命令停止中国地震前兆台网数据管理系统运行,停止成功以后重新键入./run.sh命令开启系统应用程序。②的情况只需要把oracle数据重新启动即可,启动命令参考图7所示。
随着全国前兆台网“九五”及模拟观测系统并入“十五”观测系统工作的完成,地震前兆观测数据量也日益增多,数据库技术也在不断的发展,管理和维护好前兆台网正常运行对我们来说是一项很重要的工作。今后如何不断的提高前兆台网运行效率,合理的配置和管理好数据库,需要我们前兆台网管理运行维护人员打好基础,熟练掌握前兆台网运行的各项技术。
保证前兆数据的及时交换和上传是前兆台网运行的必须要求,前兆观测数据量日益增加,维护和管理工作也相应提高,每天的任务比较繁重,建议对“十五”管理系统和oracle数据库对没有在规定的时间内交换上来的台站数据进行预警提示;同时区域中心和各学科中心的数据库应当有对本书以下面各直属台站的表空间大小和容量临界值进行提示的功能,但不影响数据的入库转换和数据同步交换。
参考资料:
[1]周克昌,赵刚,王晨,等.全国地震前兆台网观测系统整合[J].国际地震动态,2012,6:209.
[2]丁学仁,史寿华,曾建民,等.福建地震前兆台网集成设计与应用[J].华南地震,2008,28(3):97-99.
[3]马文娟,何案华,曹开,等.“九五”前兆仪器与 “十五”前兆管理系统的整合[J].地震研究,2010,33(4): 361-363.
[4]哈斯高娃,兰陵,陈向东.前兆数据库备份软件开发与应用[J].内陆地震,2010,24(4):365-368.
[5]周浩,程冬众,程宇.“十五”黑龙江省数字化区域前兆台网建设与系统集成[J].地震地磁观测与研究,2008, 29 (3): 54-56.
[6]王秀英,牛从达.台网中心地震前兆数据库的结构及其管理维护[J].华北地震科学,2004,22(3):28-30.
[7]周克昌,蒋春花,纪寿文,等.地震前兆数据库系统设计[J].地震,2010,30(2):144-148.
[8]Jason Price.Oracle database 10g SQL master SQL and PL/SQL[M].北京:清华大学出版社,2005.
[9]Sam R.Alapati,钟鸣.Oracle 10g数据库管理艺术[M].北京:人民邮电出版社,2007.
[10]王建国,姚会琴,高逊,等.天 津市地震前兆台网的运行监控与维护管理[J].大地测量与地球动力学,2010, 30 (1): 114-146.
[11]周渝霞.Oracle数据库中有关表空间设计管理方法[J].微计算机应用,2003,25(3):220-222.
[12]江楠.浅析ORACLE数据库安全策略和方法[J].中国电子商务, 2012,19(2):51-51.
[13]Sam R.Alapati.Expert Oracle Database 10g Administration[M].北京:人民邮电出版社,2007.
[14]孙鸿雁,辛月提,单德华,等.辽宁省地震前兆台网的运行、管理模式及常见问题处置方法[J].东北地震研究, 2009, 25 (4): 49-51.
[15]袁燕妮,卢婷,张晓明,等.四川省地震局 “十五”地震前兆数据库维护[J].四川地震,2011,3:23-26.