Oracle数据库迁移方法研究及在河北地球物理台网的应用

2022-09-23 09:37王加敏马广庆李永庆
山西地震 2022年3期
关键词:台网台站备份

王加敏,马广庆,赵 鹏,李永庆

(1.河北省地震局,河北 石家庄 225000;2.河北红山巨厚沉积与地震灾害国家野外科学观测研究站,河北 邢台 055350)

0 引言

随着观测技术的提升,地震观测数据及产品数据日益丰富。河北地球物理台网是全省地球物理观测及产品数据的汇集和存储中心,先后建成地球物理Sql Server“九五”数据库、Oracle“十五”数字化数据库。“十五”数字化后,全国地球物理台网部署中国地震地球物理台网数据管理系统(以下简称管理系统),该系统是基于Oracle数据库开发的数据管理技术平台,可实现不同节点数据库数据的层层交换[1],可将全国地球物理观测数据汇集于国家中心[2-3]。

河北地球物理台网作为区域中心,承担河北省数据汇集、管理和上报等职能,省内共架设1个区域中心、8个台站节点地球物理Oracle数据库。其中,区域中心Oracle数据库置于河北省地震局核心机房,由专人维护;台站节点Oracle数据库部署于辖区内的8个中心站,部分台站的服务器已运行数十年。台站节点数据库是管理系统数据汇集的源头,台站人员通过各种地球物理专业软件进行数据的采集、预处理和产品产出[4]。因此,台站节点数据库如出现故障,会影响数据的汇集和处理。为保障Oracle数据库数据的安全,在管理系统热备份的基础上,区域中心每月对地球物理Oracle数据库进行一次冷备份。由于台站软硬件条件及技术力量参差不齐,台站节点的地球物理Oracle数据库未进行冷备份,同时因设备老化出现系统故障,造成数据丢失,对台站的数据产出造成影响。因此,台站节点Oracle数据库的稳定运行至关重要。

地球物理服务器大部分已运行数十年,配置低,易出现故障,因此,系统维护人员需熟练掌握Oracle数据库的备份及还原操作[5]。该文综合分析几种Oracle数据迁移方法,结合实例介绍台站节点数据库的备份和恢复过程,以期为地球物理Oracle数据库的运维工作提供参考。

1 数据迁移技术介绍

数据迁移是数据库备份与恢复的过程,Oracle的备份可分为物理备份和逻辑备份两种方式。其中,物理备份主要是对控制文件、数据文件、日志文件及参数文件等物理文件进行备份。根据数据库工作模式(归档模式和非归档模式),物理备份分为热备份(又称联机备份,归档模式)和冷备份(又称脱机备份,非归档模式);逻辑备份主要是指应用可执行文件EXPDP或EXP将数据库数据导出,以文件格式保存。

基于Oracle的地球物理节点数据库备份主要有冷备份、在线热备份和逻辑备份3种方式。其中,冷备份是地球物理台网区域中心常用的数据迁移方式,即对地球物理Oracle数据库oradata目录下的文件进行压缩拷贝。此操作相对简单,需关闭数据库,但不能按照所需要的对象进行数据迁移;逻辑备份是按照表空间、段等进行导出,能针对对象进行备份,不需关闭数据库,操作相对灵活[6];在线热备份是指在地球物理Oracle数据库不关闭的情况下,管理系统自动实现增量备份,主要是基于应用级别进行数据备份,无法完全镜像复制数据[7],管理系统的在线热备份也是逻辑备份。

随着技术的发展,基于Oracle数据库的迁移工具也较多。地球物理台网通常使用Oracle数据库自带的备份和恢复工具,操作方便、快捷;Exp/Imp是Oracle比较早的数据迁移方式,可实现对全库、特定的表空间及特定表的逻辑备份。该方式较灵活、便捷,但存在速度慢、效率低的缺陷,适合中小数据库的数据迁移。数据泵技术是Oracle基于Exp/Imp备份与恢复工具的升级,支持暂停和远端操作,该技术在数据的并行处理方面有提升,可提高数据的迁移速度和效率,在跨平台数据迁移时较方便;PLSQL Developer是第三方公司开发的集成工具,功能齐全,可视化界面,方便对Oracle数据库进行开发、测试、调试和优化操作,常用的导入、导出文件格式有.dmp、.sql和.pde。

