升级到12c云数据库的最佳实践

  1. 云栖社区>
  2. 博客>
  3. 正文

升级到12c云数据库的最佳实践

努力酱 2017-05-02 11:07:00 浏览1376
展开阅读全文
20151224094837472.jpg


目录

  • 升级方案的选型

  • 各个阶段主要任务

  • 项目成功的关键因素



20160628114016333.jpg


升级的过程中我们会经历这样一个过程:一开始,怀着美好的愿望,我们开始升级项目;但在实施过程中会碰到或多或少的问题,饱受挫折;在努力解决问题后,系统最终能够成功上线。


第一部 分升级方案的选型


随着oracle 数据库版本的更迭,提供了越来越多的升级、迁移方法。


20160628114027878.jpg


10.2.0.5 ,11.1.0.7,11.2.0.2 或以上 能够直接升级到12.1.0.1/12.1.0.2 版本;

其它版本需要2次升级; 如: 10.2.0.3 -> 10.2.0.5 -> 12.1.0.2


20160628114037235.jpg


12c 中引入新的升级前准备脚本,可生成检查、及修复的脚本。

MOS Note:884522.1

1.预检查preupgrd.sql

2.再执行preupgrade_fixups.sql


20160628114045962.jpg


之前的catupgrd.sql 脚本将弃用, 通过指定“PARALLEL=NO” 仍然可以使用catupgrd.sql。


20160628114054976.jpg


catctl.pl 并行调用拆分出的多个子脚本实现更快的升级,减少最高40%的停机时间。


20160628114100987.jpg


如: 启动并行度为8的升级脚本。


20160628114107106.jpg


下面,我们介绍各个升级方法:

1.跨字节序的迁移:

Oracle9i 开始 基本选项是 逻辑导出导入(exp/imp).

  •  支持oracle5及以上版本

  •  11g开始不支持exp(exp程序存在于oracle目录中),imp 依然支持


20160628114116999.jpg


8TB  从9i 迁移升级到11g 需要超过24小时。


1.Oracle10g 开始 expdp/impdp 是更好的选项。

2.跨平台的可传输表空间(xTTS)


20160628114138347.jpg


8T数据迁移升级需要8个小时(与exp/imp 相比时间缩短为1/3)。


12c 中Data pump 引入新特性:完整可传输导出/导入(Full Transportable Export/Import)

VIEWS_AS_TABLES :  指定导出view内容到表;

TRANSFORM : 可选择关闭归档,表压缩等

LOGTIME: 记载操作时间、状态到日志


20160628114145425.jpg


下面我们来了解一下可传输表空间


20160628114151667.jpg


Oracle8i 开始支持TTS (可传输表空间),10g开始支持XTTS (跨平台可传输表空间);

75TB 数据库从10g AIX 迁移升级到Oracle12c  耗时48小时,非常快。


20160628114201718.jpg


XTTS (跨平台可传输表空间)需要使用RMAN 工具进行文件的转换,

支持的操作系统查询视图:V$TRANSPORTABLE_PLATFORM


20160628114208938.jpg


TTS完成数据迁移后,还需要重建Meta信息(视图、同义词、触发器、角色等)


20160628114217484.jpg


TTS  在以下场景,需要慎重考虑:

1.过多Views, synonyms, sequences  等对象;

2.表空间中对象过多,导致expdp/impdp 缓慢;


20160628114223536.jpg


TTS痛点- 停机时间过长:

1.拷贝大量的数据;

2.跨平台转换过多的表空间;

新技术: rman 转换跨平台的增量备份可解决该问题:

当然该技术有版本要求:

–  Oracle 11.2.0.3 for Exadata only –  Linux x86-64 with Oracle 11.2.0.4   -- 我们有过正式案例,需要选择正确的 –  all platforms starting with Oracle 12c


20160628114256555.jpg


停机时间为最后一次的“增量备份及恢复”, 停机时间大大减少。


20160628114303639.jpg


再看12c中引入的完整可传输导出/导入(Full Transportable Export/Import),使得迁移/升级更容易,更快,且更高效。

单个命令完成数据库的迁移:

1.跨平台(同时使用可传输表空间的机制和数据泵功能 )

2.支持12c多用户

3.源库11.2.0.3/4版本

