APP下载

佘山台前兆数据库智能维护系统开发

2021-06-29倪友忠王琦珑钟卫星教聪聪朱国豪

山西地震 2021年2期
关键词:前兆台站备份

倪友忠,王琦珑,钟卫星,叶 青,教聪聪,朱国豪,方 韬

(1.上海市地震局佘山基准地震台,上海 200062;2.湖南省地震局,湖南 长沙 410004)

0 引言

佘山基准地震台(以下简称佘山台)作为全国形变6个标准化台站之一,自2000年以来,安装了重力、倾斜、应变等多套形变观测仪器,观测项目比较完备。随后陆续安装了高采样率的重力仪、宽频带倾斜仪、YRY-4超宽频带应变仪等高精度、高采样的仪器入网,地震前兆观测数据量剧增。台站工作人员除每天保证Oracle 数据库服务器的安全稳定运行外,还要对日常观测原始数据等重要观测资料进行定期备份,工作量较大。

对于大型数据库,如,“十五”前兆Oracle数据库,常用的备份方式有“十五”地震前兆管理系统备份、冷备份和导入导出备份、准在线冷备份、RMAN方式、Data Guard方式、Golden Gate方式。王军等的地震前兆 Oracle 数据库备份策略与应用及陈传华等在前兆管理系统数据库冷备份及恢复方法实现等研究中,进行了阐述[1-2]。上述方式操作均相对复杂,对维护人员的专业知识要求高,需经过专业培训,对台站普通工作人员不适合。

从经济效益和使用方便、操作相对简单的角度出发,可采用Oracle自带工具、自行开发软件或者免费软件对数据库进行备份。叶应树等开发的基于asp的宏观前兆信息在线管理系统[3]就是目前台站比较通用的一种Oracle数据库服务器备份方式。台站Oracle数据库的日常数据量相对较小,需要每天及时备份的数据信息不多。所以,通过自行开发软件,对Oracle数据库进行及时的备份是较适用于台站数据备份的一种方式。

1 程序设计目的

佘山台目前有2台服务器,均搭建SUC及Oracle11平台,并通过冷备份的方式,将台站信息、大部分历史观测资料及基础信息等,迁移至备份服务器中。备份服务器每天同步更新主服务器的日常观测信息,保证2台服务器的一致性。

参考洪旭瑜等福建前兆数据交换与同步问题的探讨一文[4],认识到通过自行开发软件,对主服务器Oracle数据库中的数据,及时同步更新,也是目前台站比较适用的一种备份方式。因此,笔者开发设计佘山台前兆数据库智能维护系统,通过该软件平台,每天定时将运行在地震前兆管理系统主服务器库的所有前兆数据、观测日志等信息,通过定时器功能,及时地将台站所有的前兆仪器数据、工作日志、仪器日志等备份到台站备份服务器Oracle数据库中。在主服务器发生故障而无法修复时,可切换到备份服务器,实现并行观测。该设计的程序流程图如第28页图1所示。

图1 程序流程简图Fig.1 Program flow chart

2 平台的研究内容

平台设计主要涉及以下研究内容,一是台站信息的汇集。为增强平台的可移植性,方便平台在全国其他台站进一步推广应用,软件平台必须具备信息智能检索及汇集的功能,通过配置智能信息表,实现快速配置台站所有观测仪器的信息、台站代码、仪器代码、值班日志信息等;二是信息参数配置,方便台站及时增加和修改仪器配置信息、台站测项信息等;三是智能备份功能的开发,可以设置备份要素,方便台站备份所需信息,具备设置实时备份条件和触发因子功能;四是备份服务器信息检查及查缺。建立查询语句模块,具备自动查询源数据库和备份数据库中的数据差异,实现自动补缺,保证2台服务器(主服务器及备份服务器)之间数据的同步性;五是当部分台站由于某些原因不具备购买备份服务器时,该平台另外开发本地备份(台站电脑)与主服务器之间的数据同步功能,将主服务器数据库中的数据与本地文件进行对比,查询源数据库和本地备份的数据差异,及时补缺,实现本地电脑与主服务器之间的数据同步。

3 模块划分

根据上述研究内容,将软件基本功能划分为信息汇集单元、参数设置单元、数据备份单元、数据检查单元四大模块。设计的系统总体功能结构图如图2所示。

