[原创]XXX数据迁移实施方案_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3826 | 回复: 0   主题: [原创]XXX数据迁移实施方案        下一篇 
    本主题由 koei 于 2014-6-23 23:17:43 移动
binbin.qu
注册用户
等级:上士
经验:300
发帖:14
精华:0
注册:1970-1-1
状态:离线
发送短消息息给binbin.qu 加好友    发送短消息息给binbin.qu 发消息
发表于: IP:您无权察看 2014-6-23 17:14:47 | [全部帖] [楼主帖] 楼主

一、前期调研
1、概要信息

关于XXX数据迁移升级,前期调研了解的情况内容如下:

北京联动北方科技有限公司

数据库A附加信息:数据量大小约1.8T,700张表左右,源数据库用户总数<800,常用<5。

数据库B附加信息:在一台IBM AIX服务器上安装两个版本的Oracle数据库:9i和10g。需要把数据库9.2.0.8实例的数据迁移到实例oracle 10.2.0.4上。数据大小约200G,之前oracle 9.2.0.8大约有200个表与主数据库A通过CDC进行同步,迁移完成之后依然与之前的主库A进行同步。

2、目标要求

(1)需要把库A(1.8TB)从oracle 9.2.0.4( hp-ux)升级迁移到oracle 10.2.0.4 (AIX)

(2)需要把库B(200GB)从oracle 9.2.0.8( AIX)升级迁移到oracle 10.2.0.4 (AIX)

(3)升级完库A和库B以后,库B需要重新配置CDC同步数据表

(4)停机窗口控制在24小时以内

二、因素分析

此次数据迁移,需要考虑的因素比较多,主要需要考虑的问题包括如下几个方面:

1、风险与可控性

风险与可控不单单指的是迁移升级过程中,更指迁移完毕后的新环境的运行情况(稳定性、性能等)以及对业务系统的支撑情况。所以一个号的迁移工程不仅需要强有力的迁移控制过程,更需要完善的模拟验证机制以及一个有效的回退方案。

2、停机维护窗口

迁移都需要在指定的停机时间内完成,以避免造成业务大面积的中断或者影响。对于高可用环境,需要有良好的迁移方案来尽可能压缩停机时间。

3、安全性

因为客户群体的特殊性,所以需要对迁移的数据做好保密工作,防止数据的丢失和泄露。

三、方案分析

这个案例属于很典型的跨平台、跨版本、大容量且有停机时间要求的高可用数据库迁移案例。国内这样的迁移升级案例其实并不是太多见。受到常规的工具无法满足要求,高级的工具过于复杂的局限,以往的实施方多已使用第三方迁移工具如Sharepex、DSG来进行迁移,虽然能达到相应的目标,但是这对于大多数企业来说,迁移的成本都过高。

以下是通过对oracle自身提供的工具进行一一分析,最终筛选出方案。

1、Exp/imp

它是Oracle 下最常用的数据迁移工具,可以跨平台、跨版本、跨字符集进行数据迁移,且迁移的过程可以对数据进行重组优化。

缺点是数据库数据量太大,时间与进度无法满足要求。

2、Oracle transportable tablespace

它只是拷贝物理文件到目标数据库上,并没有对数据进行重组,所以速度很快。

因为这里源数据库是oracle 9i。9i对使用transportable tablespace有诸多限制。

3、SQL * Loader

SQL* Loader主要用于数据表的迁移,数据仓库方面用的比较多。对于二进制对象等处理方式繁琐。而且后期的工作量比较大,配置控制文件相对来说会比较繁琐。

4、Data Guard

DG速度快,停机时间短。但是11g以下物理DG不支持跨平台、跨版本、跨字符集的升级。

5、Dblink 方式

dblink是在目标数据库通过透明网关建立到源数据库的数据库链接,然后进行数据插入。它对网络可靠性有一定的要求,执行的速度取决于网络带宽与目标数据库的cpu处理速度。经常和其他高级的迁移方式一起配合使用。

6、Oracle streams duplicate

Oracle的流复制方式支持跨版本、跨平台、跨数据库,处理的方式比较灵活。相对于其他工具而言,oracle streams要求的用户停机时间比常规的工具要短,相对来说客户更容易接受。鉴于此案例的规模以及跨平台、跨版本要求应以oracle streams作为主要的数据移植方案。

7、备选方案prebuild MV

Prebuild MV属于高度可自定义的迁移方式,灵活性大。但是它太过复杂,不仅需要使用者精通业务需求与数据库运行机制,还需精通数据库编程,所以只能作为备选方案。

8、备选方案DBUA

对于数据库B,因为其大小只有200G左右,这里可以考虑使用DBUA的方案。这样有一个很明显的好处在于操作相对来说要简单一些,且原来的CDC配置需要改动的地方比直接迁移要少。如果不能满足这个条件则使用expdp/impdp或者dblink技术来完成迁移。

四、方案流程

如下图所示:

北京联动北方科技有限公司

五、数据迁移思路

1、对表分级,逐步迁移

对表分级,也就是说并不是所有的用户,所有的表都采用streams复制的方式。

对于业务量不繁忙的用户/表来说, 使用exp/imp或者dblink等常规工具是十分有效的,这样可以减轻整个项目的复杂度,也使得整个项目进度更加可控。

2、 分布实施,增量迁移

基于数据量大,需要停机的时间短。要把所有的数据一次性的迁移到目标数据库是很不现实的。所以我这里给出的方案是分步实施,按照系统的增量迁移。首先可以根据业务把数据库细分为表空间或者用户级数据,把各个步骤细化为一个个里程碑,然后再按照计划逐步推进。

3、以一种方案为主,多种方案辅助迁移

对于数据量在1TB级,且存在多个表空间/用户的情况下,以一种技术为主,其它技术为辅的方式往往更加灵活,也能够提高迁移升级的效率。而且在有备用方案的前提下,如果一种方案不是太适合可以马上考虑切换到另外一种方案。

比如大的库可以通过streams来迁移,比较小的库可以考虑使用expdp/impdp或者dblink来进行迁移。

4、尽量错开用户高峰期

因为迁移是非停机迁移,所以在迁移重要的数据时应该尽量避免用户高峰期,使得对用户的影响最小化。

5、变更之前应该先备份

对数据进行迁移难免会涉及到变更,而变更操作一般来说是有一定的风险系数的,所以在执行变更操作之前需要先备份原有数据,以保证如果变更失败或者出现灾难时,可以退回到之前的场景, 避免数据的丢失。

6、变更后须进行测试

迁移升级完成之后,须进行严格的测试,以保证迁移以后没有数据丢失,数据库及应用能够正常、准确无误的工作。

7、迁移时不能修改数据表结构

迁移期间,不要对迁移的数据表进行任何DDL操作,如:修改表结构等。否则在迁移后可能出现意想不到的错误。
 

该贴由koei转至本版2014-6-23 23:17:43




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论