RMAN是Oracle数据库第8版之后提供的外部数据迁移工具,可实现数据文件、控制文件、归档日志及参数文件的备份还原。该技术既能进行冷备份又能做热备份,一般情况下都是进行热备份,执行时数据库需处于归档模式。数据库故障时,RMAN技术能恢复到故障点或离故障点最近的时间,解决物理冷备份和逻辑备份只能恢复到备份点,不能恢复到故障点的问题[8]。

2 河北地球物理Oracle数据库数据迁移

2.1 物理备份

2.1.1 物理冷备份

地球物理Oracle数据库冷备份操作相对简单,对oradata目录下的文件进行压缩拷贝即可[9],此过程中,必须保持数据库的关闭状态。根据《区域地震前兆台网运行管理技术要求》,河北地球物理台网区域中心每月进行一次冷备份。为不影响正常工作,区域中心在冷备份时,一般选择数据库相对空闲的状态进行。

地球物理Oracle数据库的冷备份步骤包括管理系统及数据库的关闭、数据压缩及拷贝、数据库及管理系统的运行等[5](见图1)。通常在进行数据冷备份前,为确保备份数据的完整性,需先查询数据文件、日志文件及控制文件所在位置。数据备份操作步骤如下:

图1 地球物理台网Oracle数据库冷备份及恢复流程图Fig.1 Flow chart of cold backup and recoveryof Oracle database of geophysical network

(1) 以root登录服务器,进入管理系统目录,执行关闭管理系统命令。

cd /install

./stoprun.sh

(2) 关闭数据库、停止监听。

shutdown immediate

lsnrctl stop

(3) 执行数据压缩命令,形成的压缩文件orabak.tar.gz存放于/opt/backup目录下。

tar cvfzpP /opt/backup/orabak.tar.gz /opt/oracle/oradata

(4) 压缩完毕可通过ftp将备份文件下载到其他移动介质,或使用文件传输命令传输至备份库。

scp orabak.tar.gz root@10.13.x.x:/opt/oracle

(5) 启动数据库监听、启动数据库。

lsnrctl start

startup

(6) 启动管理系统。

cd /install

./run.sh

数据恢复时,管理系统和数据库的关闭和启动与数据备份过程一致,在解压备份文件时,先删除/opt/oracle/oradata目录下所有文件,通过解压缩命令tar xvfpP/opt/oracle/orabak.tar.gz恢复数据库数据。备份文件数据恢复后,通过查验数据条目数来校验数据完整性。在主库正常运行情况下,一般在备份库中进行数据恢复,需始终保持管理系统的关闭状态。数据恢复前,备份库需建立与主库完全相同的环境。

河北区域地球物理台网服务器是在Suse Linux11 SP3操作系统下安装的Oracle10g数据库,其数据库文件均在/opt/oracle/oradata目录下。目前,河北地球物理数据库冷备份数据量约65 GB,备份文件存储于备份服务器上,备份数据库与主库运行环境、表结构等完全一致。由于备份服务器管理系统配置与主服务器相同,为防止台站节点数据同步出现异常,备份服务器需保持管理系统的关闭状态。

2.1.2 基于RMAN技术的物理备份

RMAN可实现数据库的全备份、累积增量备份和差异增量备份。全备份是指完全备份Oracle数据文件中所有数据块;增量备份只备份上次增量备份后被修改的数据库,需做一次0级备份为基础。0级备份与数据库全备份内容相同,但全备份不能作为其他备份的基础;累积增量和差异增量备份都是在0级备份的基础上实现,但前者是备份上级备份以来所有变化的数据块,后者是在上一次同级或高一级(0级>1级)备份的基础上有改动的数据块。

根据RMAN的运行模式,RMAN备份分为NOCATALOG和CATALOG两种方式。NOCATALOG模式下,备份信息存储于主库的控制文件中;CATALOG模式的RMAN备份需单独创建ORACLE数据库,用来存放备份数据。因此,CATALOG模式下的RMAN备份更安全。基于CATALOG模式的RMAN备份具体步骤包括目录数据库的配置、参数设置、创建备份脚本及部署备份策略,过程如下:

