本发明属于信息系统技术领域,具体涉及用电信息采集系统跨平台数据库数据迁移的应用。
背景技术:
随着信息技术的发展,信息系统替换的频率也越来越高。在系统替换的过程中就有必要进行数据迁移。数据正在逐渐成为企业的核心资产,数据的迁移成为企业时刻关注的问题。数据迁移,是指从一种源数据库中提取数据,根据需要,迁移或者移植到目标数据库中,其中异构数据库迁移更是一项具有挑战性的工作。异构数据库迁移是指各自拥有自己的应用特性、完整性控制和安全性控制多个数据库,且在多个数据库之间存在着以下一种或者多种异构性:1计算机体系结构的异构;2基础操作系统的异构;3 DBMS本身的异构。本次研究的背景是河北省电力公司实施的用电信息采集系统主站升级改造项目。升级改造过程中,由于新购的SUN小型机与原生产库IBM数据库服务器属不同的操作系统平台,数据库备份系统备份的数据,无法跨平台恢复到SUN小型机搭建的查询库数据库上,且查询库和生产库的Oracle版本不一致。因此该次数据迁移是基于跨操作系统平台与不同版本数据库的异构数据迁移,安全风险大,技术含量高,业务水平要求高。
对于异构数据库系统,要实现数据共享应当达到两点,一是实现数据库转换,二是实现数据的透明访问。在数据转换过程中,原来的生产库数据库系统数据不能废弃,需要迁移到新的查询库数据库中继续发挥作用。将现有生产库数据中有效数据导入查询库中,对系统切换及新系统上线运行有着重要影响。数据迁移稍有不慎,便会造成新系统不能正常启动,假若迁移过多垃圾数据,将有可能使新系统运行缓慢,甚至瘫痪。数据迁移的失败将直接造成整个系统升级改造的失败。数据迁移必须确保导入数据的完整性。采集系统业务复杂,数据量大,并且比较分散,数据导入后,升级后系统必须保证对生产库与查询库的操作能够正常进行。系统上线后,用户可能需要对终端进行召测、对用户档案进行调试,对电表数据进行查询等,这些操作都依赖数据迁移的成功。只有保证数据的正确性、可用性,才能保证采集业务正常运行。
技术实现要素:
本发明提供一种基于用电信息采集系统跨平台数据库数据迁移的理论和方法,解决了河北用电信息采集系统升级改造项目中遇到的跨平台数据迁移的重要难题,停机时间短,工期短,可靠性高,安全性高,操作简单,保证了数据迁移的准确性和完整性,促进了整个升级改造项目的圆满完成,也刷新了信息系统业内数据迁移项目中跨平台数据迁移的记录。
为了实现上述发明目的,本发明采取如下技术方案:
采集系统数据库的数据迁移,将生产库存储上数据,无损的迁移至查询库数据库存储上,要跨越2种架构。考虑通过数据库备份迁移软件DATA PUMP和 RMAN 来实现。为了可行性考虑,同时展开了这两种迁移方案测试及论证。 DATA PUMP工具提供了一种基于服务器端的数据导入导出使用程序,所有DATA PUMP都作为一个服务器进程,数据不再由客户程序处理。DATA PUMP工具的导出和导入实现 ORACLE 数据库之间的数据传输。 RMAN是RECOVERY MANAGER的缩写,为ORACLE的恢复管理器,主要用于备份和恢复数据库,特点如下:1、可以备份数据库、表空间、数据文件、控制文件以及日志文件。2、压缩备份可以只备份发生变化的内容。
考虑到AIX操作系统与Solaris操作系统的Oracle数据库备份还原属于不同的操作系统;鉴于异构平台数据还原需要进行格式转换,存在一定的技术风险,通过咨询相关Oracle专家并结合其他现场经验,采用RMAN方式通过convert方法进行数据迁移。
其具体的方案为:
本发明提供一种基于用电信息采集系统跨平台数据库数据迁移的方法,其是一种应用于不同操作系统之间且不同版本的oracle数据库之间的数据迁移方法,用电信息采集系统包括生产库和查询库,其特征在于:其包括以下步骤:
1)利用RMAN在原服务器对原数据库进行全库备份,生成备份文件;
2)利用RMAN在新服务器将步骤1)的备份文件全库恢复到新的数据库中;
3)对恢复后的数据库通过convert database命令转换。
优选的,所述步骤1)包括以下步骤:
1.1)建立通道分配:通道公配是确定连接数据库备份的设置个数,每设置一个设备就代表RMAN会自动启动一个服务器会话,由此来完成数据库的备份与恢复的操作;
1.2) 在ORACLE的归档模式下,使用BACKUP命令备份数据库中的对像;
1.3)建立备份目录:将磁盘存储阵列根据数据备份要求,划分生产库与查询库共享空间,并分别挂载到生产库与查询库;对生产库做数据库全库备份。
优选的,所述步骤2)包括以下步骤:
2.1)连接新服务器的新数据库;
2.2)在新数据库中创建恢复目录的用户,对恢复目录的用户赋予recovery_catalog_owner的角色;
2.3)在新的服务器中创建恢复目录,使用恢复目录用户登录数据库后在恢复目录管理器中创建恢复目录。
优选的,还包括以下步骤:
步骤3)查询库的数据库版本升级。
优选的,所述用电信息采集系统分为主站、通信信道和采集设备;所述主站单独组网,分区分域,与其它应用系统以及公网信道采用防火墙进行安全隔离;采集设备是用电信息采集系统的信息底层,负责收集和提供电力系统的原始用电信息,包括各类专变用户的终端、集抄终端及电能表;通信信道是主站和采集设备的纽带,提供了对各种可用的有线和无线通信信道的支持,为主站和终端的信息交互提供链路基础。与现有技术相比,本发明的有益效果在于:
1、可避免由于迁移造成的数据丢失、数据损坏的问题,能保证数据迁移的完整性。
2、可对异构操作系统上的数据进行无损数据迁移。
3、可对数据库大版本不统一的数据进行无损数据迁移。
4、数据库数据迁移时,停机时间短、工期短。
具体实施方式
本发明提供一种基于用电信息采集系统跨平台数据库数据迁移的理论和方法,采用RMAN方式通过convert方法,完成了河北用电信息采集系统升级改造项目中跨平台数据库数据迁移的实施,将生产库存储上数据,无损的迁移至查询库数据库存储上。
用电信息采集系统从物理上可根据部署位置分为主站、通信信道、采集设备三部分。
其中系统主站部分单独组网,分区分域,与其它应用系统以及公网信道采用防火墙进行安全隔离。采集系统按照全覆盖、全采集、全费控的要求,在系统中实现数据采集管理、有序用电、预付费管理、电量统计、分布式电源管理、用户用电阶梯电价等各种功能。实现用电信息的自动采集、计量异常监测、电能质量监测、用电分析和管理、相关信息发布、分布式能源监控、智能用电设备的信息交互等功能,充分满足各业务应用的需求,并为其他专业信息系统提供数据支持。
通信信道是主站和采集设备的纽带,提供了对各种可用的有线和无线通信信道的支持,为主站和终端的信息交互提供链路基础。主站支持所有主要的通信信道,包括:230MHz、GPRS无线公网、光纤专网和小无线等。
采集设备是用电信息采集系统的信息底层,负责收集和提供整个系统的原始用电信息,包括各类专变用户的终端、集抄终端及电能表等设备。
大型专变用户应用I型负荷管理终端,对中小型专变用户应用II型负荷管理终端终端;低压电力用户的用电信息采集以配变台区为单元建设采集系统,实现台区下所有低压电力用户的用电信息采集,同时实现配变关口电能信息采集。
用电信息采集终端是对各信息采集点用电信息采集的设备。可以实现电能表数据的采集、数据管理、数据双向传输以及转发或执行控制命令的设备。用电信息采集终端按应用场所分为专变采集终端、集中抄表终端(包括集中器、采集器)、分布式能源监控终端等类型。
1) RMAN全库备份
1、建立通道分配
通道公配是确定连接数据库备份的设置个数,每设置一个设备就代表RMAN会自动启动一个服务器会话,由此来完成数据库的备份与恢复的操作。
其语法如下:
RUN
{
ALLOCATE CHANNEL CHANNEL_NAME1 DEVICE TYPE TYPE_NAME1;
BACKUP...
}
进行数据库备份时,为了让数据库正常完成备份操作,需要关闭数据库并启动MOUNT。
2、BACKUP使用
BACKUP命令主要用于备份数据库中的对像。具体语法如下:
BACKUP [LEVEL] [BACKUP TYPE ] [OPTION]
ORACLE 数据库的RMAN备份必须在ORACLE的归档模式下才能进行。
3、备份目录建立
将磁盘存储阵列根据数据备份要求,划分生产库与查询库共享空间,并分别挂载到生产库与查询库,备份目录名称为DATAPUMP。
源端(生产库)做数据库全库备份,代码如下所示:
RMAN TARGET / log=/datapump/baknocom/full0421.log <<EOF
run {
ALLOCATE CHANNEL ch00 TYPE DISK;
…
ALLOCATE CHANNEL ch15 TYPE DISK;
BACKUP FORMAT '/datapump/baknocom/bk0421_%s_%p_%t' database;
BACKUP current CONTROLFILE format '/datapump/baknocom/contrl';
RELEASE CHANNEL ch00;
…
RELEASE CHANNEL ch15;
}
2)RMAN全库还原
如果在归档模式或者非归档模式的MOUNT状态备份的数据库,产生的备份是一致的备份,恢复的时候需要如下文件:
Rman备份的参数文件、控制文件、数据文件。
查询库创建恢复目录,创建恢复目录时需要考虑数据库的容量,这个容量的大小取决于生产库数据库容量的大小,创建恢复目录分为连接恢复目录的数据库、创建恢复目录的用户、给恢复目录用户赋角色以及创建恢复目录4个步骤。
1、连接恢复目录的数据库
恢复目录的用户就是指在生产库数据库中所使用的用户,这个用户与其它用户不同,必须赋予recovery_catalog_owner的角色才可以。连接数据库语法如下:
conn sea/sea***1234 ;
2、创建恢复目录的用户
create user sea ideneified by sea***1234
3、给恢复目录用户赋角色
创建的数据库用户是不能实现RMAN备份与恢复工作的,还需要给该用户赋予权限和角色。
grant recovery_catalog_owner to sea
4、创建恢复目录
使用恢复目录用户登录数据库后就可以创建恢复目录,需要在恢复目录管理器中完成
Connect catalog sea/sea***1234
查询库恢复脚本:
rman target / <<EOF
run{
set newname for datafile 1 to '/datapump/cxsea/rrac_system';
…
set newname for datafile 10 to '/datapump/cxsea/rrac_pbs5';
………………………………………………
allocate channel t1 device type disk;
…
allocate channel t32 device type disk;
restore controlfile from '/seaapp/oracle/product/10.2.0/db_1/dbs/c-2290404035-20150421-00';
alter database mount;
restore database;
switch datafile all;
}
EOF
3) Convert转换
数据库从生产库AIX系统还原至查询库solaris系统后,由于是跨平台数据还原,需要对数据文件进行convert处理,才能正常使用。
rman target / <<EOF
run{
convert from platform 'AIX-Based Systems (64-bit)'
datafile '+DATA/SEA/DATAFILE/rrac_sea_a210' format '+DATA/SEA/UNDO/rrac_sea_a210' ;
convert from platform 'AIX-Based Systems (64-bit)'
…
convert from platform 'AIX-Based Systems (64-bit)'
datafile '+DATA/SEA/DATAFILE/rrac_sea_a546' format '+DATA/SEA/system/rrac_sea_a546';
}
EOF
4) 数据库升级
将10G数据库upgrade升级为11g数据库:
从11gR2的Oracle Home下拷贝以下文件至一个临时文件夹:
$ORACLE_HOME/rdbms/admin/utlu112i.sql
SQL> startup mount
SQL> alter database open upgrade
SQL> spool upgrade_info.log SQL> @utlu112i.sql SQL> spool off
sql> alter session set nls_language='American'; sql> @dbupgdiag.sql sql> exit
接着开始运行升级脚本:
SQL> set echo on SQL> SPOOL upgrade.log SQL> @catupgrd.sql SQL> spool off
检查数据库状态:
$ sqlplus "/as sysdba" SQL> STARTUP SQL> @utlu112s.sql
再运行下面的脚本:
SQL> @catuppst.sql
前面的升级脚本是运行在upgrade模式下,该脚本主要是在open模式下做些升级动作,不需要花很多时间。 接着重新编译一下无效对象:
SQL> @utlrp.sql
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。