技术开发 频道

Oracle技术嘉年华:数据迁移非常好的实践

        【IT168 资讯】2012年11月9日-10日,第二届“Oracle技术嘉年华”将在北京国宾酒店隆重举行,届时国内外数据库界大师将齐聚北京,为大家奉上两天的技术“大餐”!本届大会是由ACOUG、ITPUB、IT168和云和恩墨共同主办的,会议主题为“数据库技术企业应用非常好的实践”。

  今天是Oracle技术嘉年华2012的第二天,在上午举办的分会场中,来自云和恩墨技术总监,Oracle ACE总监,ACOUG发起人张乐奕老师,为我们带来了关于《数据迁移非常好的实践——从小机到PC》的话题分享。


Data Amount

  在迁移前想要数据库回滚问题

  在本次演讲中,张乐奕老师特别提到了数据库回滚的问题。“在了解了数据库迁移方法以及相关的方法论后,还有一个问题需要大家要特别考虑,也是在进行数据库迁移之前就要考虑的——怎么样去回滚。”回滚意味着什么?意味着我们的数据库迁移失败了,因为做任何事都有可能失败,所以我们需要提前考虑合理的解决方案。

在迁移前想要数据库回滚问题
云和恩墨技术总监,Oracle ACE总监,ACOUG发起人张乐奕老师

  关于数据库回滚,张乐奕老师介绍了两种情况下的回滚。一种是在迁移的过程中失败了,这种情况比较好处理,因为大家一般都会想到;第二种情况是我们迁移成功了,系统已经成功的运行了一段时间,但之后由于一些原因导致新系统无法使用(比如数据和应用层之间有无法调和的矛盾,应用不支持数据库),而这时候有一些新的数据,已经在新系统里面,那我们该怎么办?


如何进行rollback?

  这里我们分析这两种情况,针对第一种情况,如果我们在迁移过程中失败了,那么最好的解决方法就是不要回滚,如果在迁移过程中,我们没有碰原数据库,那么我们将原数据库重启就好了,不要进行回滚操作。特别是,目前我们遇到的大部分场景,在迁移过程中,都没有必要碰原数据库。

  针对第二种情况,如果我们在迁移成功后,要发生回滚,这时我们一定要想要一个同步的机制。无论是用Goldengate、刷新或者其他方式,包括Dataguard,一定要有一个同步的机制。同时,这个同步的机制要保持多长时间,都是我们要事先计划好的。

${PageNumber}

  实际案例分析

  在本次演讲中,张乐奕老师讲到了一个实际案例,来阐述他们是如何在短时间内成功迁移一个数据量庞大的数据库的。据介绍,本次迁移共有10TB的数据量,共在五个小时完成。


相关的Case

  其中,针对这10TB的数据,我们将其中99%的数据,放在几张大的表里面,并且不是分析表,是单表;原平台是IBM AIX,目标平台是RHEL x86-64;原平台是10.2.0.4 RAC,目标平台是10.2.0.4 RAC,这是整个项目的一个大概情况。

  具体方法

  首先,我们将所有的大表用Goldengate做同步,这项工作大概需要一周的时间,并且在这段时间内,是不需要停机的。这里需要说明的是,可能大家看起来这个方法很简单,但实际并不是这样。因为这里的数据表非常大,一个将近8TB的单表,做Goldengate做同步并不是很容易。根据以往的例子看,同步这一张大表,需要一个月的时间,而我们只用了一个星期,完成这张表的初始化以及数据同步。

  其次,是多种方法并在一起用。首先,针对剩余的60GB的数据量,我们做Datapump的到处和导入,其中我们用到了自己的并行。这个步骤,我们一共用了80分钟的时间,这也是数据库停机的所有时间。其中,我们用了15分钟做expdp、10分钟做scp、55分钟做impdp。

0
相关文章