2. 中国山西 030025 太原大陆裂谷动力学国家野外科学观测研究站;
3. 中国北京 100045 中国地震台网中心
2. National Continental Rift Valley Dynamics Observatory of Taiyuan, Shanxi Province 030025, China;
3. China Earthquake Networks Center, Beijing 100045, China
山西地球物理台网承担山西省流体、电磁、形变等观测数据的汇集、处理、存储、报送及归档。现有技术系统基于Suse Linux操作系统和oracle数据库,分别部署在省级中心和各个地震专业台站。
oracle数据库备份一般有2种方式:物理备份和逻辑备份(蔡晓洁,2016)。山西地球物理台网省级中心和部分专业台站数据库采用物理冷备份和逻辑备份方式进行定时备份(穆慧敏,2016)。由于物理冷备份和逻辑备份只能恢复到备份点,不能恢复到故障点,一旦数据库出现问题,数据丢失在所难免;逻辑备份采用SQL语句进行读写操作,时常会出现未知错误,导致数据备份不完整。
为了解决物理冷备份和逻辑备份存在的问题,可采用oracle rman技术(潘传迪;2014;徐曼,2016)进行物理备份。其主要优点是:避免逻辑备份可能出现的错误;能够恢复到故障点,或者离故障点最近的时间点,避免数据丢失。
文中介绍地震监测数据容灾备份程序,通过搭建NFS服务器,基于oracle rman技术设计oracle数据库备份程序,并应用到山西地球物理台网,使得山西地球物理台网省级中心和各个专业台站地震监测数据容灾备份技术水平得到提高。
1 程序设计oracle数据库备份程序借助NFS服务器、shell脚本程序和crontab命令,实现oracle数据库定时备份和恢复。主要包含3部分:①NFS服务端配置。采用Suse linux enterprise server 11 SP3操作系统,安装nfs-kernel-server组件,创建共享文件夹,设置权限、配置参数等;②oracle数据库服务器配置,挂载NFS服务器,创建归档目录;③编写shell脚本程序,实现oracle数据库定时备份及管理。
2 程序实现 2.1 NFS服务器搭建以root用户登录NFS服务器,在opt文件夹下创建share文件夹,用于存放oracle数据库备份文件。修改share目录权限为777,基于Suse安装光盘或ISO镜像安装nfs-kernel-server。需注意,在配置NFS服务器时,设置共享目录、要备份的oracle数据库服务器IP地址及相应权限(一般为rw、sync)。如需修改相关参数,在etc/exports文件下操作即可。文件参数修改见图 1。
以root用户登录oracle数据库服务器,在/opt/oracle/文件夹下,创建rman文件夹,运行以下命令
mount - t nfs - o rw, bg, hard, nointr, rsize=32768, wsize=32768, timeo=600, actimeo=0 NFS服务器IP地址:/opt/share /opt/oracle/rman
挂载后用df - h查看,见图 2。
以oracle用户登录oracle数据库服务器,在/opt/oracle/rman/文件夹下创建TEST_DB_BAK文件夹,在/opt/oracle/oradata文件夹下创建arch文件夹,在/opt/oracle/文件夹下创建backuporacle文件夹。
2.2.3 编写shell脚本程序,包含init.sh和oraclebackup.sh其中:init.sh用于打开归档、配置rman和定时任务,并配置oraclebackup.sh中的环境变量参数(ORACLE_BASE、ORACLE_HOME、ORACLE_SID);oraclebackup.sh用于实现0级、1级、2级备份,具有检查备份、删除过期备份及恢复备份的功能。数据库数据文件0级备份rman命令脚本(1级备份和2级备份的rman命令与0级备份类似)如下
run
{
allocate channel c1 type disk;
backup incremental level=0 database format 'oldpath_database/database_backup/paidb_level0_%U' tag='level0';
sql 'alter system switch logfile';
backup archivelog all format 'oldpath_archive/archivelog/paidb_arch_%U' delete input;
release channel c1;
}
在oracle用户下,将2个脚本放在backuporacle目录下,增加可执行权限,并执行以下命令
export ORACLE_SID=PDBQZ
./init.sh /opt/oracle/rman/TEST_DB_BAK /opt/oracle/oradata/arch
使用crontab –l查看定时任务,见图 3。
采取定时备份策略,步骤如下:周日1:00进行0级备份(即完整备份);周一至周三和周五至周六1:00进行2级增量备份;周四1:00进行1级增量备份;周六18:00检查oracle备份文件;周日18:00删除过期备份文件。若oracle数据库出现故障,在oracle用户下,运行./oraclebackup.sh –r即可快速恢复。恢复数据库rman命令脚本如下
run
{
shutdown abort;
startup mount;
restore database;
recover database;
alter database open;
}
3 应用效果oracle数据库备份程序紧密结合山西地球物理台网实际需求,实现地震监测数据备份自动化,提高数据可靠性,在oracle数据库出现故障时,能及时恢复,并在最大程度上减少数据丢失现象。该程序在山西地球物理台网试用以来效果较好。图 4给出备份的数据库文件。
oracle数据库备份程序基于oracle rman技术进行物理备份,备份的数据采用rman命令进行恢复。如果oracle数据库服务器出现硬盘故障,将无法使用rman命令进行恢复。因此,oracle数据库备份程序还需要与物理冷备份及逻辑备份进行有效结合,才能有效提高oracle数据库服务器的安全性。
蔡晓洁. 基于RMAN数据库备份与恢复[J]. 自动化技术与应用, 2016, 35(6): 99-102. | |
穆慧敏, 胡玉良, 程冬焱, 等. 山西地震前兆技术系统管理方案的设计及实现[J]. 山西地震, 2016(2): 18-21. DOI:10.3969/j.issn.1000-6265.2016.02.005 | |
潘传迪. 基于DataGuard和RMAN的Oracle数据库容灾方案[J]. 医院管理论坛, 2014, 31(1): 51-54. | |
徐曼. Oracle数据库的备份与恢复[J]. 铁路计算机应用, 2016, 25(3): 46-49. DOI:10.3969/j.issn.1005-8451.2016.03.013 |