(1) 目录数据库配置。使用create catalog命令创建恢复目录,在该目录中注册数据库register database,目标数据库为需要备份数据的数据库。

(2) 参数设置。根据数据库情况设置归档模式、归档路径及归档文件命名。

(3) 创建备份脚本及部署备份策略。RMAN备份周期为七天,一般在周日进行0级备份,其他时间进行1级和2级的增量备份。其中0级备份脚本如下:

run {

allocate channel dl type disk;

backup incremental level=0 database format '/opt/backup/RMAN/db_%d_%s_%p_%t '

tag = 'WHOLE_INC0';

sql 'alter system archive log current';

backup archivelog all format '/opt/backup/RMAN/archive/arch_%d_%t_%s' delete input;

Release channel d1;

}

在NOCATALOG模式下,备份信息存储在控制文件中,如果控制文件损坏或丢失,会造成数据无法恢复。因此,基于NOCATALOG模式的RMAN备份需要将控制文件迁移。相较于RMAN备份,基于RMAN的数据库恢复过程较简单,主要步骤为关闭数据库、启动数据库到MOUNT状态、数据恢复及启动数据库。如备份模式为NOCATALOG,恢复数据库时需恢复控制文件,且数据库需保持NOMOUNT状态。RMAN恢复命令脚本如下:

run{

shutdown abort;

startup nomount;

restore controlfile from autobackup;

alter database mount;

restore database;

recover database;

alter databse open;

}

2.2 逻辑备份

2.2.1 基于Exp/Imp的数据迁移

PLSQL Developer中基于Oracle Exp/Imp的数据迁移可在数据库不关闭的状态下完成,实现表级的备份和恢复,通过条件筛选可自定义备份和恢复数据,不受Oracle数据库归档的限制[10]。在台站节点数据库无法恢复时,可使用PLSQL Developer工具的Oracle Exp/Imp进行数据迁移,通过区域中心节点数据库筛选表内数据,恢复台站数据库。

2020年1月,河北石家庄中心站Oracle数据库出现系统故障,由于台站节点无备用数据库,为确保当天数据及时入库,台站工作人员重装系统,造成数据丢失。为尽快恢复数据,区域中心制定数据迁移方案,数据迁移流程如图2所示。

图2 基于Exp/Imp的数据迁移流程图Fig.2 Data migration flow chart based on Exp/ Imp

(1) 源数据库为省局地球物理Oracle数据库,通过筛选表内石家庄中心站所辖数据,导出源数据。

(2) 部署目标数据库时,数据库为Oracle10g,在数据导入前,目标数据库配置须与源数据库完全一致。目标库中管理系统为台站节点,Oracle数据库可通过安装管理系统,设置相关参数,建立与源数据库完全一致的用户和数据结构。在目标机上部署Oracle数据库后,检测Oracle版本、字符集、系统环境变量等是否与源数据库一致。

(3) 源数据导出。通过PLSQL Developer工具中的Oracle导出功能,将石家庄中心站的数据全部导出。在导出数据时,选定石家庄中心站节点所包含的测项表,筛选条件为石家庄中心站包含的台站(where stationid=’13024’ or stationid=’13025’ or stationid=’13103’ or stationid=’13104’ or stationid=’13105’ or stationid=’13106’ or stationid=’13109’ or stationid=’13148’ or stationid=’13149’)。导出的可执行文件为本地Oracle的数据迁移工具EXP,导出的数据文件为.dmp文件。

(4) 数据导入。打开PLSQL Developer工具的Import Table,通过Oracle导入界面,加载可执行文件IMP.EXE,选择源数据导出的.dmp文件,点击Import导入数据。

(5) 测试。为确保数据迁移的完整性,通过count查验两端数据记录的条目数,检测源数据库与目标数据库两端数据量是否一致。在数据记录条目一致时,抽检数据的一致性。分别绘制两端数据库中相同时段的观测数据,通过对比曲线的一致性,查验数据迁移是否出错。

2.2.2 基于数据泵的数据迁移

