分类: Oracle
2008-11-20 19:39:29
工程环境中需要进行数据库迁移
n 数据库版本,如ORACLE9206迁移到 ORACLE9208
n 操作系统更换,如hp-ux11.11更换到AIX 5.2
在进行数据库升级过程中,最为关心的几个问题:
n 缩短业务中断的时间
即使是有计划的业务中断也将会对企业造成巨大的损失,比如造计费系统的停止、客户服务中断、用户业务中断,或降低客户服务质量等。据业界估计,80%的停机时间都来源于计划的下线,其中包括硬件迁移等。因此尽量缩短迁移过程所需要的时间是提高系统连续运行的关键。
n 异构环境
因为在相同的操作系统平台、或相同的数据库平台之间作数据库的迁移会有较多手段能够实现,但在异构环境下,包括操作系统的升级或变更、包括数据库的升级、包括存储设备的升级等都提高了迁移的复杂程度。
因此,如何在保证在异构环境下的迁移,并且缩短迁移的时间和业务中断时间是本项目最关键的环节。
对于能够实现异构环境下的迁移,在传统解决方案中,最好的方式就是采用ORACLE提供的迁移工具,如Export/Import等。因为这些工具都是从逻辑层面对数据库的数据进行导出和导入的方式来实现的,因此能够较好的解决异构环境下的迁移。也几乎是异构环境下迁移的非常少有的解决方案之一。
但是,通过Export/Import工具对于那些部门级的应用系统还能够很好的应付、因为他们的数据量小、业务量小,迁移的时间也能够较短。
但对于企业级、电信级和数据中心级的数据库迁移,情况就将变得非常复杂。在采用Export工具就会遇到许多问题:
n 迁移的时间非常漫长。
Export和Import在导入导出数据时的性能较慢,如在某电信环境中,在SuperDome服务器上,对一个拥有3.8亿条计费话单(约100GB)的表在导出时间上就花掉了5个多小时,并且还不包括Import过程。
在某地市级电信系统上,一个300GB的数据库系统,仅每天的增量导出时间就需要14小时。
如果对于移动BOSS这样的大数据量系统,那么在导出和导入过程将是不可允许的时间性能。
n 迁移过程需要中断业务
在采用Export和Import工具时,也将意味着在漫长的导出导入时间中,生产系统上的所有交易都将被挂起,否则将造成导出过程失败。对于某些应用来说,迁移过程就将意味着数十小时的业务中断。
DSG基于其强大的数据库复制工具RealSync推出了异构环境下的数据库迁移解决方案,该迁移方案具有支持异构操作系统平台、异构数据库平台的特点。并且在迁移过程中无需要中断生产业务,缩短系统计划下线的时间。
RealSync迁移工具是在逻辑层上对数据库进行迁移,其迁移过程不是对数据库底层的存储数据块进行复制,而是将数据库中的记录抽取出来,然后将抽取出来的记录装载到目标端的方式来实现。
由于抽取的记录将与任何的操作系统和oracle版本都无关,因此该记录可以在任何两个平台之间迁移。
RealSync对迁移的过程可分为以下两个步骤:
步骤(1):大数据量的批量同步;
步骤(2):步骤(1)执行过程中,新执行交易的复制;
其中步骤(1)的工作原理为:
RealSync调用Oracle的I/O层的API接口批量读取一张表(Table)的记录(每次读多少条是由操作员设定的RealSync系统的Buffer决定的,如果一次读不完,则分为多次读取),然后将读取的记录转化为DXF格式,再将DXF格式表示的一批记录传送到目标端的RealSync Agent进程,目标端进程再调用ORACLE的I/O层的API接口将数据批量写入目标系统中。
对于一个数据库而言,其中有许多张表(Table),RealSync依次将每张表的所有数据按照上述原理复制到目标系统中。
其中步骤(2)的工作原理为:
当步骤(1)的大批量数据完成后,RealSync再将步骤一过程中新增加的交易重新复制到目标系统。
在过程的工作原理是通过跟踪和分析从步骤(1)开始时的所有redo.log信息,从Log文件中分析和翻译出这段时间内新增加的记录,然后再将记录在目标系统上插入。
如果步骤(2)中复制的数据在目标表中已经存在,则RealSync将首先删除目标系统中的该记录,同时插入新复制的记录。
在这两个过程执行过程中,生产系统的业务可以保持运行状态。无需中断业务。
Oracle数据库系统在设计上提供了4个层次的接口,其中包括User层,SQL层,Transformation层,和I/O层。其结构为:
USER SQL Transformation I/O
首先DSG RealSync在数据导出时也直接调用I/O层进行数据抽取。避免通过过多的系统调用造成的性能下降。
所以在采用DSG RealSync进行迁移时,其数据导出和装载的速度都非常快,如在某电信环境中,3.8亿条计费话单(100GB左右)导出时间仅需要30分钟。
另外在数据传输和装载过程中DSG RealSync软件采用DXF格式表达迁移的数据。DXF格式是一种最高效率的表达ORACLE记录的数据格式,该格式只需要经过最小的转换过程就能够装载到ORACLE数据库中,并且装载效率非常高。
DXF数据格式是RealSync产品的一个核心技术,是一种专用的数据结构。无论是初次同步过程、还是实时同步过程,所有数据都被转化为DXF格式在网络上进行传输,并用该格式在目标端进行装载。
在这四层当中, DSG RealSync调用I/O层,所以DSG Realsync在装载层上有一定优势。
在系统迁移过程中,需要以下几个步骤:
1. 系统评估;
2. 规划新系统;
3. 安装数据库;
4. 数据复制;
5. 系统验证;
6. 正式割接;
评估原系统数据库现状:根据原系统长期以来运行状况对原系统进行评估,评估其容量是否满足要求,数据库部署是否科学,系统性能瓶颈以及其他存在的所有问题;
主要包括:
(1) 内存使用率
(2) CPU使用率
(3) Disk使用率
规划新数据库系统结构:根据对现有系统的评估结果,设计新数据库系统部署架构,以满足容量、性能和功能要求;主要解决新数据库系统存储分布、数据库物理结构设计、系统参数以及可能要求的数据表结构改变(如是否需要分区、改变索引等);
安装新系统ORACLE 9i;
设置ORACLE 9i环境参数,init.ora文件参数等;
预分配DataFile;
增加TableSpace>=源端的TableSpace;
根据新系统的规划要求修改SQL指令文件(如各Table所在的Tablespace变化,用户权限变化,Partition变化等);
数据复制包括两个步骤:
1. 数据初始化同步:
在原系统业务不中断的情况下,通过RealSync的首次同步功能,依次将原系统中的所有表(Table)中的记录复制到新系统的对应表(Table)中去。该过程需要时间较长,视数据量大小和I/O带宽而定;
数据分为以下几类:
数据类型 |
数据分类 |
普通数据 |
1.4T(纯数据) |
压缩数据 |
|
临时表 |
若干 |
总共需要提前3天开始做数据同步复制,主要用于建立索引的时间
2. 增量数据同步:
将在大数据量同步过程中新增加的记录复制到新系统上,并且在割接前保持新系统与原系统的记录实时同步;
根据业务的需求,分成多套分别复制,防止增量日志太大,分析跟不上:
普通用户
SCP,BMB,ODS,DM,EBA_JF,EBA_ZW,EBA_YY,EBA,EBA_DIM,NEWEBA1,NEWEBA2,MID_PROCESS,HOLD,DIM,NEWSCORE,AM,COMUSER,BM,BMA,HLA,BT,BTA,BTB,BTC,BTD,CDMA_1X,NEWEBA3,CF,CFA,CFB,CIM_DW,DWCTRL,CODE,ASZ,ER,ERA,ERB,EXTRA,ETL_MONITOR,FORUM,TL,HLB,HM,HS,HSA,HSB,HSC,HSD,BONC_DW,JF193,JIFEN,BONC_ODS,BONC_SRC,BONC_DIM,NMGUBIS,BONC_LOG,ACCT_REPORT,IAM,DMCODE,CIM_ODS,TOPZBA1,SRC,WH,WM,XA,XM,INFOPUMP,NEWDR,CRM,DSS,BONCFTP,CIM,REPORT,NEWEBA3_DSS,WORK_FLOW,
数据复制结束后,最主要的是对复制的数据进行验证。
数据验证包括两个方面内容:
n 数据一致性验证;
n 应用验证;
(1) 数据一致性验证
数据一致性验证是指比较原系统和目标系统在某个固定点上的两端记录是否完全一致。这种一致首先是记录数量相同,其次再是每条记录的内容完全相同(由于数据量很大,对当前部分重要业务表进行测试)。
DSG RealSync提供了数据一致性比较手段。该功能可以比较在某个时间点源系统和目标系统的数据是否完全一致。
(2) 应用验证
应用验证是指验证新系统是否完全满足应用的需要,主要包括:
- Test applications
- Test oracle 厂家
- Test 亚信 厂家
在检查原系统和新系统完全一致的情况下,在新系统上加载业务模块,进行业务层上的模拟测试;
(1) 启动新系统:在新系统上启动应用系统,启动测试客户端,连接测试客户端与应用系统。
(2) 暂停新系统端的RealSync实时数据装载功能,将新系统的数据库切换到正常状态。此时数据复制进程仍然处于工作状态,只是将新复制的交易保存在缓存中,以便在有效性验证结束后,将新增加的交易从缓存写入到新系统上。
(3) 从测试客户端发起模拟业务请求,检查整个新系统是否能够完成正常的业务处理;
(4) 验证结束后,重新打开新系统端数据装载功能,恢复保持新系统与原系统的实时复制状态。
–Test DBA scripts
将DBA的常用系统维护脚本进行测试,是否能够满足预定功能。
在经过上面的系统验证后,将进行系统的正式割接:
n 首先停止原系统的业务进程;
n 然后等待RealSync中的复制队列完全结束后,在停止RealSync的复制进程。
n 启动所有的Trigger,Job
n 在新系统上启动业务进程。
总的来说,RealSync在数据库迁移方面的特点主要包括以下几个方面:
n 无中断的数据迁移:
尤其是在大数据量复制过程中,不需要对原系统业务进行限制,甚至是停止原系统,从而减少在长时间迁移过程中对原系统的影响;
n 跨数据库平台的迁移:
可支持ORACLE任意两个不同版本之间的数据迁移,如支持从 ORACLE
n 跨OS系统平台的迁移:
可支持运行在不同操作系统平台上的两个ORACLE系统的迁移,如从HP-UX11.11到AIX5.2上的迁移;
n 支持系统优化:
支持迁移过程中对数据库系统进行优化,从而解决原系统存在的很多缺陷和问题;
原系统的数据库结构和新系统的数据库结构可完全不同,如目标系统的DataFile分布、TableSpace的分布、Index的规则、表Partition的改变等都可以进行改变;
新数据库系统的存储划分可实现优化,对原数据库自动进行碎片整理;
n 高性能:
满足大数据量的迁移:通过实际测试,RealSync工具进行导出导入的性能远远高于Oracle Export / Import的性能,如在一3.8亿条表(100GB左右)中采用Oracle的工具导出时间长达5个多小时,而采用RealSync工具导出时间仅30分钟左右;