Geoframe地震工區(qū)管理中的數(shù)據(jù)備份方式有多種,本文通過對工區(qū)備份、腳本備份、在線備份、定時備份等技術的分析研究,探索并實現(xiàn)了Geoframe地震工區(qū)自動在線備份,以保證數(shù)據(jù)安全,提高數(shù)據(jù)備份效率。
【關鍵詞】備份策略 備份腳本 crontab文件
GeoFrame是地震資料解釋常用軟件之一,生產(chǎn)運行中會產(chǎn)生大量數(shù)據(jù)成果,為了保障數(shù)據(jù)的安全與有效,地震工區(qū)需要定期進行數(shù)據(jù)備份。目前,GeoFrame工區(qū)備份方式主要分為兩種,第一種是應用軟件自帶的備份功能,通過啟動軟件進入操作界面后根據(jù)提示完成備份,第二種是應用后臺的數(shù)據(jù)庫備份,利用腳本文件在所有用戶退出后自動完成的數(shù)據(jù)庫冷備份。本文將結合這兩種備份方式的優(yōu)勢,重點介紹地震工區(qū)在非人工干預、不影響用戶使用、自動完成的在線備份策略的研究與實現(xiàn)。
1 工區(qū)常用備份方式
1.1 應用軟件備份
GeoFrame應用軟件中的工區(qū)備份方式有兩種:Archive Backup(工區(qū)歸檔備份)和Fast Backup(工區(qū)快速備份)。前者,又稱完整備份,包括所有地震數(shù)據(jù)、解釋數(shù)據(jù)等全部工區(qū)數(shù)據(jù)。后者,是按工區(qū)的oracle數(shù)據(jù)+DSL(數(shù)據(jù)存儲區(qū))的數(shù)據(jù)進行壓縮打包。
二者都可以通過GeoFrame應用軟件中的Project Management面版實現(xiàn)。其中,F(xiàn)ast Backup(工區(qū)快速備份)還可以通過腳本對工區(qū)中的指定文件進行自動備份。
1.2 數(shù)據(jù)庫備份
GeoFrame Oracle數(shù)據(jù)庫備份是定期執(zhí)行的自動備份,獨立于用戶終端而在后臺連續(xù)運作,通過預定義的時刻執(zhí)行相關的任務。備份包含了所有工區(qū)中一切錄入數(shù)據(jù)庫中的全部數(shù)據(jù)。
但是,數(shù)據(jù)庫備份需要在關閉數(shù)據(jù)庫的狀態(tài)下進行備份,即停止工區(qū)使用。而且,對于備份Oracle數(shù)據(jù)庫而言,只能提供到“某一時間點”的所有工區(qū)的恢復。
2 工區(qū)自動在線備份策略
基于以上幾種備份方式的比較分析,可以實現(xiàn)通過使用腳本和corn程序,在無需人工 干涉的情況下進行定期自動在線備份,同時,不影響用戶正常作業(yè)。
2.1 編寫備份腳本
通過pdm_fastsave命令實現(xiàn)對服務器上所有GeoFrame地震工區(qū)的在線快速備份,編寫工區(qū)在線備份腳本gf_fastbackup*.csh文件。
2.1.1 設置系統(tǒng)參數(shù)和環(huán)境變量
#!/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(系統(tǒng)文件)和Interpretation(解釋成果)兩個文件夾即可,恢復時只需把數(shù)據(jù)按“原位”放回。
2.1.3 通過循環(huán)語句對每一個工區(qū)進行備份
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時鐘守護程序實現(xiàn)定期自動備份。
crontab文件中包含了用戶希望在特定時刻運行的某一個命令。crontab文件的格式為:分 小時 日 月 星期 命令,即minute hour day month dayofweek command,其中
minute - 從0到59的整數(shù)
hour - 從0到23的整數(shù)
day - 從1到31的整數(shù) (必須是指定月份的有效日期)
month - 從1到12的整數(shù) (或如Jan或Feb簡寫的月份)
dayofweek - 從0到7的整數(shù),0或7用來描述周日 (或用Sun或Mon簡寫來表示)
command - 需要執(zhí)行的命令(執(zhí)行自定義腳本的命令)
舉例說明:計劃在每星期五的晚上23點59分執(zhí)行備份腳本的命令語句為59 23 **5 ~/gf_fastbackup*.csh。
2.3 備份周期
因考慮實際工作中的生產(chǎn)工區(qū)的使用率約2-3天/人周,并且完成一次全部工區(qū)的快速備份時長約1天,同時每天都進行著數(shù)據(jù)庫備份。
為了有效提高工區(qū)自動在線備份的效率,備份周期可定義為1次/周,僅備份Default和Interpretation兩個文件夾,每個季度進行一次工區(qū)完整快速備份,備份所有的文件夾。
保留日期最近的三次備份。
2.4 備份文件校驗
備份完成后將生成備份文件(.gfb)和日志文件(.log)。為了保障工區(qū)自動在線備份的質量,要對備份日志進行校驗檢查,如有錯誤及時修正,確保備份能夠有效恢復。
批量進行日志文件(.log)校驗操作如下:
(1)查詢并統(tǒng)計包含有“completed successfully”字段的文件的數(shù)量
grep "completed successfully" |wc –l
(2)查詢目錄下所有文件數(shù)量
ls -l|grep "^-"| wc -l
(3)統(tǒng)計的數(shù)量與文件數(shù)量相等,即說明所有日志文件中都包含completed successfully的字段,備份無誤。
3 結束語
本文提出的Geoframe地震工區(qū)定時自動在線備份策略的研究與實現(xiàn),在地震數(shù)據(jù)管理工作方面具有較深的理論價值與實際意義,進一步提高了備份效率,更有效地保證數(shù)據(jù)安全,同時,為保障地震數(shù)據(jù)歸檔工作高效、有序地進行提出了新的理論依據(jù)和實驗結論。在未來的地震數(shù)據(jù)管理工作中,將會繼續(xù)致力于探索研究這一方向領域,并不斷進行優(yōu)化和完善。
參考文獻
[1]戴猛.GeoFrame解釋系統(tǒng)工區(qū)備份技術研究[J].油氣地球物理,2011,9(03):19-23
[2]Schlumberger Information Solutions. GeoFrame 2012 Project Manager Users Guide[Z].
[3]黃照鶴等.Linux指令范例速查手冊[M].北京:清華大學出版社,2011.
作者簡介
丁寧(1986-),女。學士學位。工程師。主要研究方向為地震解釋系統(tǒng)管理與應用。
李為沖(1983-),男。碩士學位。高級工程師。主要研究方向為信息與系統(tǒng)應用。
侯明雨(1987-),男。學士學位。工程師。主要研究方向為信息與系統(tǒng)應用。
高寧(1965-)。大學本科學歷。高級工程師。主要研究方向為地震解釋系統(tǒng)管理與應用。
作者單位
中海油研究總院 北京市 100028