Oracle超大型数据库数据迁移方法论.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle超大型数据库数据迁移方法论   摘要:在实践中,一般将容量超过1T的数据库,称之为超大型数据库。在运营过程中,经常会遇到不同的需求,需要对这类数据库的数据进行迁移,该文根据日常运营实践,总结了对Oracle超大型数据库数据采用逻辑迁移的解决方案。   关键词:数据库;逻辑;迁移;数据泵   中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)30-0007-02   通信企业为了支撑业务发展和企业日常管理的需要,建设了规模庞大的IT系统。为了保障IT系统的长期稳定高效的运转,在日常运营过程中,常常会遇到服务器硬件升级扩容、系统软件升级等需求。为了完成这些需求,通常会对数据进行迁移,需要迁移的数据规模从几百G到超过10T。在长期的运营实践中,作者总结了一套完善、成熟的数据迁移方法论,通过该方法论,成功完成了大量系统的数据迁移,累计实现数据迁移规模超过100T,有效的支?瘟讼低澄榷ǜ咝У脑俗?。   1 不同迁移方法的对比   数据迁移通常可以采用物理和逻辑两种不同的方法,两种方法的对比见表1。   随着x86硬件平台的性能提高和成熟、Linux系统的稳定、以及基于x86平台虚拟化技术的发展,将会越来越多地出现将数据从小型机平台迁移到x86平台的需求,在这种情况下,逻辑迁移是最常用的一种迁移方法。本文重点讨论逻辑迁移的方法。   2 数据迁移准备工作   迁移前期需要完成的准备工作主要包括以下内容:目标主机数据库软件的安装、创建数据库、创建表空间以及下面的检查工作(注意目标数据库在迁移完成之前需要置为非归档模式)。   3 详细迁移步骤   为了减少逻辑迁移过程中的系统停机时间,需要对数据先进行分类,部分历史或者静态数据在正式迁移前先行导入到目标数据库中,尽量缩小正式迁移过程中的数据量。   10g以前的版本由于无数据泵技术,所以分两种情况讨论。   3.1 Oracle 9i(包括9i)之前版本数据迁移   Oracle 9i(包括9i)之前版本数据迁移采用Export/Import+DB Link方式,主要步骤为先利用Export/Import导出、导入用户元数据,再采用DB Link方式插入数据。不直接采用Import导入数据,主要原因是Import是串行执行,且如果中途报错,导入过程要整体回退,不容易掌控导入的进度;而采用数据库链接插入数据的方式则可以避免这些问题。   1) 在目标库上设置参数job_queue_processes为0,暂停目标数据库job的执行。   2) 比照源数据库,在目标数据库上创建用户、角色和profile,并将相关权限授予角色和用户。   3) 在源库上批量生成需要迁移的用户元数据导出脚本。   4) 在源库上批量生成目标库导入用户元数据的脚本。导入后,注意需要更新JOB$表来更正JOB导入的问题。   5) 检查对象总数、无效对象。首先在目标库上执行无效对象编译的脚本:@?/rdbms/admin/utlrp.sql然后对比目标库和源库的迁移用户的对象总数、无效对象数,是否有遗漏和不一致,在进行针对性的补充。   6) 通过数据库链接插入数据。关闭应用,在源库上设置job_processes=0停止所有JOB运行,在源库上创建一个端口号为1526的监听,停掉原来的端口号为1521的监听,避免有应用连接;插入数据前,再次确认表上是否有触发器,如果有,做好记录后将其删除。   7) 利用第三方工具,产生序列创建脚本,并传输到目标库上直接执行。   8) 利用第三方工具,产生索引创建脚本,并对脚本进行修改,增加nologging、parallel选项,加快索引创建速度,并传输到目标库上直接执行,执行完毕后,再取消并行,恢复logging模式。   9) 利用第三方工具,产生约束创建脚本,并传输到目标库上直接执行,注意主键和外键分开执行,先创建主键约束,再创建外键约束,两者不能同时执行。   10) 利用第三方工具,产生触发器创建脚本,并传输到目标库上直接执行。   11) 收集相关统计信息。   3.2 Oracle 10g之后版本数据迁移   在Oracle 10g以后的版本,由于数据泵技术的出现,可以直接在数据泵中使用并行,可以简化迁移的步骤。   1) 设置参数job_queue_processes为0,暂停新旧数据库job的执行。   2) 使用IMPDP直接按照用户迁移数据。   使用数据泵,采用DB Link的方式,开启并行迁移数据,如果一个用户数据量特别大,尤其是有特别大的表,可以将该表排除,或者将一个用户的表分割成多个IMPDP脚本执行:   impdp system/**** n

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档