Oracle跨平台迁移的简单总结

前段时间测试了一下GoldenGate,结合我之前的一些尝试,对于小机环境的迁移,思路是逐步清晰了起来。

需求的核心是跨平台迁移数据库,最好能够升级到新的版本,对于一个核心系统的一主两备,需要保证数据完整性的前提,同时能够尽可能保持在一个较短的维护时间,对此自己也琢磨了很多方案。

想了NFS的方案,在备库端建立一个NFS挂载点,源端指向Linux环境,然后直接Failover,这样数据就能够直接到Linux端,然后做一个跨平台的convert操作


这样就可以尽可能快的切换数据到了Linux端,然后在Linux端转换文件后直接利用TTS的方式导入,如果准备充分,这个过程应该不超过半个小时。

自己还为这种方案而沾沾自喜,最后试了一遍,发现其实不是那么回事。问题的瓶颈在哪里呢,就是跨平台的系统调用接口。

如果在Solaris端使用NFS共享的文件,尝试启动数据库,那么就会没有响应,会抛出一个比较奇怪的问题。


当然自己也坚持不懈查了一些资料,发现真不能这么玩,同时Solaris还可以,跨平台的情况下,还是有很多大大的不同。所以NFS这个方案就点到为止,pass了。

而对于大数据量的数据库做跨平台迁移,还有什么其他的思路吗,XTTS是一种方式,但是这种方案就比较纠结了,几乎是不可实现的,源端的数据库的网卡过旧,IO能力不足,拷贝基本上就是7M每秒的速度,对于一个近1T数据量的数据库做文件拷贝,简直不敢想象。方案虽然可行,但是不可接受。

那么使用Datapump呢,这个方案想比XTTS就更纠结了,传输,导入都更加耗时。如果保守估计,导出,传输,导入,整个过程估计得10多个小时,那我就可以直接下班回家了。

还有什么方案呢,其实还有不少,如果里面的表不多的话,可以直接使用物化视图的增量刷新来玩等。

最后到了我不大擅长的GoldenGate了,最后发现还是这种方式是一种可持续性的,维护时间最短的方案。

首先是全量同步,这个过程可以通过Datapump来完成,为什么选择Datapump呢,就因为是逻辑的,而物理的方式有一定的局限性,可以很轻松实现数据的跨版本导入。

那么问题来了,备库怎么datapump导出,这个不可行啊,我如果直接Failover了,备库就不可用了,还得重搭,这个还是有风险的。

如果你这么想,那就对了,其实可以充分利用闪回数据库的原理,先Failover,然后Datapump导出,完成这个工作之后,闪回继续接受归档,就是这个套路。


这个导入的过程持续10个小时,还是5个小时,都影响不大,因为都是新主库的操作。

而接下来的事情就需要注意了,那就是主库端的增量同步。

使用GoldenGate的意义就在于此。


怎么做增量同步呢,我们在备库端全量同步的时候需要标记一个检查点SCN,后续做增量同步就可以基于这个点来做了。

比如在目标端使用OGG同步,指定基于SCN 1887488就可以选择性同步了。

GGSCI (newtest.oracle.com) 3> start rep_tlbb, aftercsn 1887488

整个过程会保证数据的一致性,而且是一个持续性的同步过程,如果说夸张一些,是零维护时间的迁移式升级。总之,维护时间很短,对于业务端来说是透明的而且完全无感知。

时间: 2024-09-23 14:32:24

Oracle跨平台迁移的简单总结的相关文章

深入浅出XTTS:Oracle数据库迁移升级利器(附PPT)

师介绍  杨光 新炬网络高级工程师   近十年数据库运维.数据分析.数据库设计以及系统规划建设经验. 长期为国内电信运营商的大型IT系统进行系统软件运维.数据架构规划.设计和实施以及大型IT系统数据建模工作. 在大数据平台技术架构以及大数据资产管理方面有着深入的研究.   演讲大纲: 1. 什么是XTTS 2. 适用场景 3. XTTS的基本操作步骤 4. XTTS案例分享   今天主要跟大家分享一下XTTS,我在网上曾看过相关讨论,但发现按网上讲的那些去实际操作的话,还是会遇到一些坑,并不能实

