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

周国宏 2015-12-24 09:43:41

本文根据12月22日Oracle ACS 技术架构师周国宏老师在【DBA+社群,微信公众号:dbaplus】的主题分享整理!小编特别整理出其中精华内容,供大家学习交流。同时,也非常感谢周国宏老师对DBA+社群给予的大力支持。


目录

  • 升级方案的选型

  • 各个阶段主要任务

  • 项目成功的关键因素




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


第一部 分升级方案的选型


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



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



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

MOS Note:884522.1

1.预检查preupgrd.sql

2.再执行preupgrade_fixups.sql



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



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



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



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

1.跨字节序的迁移:

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

  •  支持oracle5及以上版本

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



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


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

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



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


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

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

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

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



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



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

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



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

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



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



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

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

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



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



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



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

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

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

2.支持12c多用户

3.源库11.2.0.3/4版本

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

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



零停机升级方案



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

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



OGG是付费软件;

Goldengate 12.1 支持 Oracle 11.1.0.6 及以上;

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



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

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



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



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



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



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


第二部分 各阶段主要任务





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


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





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



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



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



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




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等产品有丰富的实施和运维经验。



小编精心为大家挑选了近日最受欢迎的几篇热文:

回复001,看杨志洪《【职场心路】一个老DBA的自白》;

回复002,看丁俊的《【重磅干货】看了此文,Oracle SQL优化文章不必再看!》;

回复003,看胡怡文《PG,一道横跨oltp到olap的梦想之桥》;

回复004,看陈科《memcached&redis等分布式缓存的实现原理》;

回复005,看宋日杰《Oracle后台专家解决library cache锁争用的终极武器》;

回复006,看郑晓辉《存储和数据库不得不说的故事》;

回复007,看袁伟翔《揭秘Oracle数据库truncate原理》;

回复008,看李海翔《MySQL优化案例:半连接(semi join)优化方式导致的查询性能低下》;

回复009,看丁启良《LINUX类主机JAVA应用程序占用CPU、内存过高分析手段》;

回复010,看徐桂林《以应用为中心的企业混合云管理》。


关于DBA+社群

DBA+社群是全中国最大的涵盖各种数据库、中间件及架构师线条的微信社群!有100+专家发起人,建有15大城市微信群,6大专业产品群,多达10000+跨界DBA加入队伍。每天1个热议话题,每周2次线上技术分享,不定期线下聚会与原创专家团干货分享,更多精彩,欢迎关注dbaplus微信订阅号!

扫码关注

DBAplus社群

超越DBA圈子,连接的不仅仅是DBA

活动预告