4.Target 版本必须要12.1.0.1 及以上。

5.能够对所有需要的用户数据和元数据进行数据库迁移。


20160628114318426.jpg


零停机升级方案


20160628114325631.jpg


真实的零停机方案很难实现。

OGG 等复制技术能够在较短的时间内,完成升级。


20160628114333701.jpg


OGG是付费软件;

Goldengate 12.1 支持 Oracle 11.1.0.6 及以上;

支持非Oracle数据库(DB2, Teradata ,Mysql,Sybase)


20160628114340344.jpg


OGG  实现10TB 数据库 5分钟内的迁移。

流程:1. 抽取进程(源端): 捕捉提交的事务数据,并写入到trail文件


20160628114350177.jpg


流程:2.通过Data pump 或TTS 搭建目标库


20160628114412242.jpg


流程:3.投递进程(源端): 可选择压缩、加密的方式传输trail文件内容。


20160628114421122.jpg


流程:4. 复制进程(目标端): 使用传输过来的Trail 文件,应用记录到目标数据库中。


20160628114429130.jpg


各种升级方案对比: 根据不同的应用场景选择不同的技术方案。


第二部分 各阶段主要任务


20160628114436217.jpg


20160628114443480.jpg


20160628114449855.jpg


需求分析:停机窗口,是否存在平台切换,应用有无重大变更,新老环境的物理距离,网络带宽


生产环境:数据量,数据增长情况,字符集,db_block_size,无效对象,组件状态


20160628114456849.jpg


20160628114504827.jpg


20160628114511789.jpg


第三部分 项目成功的关键因素


20160628114521225.jpg


项目成功的3个关键因素: 人、例会、协作


20160628114528680.jpg


项目团队需要不同的角色,具备相应的技能。


20160628114536361.jpg


定期组织例会,沟通项目进展、问题分析、后续改进措施。


20160628114543356.jpg



Q & A  

 

Q1:Oracle数据库迁移到mysql有现成的经验可以放分享吗?

A1:goldengate可以支持oracle到mysql的复制迁移。

 

Q2:ogg12c集成模式怎么保证事物的一致性?

A2:goldengate 源端 抽取进程按照事务 commit 的顺序来抽取数据,目标端也是按照该顺序进行执行,来保持一致性。 

 

Q3:升级后的sql变化(执行计划,性能。。),在12c有没有新特性或好的建议?

A3:12c 在sql plan 这块是有新特性的。如: 自适应执行计划。但实际测试下来,该新特性在某些时候,反而会引起执行计划的变化。所以,测试阶段非常重要. SPA/ DB replay 依然是最佳的工具。

 

Q4:我在用的时候遇到了ora00001错误,当更新和插入一条数据的时候,以前的经典模式好像没发生过。

A4:集成抽取模式,oracle 数据库需要安装补丁。同时也建议使用最新版本,规避已知问题。 OGG出现问题,一般的解决时间较长,从我的个人经验来讲,升级到最新版本可以节省较多的解决问题时间。OGG 建议的补丁: Best Practices and Performance Tuning Recommendations for Oracle GoldenGate Integrated Replicat (Doc ID 1953623.1).pdf

 

Q5:如果需求没那么复杂,OGG 12比OGG 11好么?

A5:OGG 12c支持更多的异构数据库和大数据平台。也  支持ms sql server 2012/2014及mysql社区版;支持从ADG(Oracle Active Data Guard)进行数据捕获。增强的管理和监控:使用ogg plug-in for OEM(oracle enterprise manager),可以在OEM界面中实现GoldenGate的启停、编辑参数文件、查看运行日志等功能。版本越新越好,OGG升级也很方便。

 

周国宏:


  • 【DBA+社群】原创专家团成员

  • Oracle 10g/11g ocm, Oracle ACS 技术架构师,负责国内通讯行业和金融行业大型客户的支持工作。

  • 拥有14年ORACLE数据库架构设计、开发测试、运维经验。专注Oracle数据库升级设计与实施、性能调优、问题诊断、技术培训、高可用架构设计和优化、自动化运维等工作; 同时对甲骨文一体机、Goldengate、Timesten、Mysql、DB12c等产品有丰富的实施和运维经验。



本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2015-12-24

网友评论

登录后评论
0/500
评论
努力酱
+ 关注