图2 系统总体功能结构图Fig.2 Overall functional structure diagram of the system

信息汇集单元包括台站信息检测、测项信息检测;参数设置单元包括网络参数信息、台站测项信息、台站其他信息;数据备份单元包括定时功能设置、备份信息表设置;数据检查单元包括观测信息查缺、其他信息查缺。

4 平台的技术途径

4.1 技术途径

系统基于Vbasic.net架构,前端采用Oracle 11g数据库系统,主要功能模块采用Visual basic.net编写。利用ADO.NET数据库访问框架,对数据源一致访问。应用程序使用ADO.NET连接到Oracle 11g数据源,检索、处理、更新其中包含的数据。ADO.NET提供数据库应用程序前台和后台之间的通信通道,在数据库应用程序中起到关键的作用(见图3)。

图3 ADO.NET结构原理图Fig.3 ADO.NET structural diagram

4.2 研究方法

ADO.NET是.NET框架中的一系列类库,运用这些类库可以在数据库应用程序中使用和操作数据。ADO.NET通过两个核心组件.NET Framework数据提供程序和DataSet(数据集)将数据访问和数据处理分离。NET Framework数据提供程序(Data Provider)是专门为数据操作及快速、只进、只读访问数据而设计的组件,有OleDb、ODBC、SqlClient和Oracle四种数据提供程序,包含Connection、Command、DataReader、DataAdapter四个对象。

应用程序与数据库通信,首先检索存储在那里的数据,并以用户友好的方式呈现;其次,通过插入、修改和删除数据来更新数据库。Microsoft ActiveX Data Objects.Net(ADO.Net)是一个模型,.Net框架的一部分,由.Net应用程序用于检索访问和更新数据。.Net框架提供两种类型的Connection类:SqlConnection -设计用于连接到Microsoft SQL Server;OleDbConnection -设计用于连接到各种数据库,如Microsoft Access和Oracle。

Oracle数据库链接数据程序如下:

Imports System.Data.OracleClient / / 引用System.Data.OracleClient.dll动态链

Public conn As New ADODB.Connection / / 定义ADODB的链接对象

{

conn = New ADODB.Connection

With conn

.Provider = "OraOLEDB.Oracle.1"

.ConnectionString = "Data Source=" + cmb_db1.Text.Trim + ";Persist Security Info=False;Password=" + PasswordTextBox1.Text.Trim + ";User ID=" + Cmb_username1.Text.Trim

.Open()

End With

}

5 软件功能及应用

5.1 信息汇集单元功能

为增强平台的可移植性,软件必须具备智能检索及汇集的功能。通过智能检索,快速配置台站独有的

仪器信息、台站信息、测项信息等。前兆数据库包含的信息主要有前兆数据(模拟、数字化原始、数字化预处理前兆数据,流动观测数据、产品数据等)、观测日志信息、台站基础信息、台站测项信息、观测场地基本信息、前兆观测仪器信息、数据分类信息等。表1是Oracle数据库仪器信息表的表结构形式。

表1 仪器信息表Table 1 Instrument information sheet

首次使用该平台时,先进入信息汇集单元功能模块界面(见图4)。该模块单元主要功能是通过检索台站测点信息表、台站仪器运行信息表、台站测项分量信息表,读取台站运维中的所有观测点仪器信息、台站信息,供软件平台使用者根据台站实际运行情况自行选择仪器测项,并形成相关配置文件。形成的配置文件包括台站仪器运行信息文件sample.txt、台站测项信息文件instrument.txt等,分别保存在软件平台的安装目录inf文件夹下,方便以后台站操作人员进行修改。

图4 信息汇集单元功能界面Fig.4 Function interface of information collection unit

5.2 数据备份单元功能

智能维护系统最重要的一部分功能是数据同步迁移(备份),主要包含备份Oracle数据库服务器的数据同步迁移(备份)及本地数据同步迁移(备份)。数据同步迁移(备份)内容有观测日志信息、台站基础信息、台站测项信息、观测场地信息,观测仪器信息、前兆数据(包含内容如前文所述),界面如第30页图5所示。

图5 Oracle 数据库数据备份功能界面Fig.5 Oracle database data backup function interface

