Geoframe地震工区自动在线备份策略与实现

2018-03-22 01:31丁宁
电子技术与软件工程 2018年1期

Geoframe地震工区管理中的数据备份方式有多种,本文通过对工区备份、脚本备份、在线备份、定时备份等技术的分析研究,探索并实现了Geoframe地震工区自动在线备份,以保证数据安全,提高数据备份效率。

【关键词】备份策略 备份脚本 crontab文件

GeoFrame是地震资料解释常用软件之一,生产运行中会产生大量数据成果,为了保障数据的安全与有效,地震工区需要定期进行数据备份。目前,GeoFrame工區备份方式主要分为两种,第一种是应用软件自带的备份功能,通过启动软件进入操作界面后根据提示完成备份,第二种是应用后台的数据库备份,利用脚本文件在所有用户退出后自动完成的数据库冷备份。本文将结合这两种备份方式的优势,重点介绍地震工区在非人工干预、不影响用户使用、自动完成的在线备份策略的研究与实现。

1 工区常用备份方式

1.1 应用软件备份

GeoFrame应用软件中的工区备份方式有两种:Archive Backup(工区归档备份)和Fast Backup(工区快速备份)。前者,又称完整备份,包括所有地震数据、解释数据等全部工区数据。后者,是按工区的oracle数据+DSL(数据存储区)的数据进行压缩打包。

二者都可以通过GeoFrame应用软件中的Project Management面版实现。其中,Fast Backup(工区快速备份)还可以通过脚本对工区中的指定文件进行自动备份。

1.2 数据库备份

GeoFrame Oracle数据库备份是定期执行的自动备份,独立于用户终端而在后台连续运作,通过预定义的时刻执行相关的任务。备份包含了所有工区中一切录入数据库中的全部数据。

但是,数据库备份需要在关闭数据库的状态下进行备份,即停止工区使用。而且,对于备份Oracle数据库而言,只能提供到“某一时间点”的所有工区的恢复。

2 工区自动在线备份策略

基于以上几种备份方式的比较分析,可以实现通过使用脚本和corn程序,在无需人工 干涉的情况下进行定期自动在线备份,同时,不影响用户正常作业。

2.1 编写备份脚本

通过pdm_fastsave命令实现对服务器上所有GeoFrame地震工区的在线快速备份,编写工区在线备份脚本gf_fastbackup*.csh文件。

2.1.1 设置系统参数和环境变量

#!/bin/csh -f

setenv GF_PATH /software/geo_soft/GeoFrame/gf45/geoframe_45_lnx

setenv GFPUBLIC_USERID gf_public/gf_public

source /software/geo_soft/GeoFrame/gf45/geoframe_45_lnx/bin/gfpath_define.csh > /dev/null

gpath -mod ~/geoframe45_lnx /software/geo_soft/GeoFrame/gf45/geoframe_45_lnx > /dev/null

2.1.2 调用pdm_fastsave命令语句

pdm_fastsave -project $project_name -dba -file $project_name$today.gfb -logfile $project_name$today.log -dsl Default -dsl Interpretation

仅备份Default(系统文件)和Interpretation(解释成果)两个文件夹即可,恢复时只需把数据按“原位”放回。

2.1.3 通过循环语句对每一个工区进行备份

setenv today `date +%Y%m%d`

mkdir $today

cd $today

foreach project_name (`gf_accounts | grep GF45 | grep -v '^GF45' | cut -f 1 -d ""`)

if ($project_name == "") then

break

endif

2.1.4 压缩备份文件

bzip2 *gfb

2.1.5 保留日期最近的三份备份

rm -r `ls -rt | head -n 1`

2.2 配置crontab文件

通过cron时钟守护程序实现定期自动备份。

crontab文件中包含了用户希望在特定时刻运行的某一个命令。crontab文件的格式为:分 小时 日 月 星期 命令,即minute hour day month dayofweek command,其中

minute - 从0到59的整数

hour - 从0到23的整数

day - 从1到31的整数 (必须是指定月份的有效日期)

month - 从1到12的整数 (或如Jan或Feb简写的月份)

dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)

command - 需要执行的命令(执行自定义脚本的命令)

举例说明:计划在每星期五的晚上23点59分执行备份脚本的命令语句为59 23 **5 ~/gf_fastbackup*.csh。

2.3 备份周期

因考虑实际工作中的生产工区的使用率约2-3天/人周,并且完成一次全部工区的快速备份时长约1天,同时每天都进行着数据库备份。

为了有效提高工区自动在线备份的效率,备份周期可定义为1次/周,仅备份Default和Interpretation两个文件夹,每个季度进行一次工区完整快速备份,备份所有的文件夹。

保留日期最近的三次备份。

2.4 备份文件校验

备份完成后将生成备份文件(.gfb)和日志文件(.log)。为了保障工区自动在线备份的质量,要对备份日志进行校验检查,如有错误及时修正,确保备份能够有效恢复。

批量进行日志文件(.log)校验操作如下:

(1)查询并统计包含有“completed successfully”字段的文件的数量

grep "completed successfully" |wc –l

(2)查询目录下所有文件数量

ls -l|grep "^-"| wc -l

(3)统计的数量与文件数量相等,即说明所有日志文件中都包含completed successfully的字段,备份无误。

3 结束语

本文提出的Geoframe地震工区定时自动在线备份策略的研究与实现,在地震数据管理工作方面具有较深的理论价值与实际意义,进一步提高了备份效率,更有效地保证数据安全,同时,为保障地震数据归档工作高效、有序地进行提出了新的理论依据和实验结论。在未来的地震数据管理工作中,将会继续致力于探索研究这一方向领域,并不断进行优化和完善。

参考文献

[1]戴猛.GeoFrame解释系统工区备份技术研究[J].油气地球物理,2011,9(03):19-23

[2]Schlumberger Information Solutions. GeoFrame 2012 Project Manager Users Guide[Z].

[3]黃照鹤等.Linux指令范例速查手册[M].北京:清华大学出版社,2011.

作者简介

丁宁(1986-),女。学士学位。工程师。主要研究方向为地震解释系统管理与应用。

李为冲(1983-),男。硕士学位。高级工程师。主要研究方向为信息与系统应用。

侯明雨(1987-),男。学士学位。工程师。主要研究方向为信息与系统应用。

高宁(1965-)。大学本科学历。高级工程师。主要研究方向为地震解释系统管理与应用。

作者单位

中海油研究总院 北京市 100028