MYSQL到ORACLE程序迁移的注意事项(转载)

mysql|oracle|程序 MYSQL到ORACLE程序迁移的注意事项                                                  2001-09     有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求,应用程序也要相应做一些修改.本人总结出以下几点注意事项,希望对大家有所帮助. 1. 自动增

Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.1

oracle|优化 Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.1        如果在Oracle以前的版本(7.0或更早)中开发应用程序,数据库会采用基于规则的优化器(译者注:以下称RBO),本篇将帮助你理解Oracle优化器并迁移到基于成本优化器(译者注:以下称CBO)的几种高效方法.下面是五大部分的第一部分   第一部分 1.         什么是优化器? 2.         为什么要优化? 3.         可用的优化器. 4.        

从SQL SERVER 向ORACLE 8迁移的技术实现方案

oracle|server  不知道从哪里得到这个文档,有用就放上来了 -gwb  数据库端SQL语法的迁移以下为常用的SQL语法迁移,包括数据类型.ID列向SEQUENCE迁移.表(主键.外键.CHECK.UNIQUE.DEFAULT.INDEX).游标.存储过程.函数.触发器.常用SQL语法与函数几个方面,考虑SQL SERVER的实际情况,没有涉及ORACLE特有的PACKAGE.EXCEPTION等.在以下的描述中,将SQL SERVER的TRANSACT-SQL简称为T-SQL.在OR

基于DB2及PHP的应用系统跨平台迁移详细步骤(一)

本文主要介绍如何完成基于 DB2 的 PHP 应用系统从 AIX 平台到 Linux 平台的移植过程.文中包含了底层的 DB2 数据库移植.上层的 PHP 应用系统移植的详细步骤以及移植过程中可能遇到的问题和解决方法. 任务概述 系统迁移的工作主要分为以下几个方面: 1.DB2 数据库系统的跨平台迁移 2.Apache 服务器与 php 应用系统的安装和配置 下面我们就分 2 个方面分别介绍迁移和配置的具体步骤. DB2 数据库系统的跨平台迁移 数据库环境 源环境:AIX+DB2 v8.1 目标

我们都被骗了,所有的跨平台迁移都可以通过XTTS实现

自从2015年初进行了xtts增量的U2L迁移测试之后,国内很多人都开始利用这种方案进行数据库跨平台迁移了,基本上都是利用Oracle 封装的perl脚本.其中Oracle MOS文档 11G – Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 1389592.1) 明确提到目标端环境必须是Linux, 这里该文档中的一段原话: The source system ma

阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具

背景 08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步. 项目介绍 名称: yugong 译意: 愚公移山 语言: 纯java开发 定位: 数据库迁移 (目前主要支持oracle -> mysql/DRDS) 项目

Oracle Optimizer:迁移到使用基于成本的优化器-----系列2.1

oracle|优化 Oracle Optimizer:迁移到使用基于成本的优化器-----系列2.1   系列之二包含影响优化器选择执行计划的初始化参数和Oracle内部隐藏参数,合理设置这些参数对于优化器是相当重要的.        6.影响优化器的初始化参数        除了生成统计资料之外,下面提及的参数设置在你的系统正常工作中扮演着极重要的角色.这些设置将大多依赖于你想创建何种类型的环境.联机,批处理,数据仓库或多于一个的组合.请注意优化器考虑这些参数以评估每一个在CBO生成的执行计划

Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.2

oracle|优化 Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.2 3.2基于成本的优化器(CBO) 基于成本优化器遵循计算代价的方法学.所有的执行计划随成本标识,优化器选择成本最低的一个.在执行计划中,较高的成本将意味着较高的资源.成本越低,对查询来说越高效.CBO使用所有存储在数据字典中可用的统计资料信息和柱状图,用户提供提示和的参数设置来达成使用的成本,CBO生成所有可能访问方法的排列然后选择最合适的.排列的数量依赖于查询中出现的表数量,有时能达到约80,