在该功能设计中的自动定时备份功能模块,采用Timer定时器工具,是一种线程用于调度任务的工具,被调度的任务将来可在一个后台线程中执行。这些任务可以被调度为只执行一次,或者以一定的时间间隔重复执行。TimerTask是一个抽象类,它的子类代表一个可以被Timer计划的任务,具体的任务在TimerTask中的run接口实现。同时为防止系统在运行自动备份功能的过程中,工作人员在操作其他事宜而导致系统崩溃,使得备份任务未被及时执行。所以,在设计该功能时,采用VB.net的多线程技术。一个采用多线程技术的应用程序可以更好地利用系统资源,其主要优势在于充分利用CPU的空闲时间片,用尽可能少的时间对用户的要求做出响应,使得进程的整体运行效率得到较大提高,同时增强应用程序的灵活性。更重要的是,由于同一进程的所有线程共享同一内存,所以不需要特殊的数据传送机制,不需要建立共享存储区或共享文件,使得不同任务之间的协调操作与运行、数据的交互、资源的分配等问题更易于解决。多线程运行程序如下:

Imports System.Threading / / 引用多线程功能

{

Dim tmpThead As System.Threading.Thread

tmpThead = New System.Threading.Thread(AddressOf MyTimeClass.copydatabase)

tmpThead.Start()

}

另外,该数据备份单元还设计有本地备份及还原功能,为不具备备份服务器的台站设计的数据库本地同步机制,主要功能有定时备份、还原。利用Timer定时器,设置一个单后台线程,自动往本地电脑定时下载台站每天更新的观测日志信息、前兆数据(包含内容同前所述)等完整信息。如遇到主服务器内容因其他原因而导致缺失,则可以自动同步到服务器数据库中,保障Oracle服务器数据库观测信息的完整。

5.3 数据库一致性检查功能

智能维护系统的另一个重要功能是主服务器及备份服务器数据库一致性的检查,界面如第31页图6所示。通过对比检查两种服务器中存在的所有数据记录,确认备份服务器是否对主服务器中存在的所有数据记录都进行了数据迁移。检查的内容主要包括前兆数据(包含内容同前所述)、观测日志信息、台站基础信息、台站测项信息、观测场地基本信息、前兆观测仪器信息等。备份的要点是,如果发现备份数据库中缺失,则自动启动备份功能,及时将备份服务器数据库中缺失信息自动补齐。同时为保证两种服务器数据库的一致,如果出现备份服务器数据库已有记录,但信息不完全,则先进行删除再添加,从根本上保证两种服务器信息的一致性、完整性。

图6 数据库一致性检查功能界面Fig.6 Database consistency check function interface

软件设计的功能包含二种,比对日常观测信息和基础信息。设置二个功能模块的目的是,由于冷迁移过程中,有可能主服务器的部分信息未及时迁移到备份服务器中。为保证二者数据的一致性,有必要增加基础信息和日常观测信息的分别比对功能。

数据库一致性检查也采用多线程技术,防止程序在检查的过程中,数据量过大而造成死机。同时为防止软件平台频繁重复地对两种服务器信息一致性的检查,将检查过的信息记录在案,当程序再次开启数据库一致性检查功能时,会跳过已检查的主库记录。

6 结语

从数据库完全性和一致性上考虑,Oracle数据库冷备份模式是较好的一种备份方式,但对操作人员的要求相对较高,要求具备SUC及Oracle的基本操作技能。台站工作人员,由于各种原因,技能参差不齐,对该系统掌握运用的程度也不同。为保障台站观测数据的完整性,笔者结合台站的实际情况,在界面设计上力求简洁,并实现简单的操作。目前,通过地震台站的

测试和使用,表明佘山台前兆数据库智能维护系统已达到预期效果。今后将对程序中存在的一些设计缺陷,进一步完善,改进系统功能,实现在更多台站推广应用。

猜你喜欢

前兆台站备份
中国科学院野外台站档案工作回顾
VSAT卫星通信备份技术研究
地震台站基础信息完善及应用分析
一种适用于高铁沿线的多台站快速地震预警方法
论春秋时期天命观的变迁及其新标准
铁路无线电干扰监测和台站数据管理系统应用研究
创建vSphere 备份任务
旧瓶装新酒天宫二号从备份变实验室
基于3G的VPDN技术在高速公路备份链路中的应用
腾冲地电场震前的前兆异常分析