数据泵技术是基于Oracle9i及前期版本的Exp/Imp逻辑备份技术。相对于冷备份长时间的停库状态,数据泵可实现数据库的逻辑备份,提高数据的迁移速度和效率。基于数据泵的数据迁移,备份库需建立与主库完全一致的用户及数据结构。备份数据库在安装管理系统时,已创建与主库完全一致的数据表,备份库中Oracle安装时的用户设置与主库一致。基于数据泵的数据迁移流程与Exp/Imp数据迁移大致相同,数据备份由以下3个步骤组成。

(1) 定义directory参数,指定路径。在主、备数据库创建目录对象,用于存放数据迁移及日志文件在系统中的位置,通过SSH使用以下命令创建:

create directory pdb_qz as 'C:ak'。

(2) 从主库中导出全部数据,导出命令为:

Expdp qzdata/xx@10.13.x.x/pdbqz directory=qztest dumpfile=xx.dmp schemas=qzdata logfile=xx.log full=n。

(3) 将备份.dmp文件传输至备份数据库对应目录,进行数据泵全库的导入:

Impdp qzdata/xx@10.13.x.x/pdbqz directory=qztest dumpfile=xx.dmp schemas=qzdata logfile=xx.log full=n。

2.2.3 注意事项

逻辑备份通常用于恢复台站节点数据,由于数据从上级数据库中获得,部分字段标识和交换标志需重新设置。在数据迁移过程中,注意以下几点内容。

(1) 导入.dmp文件时,会删除原有数据,如目标数据库有数据,需确认源数据是否包含此数据。

(2) 从目标数据库导出数据时,oracle客户端版本必须与服务器端一致,或低于服务器端oracle版本,否则使用PLSQL Developer工具中的Oracle export导出时,无法导出clob长数据流。

(3) 数据导入目标数据库前,须先删除原有表,否则报错,服务器拒绝执行导入;用delete删除表时,需执行commit命令,否则,在执行导入命令时处于等待状态。

(4) 下级节点导入数据后,为防止再次交换到源数据库,需修改导入表的date_index字段;同时为保证新数据交换到上级服务器,注意表table_bak_flg中upperindex字段和相应表的Next number是否对应。

3 字符集设置

数据迁移时,Oracle server端、Oracle client端及PLSQL Developer三者应保持字符集的一致性,否则迁移的数据有可能出现乱码等情况。数据迁移前,首先查询Oracle server端的字符集,查看服务器端编码select userenv('language') from dual;再查询Oracle client端字符集,执行语句select * from V$NLS_PARAMETERS,查看第一行中PARAMETER项中为NLS_LANGUAGE对应的VALUE项中是否和服务器端一致。如不是,需设置环境变量,环境变量NLS_LANG设为服务器端查询的值。PLSQL Developer客户端使用的字符编码和服务器端不一致,数据迁移会出现乱码。

在部署服务器时,Oracle数据库字符集一旦创建,所存储的字符会受到限制。如出现字符集不一致时,通常修改Oracle client端、PLSQL Developer字符集,使其与Oracle server端保持一致。

4 结语

地球物理Oracle数据库安全、稳定的运行是开展数据分析的基础,数据迁移工作能保障数据的安全,备份现有数据,又可提取数据部署到其他平台,提供数据服务,数据迁移是地球物理台网数据管理的一项重要工作。该文结合日常工作,介绍几种不同方式的数据迁移和实例,根据数据库部署节点属性及故障程度,可选择不同的方式进行数据恢复。在进行物理备份时,备份文件需异地存放,可防止服务器出现硬盘故障,造成数据丢失。实践表明,逻辑备份和物理备份的有效结合,可提高地球物理Oracle数据库运行的稳定性。目前,河北地球物理台网台站节点的Oracle数据库备份自动化程度低,需加强软件开发,提高省局运维工作的自动化管理。

猜你喜欢
台网台站备份
“备份”25年:邓清明圆梦
中国科学院野外台站档案工作回顾
气象基层台站建设
地球物理台网仪器维修信息管理的研究与实现
创建vSphere 备份任务
推进报台网深度融合 做强区级融媒体中心
西藏地震应急流动台网浅析
旧瓶装新酒天宫二号从备份变实验室
MRG9000媒资卫士在市级电视台全台网的应用
基层台站综合观测业务管理之我见