本文永久地址 https://www.askmaclean.com/?p=16819    
  • 通过引入GoldenGate所带来的实际成绩与效果
  • 迁移/升级所需要的东西以及产生的问题
  • 作为解决问题的途径之一的 GoldenGate
–减少停机时间 –迁移切换后的切回 –迁移阶段/确认阶段/并行执行   迁移/更新的结果 实际成绩与效果 在机器上计算需要30分钟的切换停止时间缩短为6分钟 成功大幅减少由于减少停机时间锁造成的机会损失 可以在10分钟之内切回之前认为无法实现的切回。 估计人工可以在144人/月的一半以下(有GoldenGate 相关的追加) 通过有效活用资源,成功减少成本 不需要购入、架构用于保存、实验ST的18台机器 成功将偶然性风险限制在最小   灵活使用经验 实现必要条件解决问题实际成绩与效果 「最小化机会损失」「风险最小化」「缩减成本」
  • 有怎样的必要条件以及课题?
  • 怎样解决、实现的?
–为了实现目的所需要的结构 –围绕着解决所采取的idea以及tips 为何这么麻烦而困难?  

迁移/更新的需求以及产生的问题

项目概要
  • 项目概要:
–伴随着机器变更的版本提升
  • 升级的范围:
–OS/DB/Middleware/外部机器等
  • DB相关的结构:
–4节点Oracle Real Application Cluster
  • 应用特性:
–24小时365日online
  • 其他:
–迁移时机中的应用没有更改   oggz1

项目中的迁移需求

目标与实现 项目中的迁移需求  

实际成绩以及结果的考察

需求・问题以及 GoldenGate
  • 可以一口气解决多个需求问题的有潜力的产品
  • 根据技术人员idea可以扩展可能性的产品
  • 如何高效使用、如何解决问题以及需求
关于到底应该如何活用GoldeGate的具体内容 我将介绍使用案例image  

缩短停机时间

  • 定义停机时间
  • 缩短停机时间的途径
  • 事例中实际应用的整体图
迁移任务以及停机时间 为何需要较长的停机时间 为了保障所做的各种操作所需要的时间
  • 行迁移需要较长时间
  • 依赖数据量以及环境数、尺寸等会增加
  • 迁移后确认所需要的时间
停机时间是指什么 无法提供服务的期间 服务停止到重新启动的时间,那么为何需要停止服务呢? oggz2  

迁移任务以及停机时间

缩短的途径 oggz3
  • 缩短停机时间的途径
    • 从当天的工作中去除
      • 从关键路径中排除
  • 缩短当天作业
    • 分割・并行・自动化・最优化
 

缩短途径后的image

oggz4   实现执行数据前提 将任务Serialize化的理由 考察问题点 oggz5

数据迁移以及停机

一些较难实现的要点
  • 需要识别同步开始的要点
  • 需要仅仅抽出半自动差分事务(数据)
  • 对于重复事务(数据)的需要认真设计以及控制
  • 控制的设计较难
  为了实现的结构 GoldenGate 的增量同步
  • 可以同步特定时间以及事务后的数据
–实现对大量时间进行初期迁移/执行更新
  • 可以解决重复事务(HANDLECOLLISIONS)
  • 指定的schema以及对象,可以通过详细分割列以及行等来实现同步
  oggz6 oggz7 HANDLECOLLISIONS 参数
  • 试着解决重复记录、失踪记录的错误
  • 检测重复记录・错误
–由于变更记录的造成的覆盖(我们判断为适用变更更加安全)
  • 检测失踪数据、错误
–排除变更记录  
No. 1 2 3 4 5 6 7 8
Source  发行操作 Update PK Update PK Update PK以外 Update PK以外 Insert Insert Delete Delete
Target 同样的Key 有没有记录 没有 没有 没有 没有
OGG Replicat的操作 - (一般操作) 对Insert 变更 - (一般操作) 舍弃Update 对Update变更 - (一般操作) - (一般操作) 舍弃Delete (内部解决Err )
※ 这是有主key的操作概要。主key相关的需要考虑的问题请参考以下内容。 对于没有「KROWN# 153607 [GG]主key、唯一key的表,请注意使用HANDLECOLLISIONS   oggz8   数据迁移以及停机时间 较难实现的要点
  • 需要识别同步开始的要点
  • 需要仅仅抽出半自动差分事务(数据)
  • 对于重复事务(数据)的需要认真设计以及控制
  • 控制的设计较难
  • 活用GoldenGate 来轻松地使用
  解决问题以及GoldenGate 事先执行数据迁移 活用GoldenGate 的结构可以简单安装 仅对增量Transaction 从关键路径中排除数据迁移 不需要设计增量抽出,以及精细制作   oggz9 事先执行数据完整性比较   将任务Serialize化的理由 考察问题点 oggz10 比较完整性以及停机时间 比较难实现的要点
  • 需要比较、确认完整性的断面使其一致
–要用怎样的单位来比较 –处理中的事务该如何处置?(提供24小时服务)   oggz11   为了实现的结构 Database 以及 GoldenGate oggz12   GoldenGate Tokens 选项 设定时操作的概要
  • 对于已指定的对象,可以抽出 Oracle DB SCN (Source DB 側)
–通过设置,可以在Trail文件中输出被 Capture的Source中的 SCN – 使用Logdump Utility可以确认 Token 信息 –指定通过其他的工具等获得的 SCN来使用时,就需要考虑到使用工具时需要注意的问题 oggz13 DatabaseFlashback Query 技术 使用时的操作概要 可以参考过去的时间点中的数据
  • 在内部使用UNDO表区域
–对表结构的变更无法返回等限制于回滚表相同
  • 仅供参考不可更新
–可以参考已经被删除的行数据(DELETE)   oggz14   迁移任务与停机时间 比较难以实现的要点
  • 需要使得比较的断面一致(完整性确认)
–到底该用怎样的单位比较 –处理中的事务该如何处置
  • 通过活用Database以及GoldenGate 的结构来实现
  解决问题以及GoldenGate 事先执行数据迁移 活用GoldenGate 的结构可以简单安装 仅对增量Transaction 从关键路径中排除数据迁移 不需要设计增量抽出,以及精细制作   oggz15   切换前迁移的整体情况 考虑到了缩短停机时间的设计 事先执行数据迁移以及完整性比较 oggz16   迁移切换完成后的切回
  • 需要切回的任务
  • 事例中的整体情况
  难以切回的原因 考察问题
  • 难以获得切换以后的差分数据的同步
  • 执行数据整体迁移(返回)时,需要花费较长时间
  oggz17 迁移任务以及切回 切回所需要的时间 =([现≫新] 切换以后的数据同步) + (② 切换工作)   ① 表示通过GoldenGate 增量同步已经解决了。   重新连载为了实现的结构
  • 可以同步指定时间以及事务以后的数据
–事先对大量数据进行初始迁移/执行更新
  • 可以解决重复事务(HANDLECOLLISIONS)
  • 可以同步指定的schema以及object等数据
oggz18 回切的整体情况 考虑到切回的设计 oggz19   移动阶段确认阶段并行执行
  • 通过阶段性的执行来降低风险
  • 事例中实际的整体情况
  迁移相关的风险对策 风险是什么,具体能做到哪一步
  • 将风险最小化、分散化
–担心性能恶化
  • 与正式环境相同的状态下是否可以测试(环境・规格・数据)
  • 是否可以以日期为间隔测试系统循环
–担心是否是人为错误
  • 是否可以分割切换,进行阶段性的发行
  • 是否可以以会发生错误为前提,将影响控制到最小
–DB以外的问题的担心
  • DB以外的服务器是否无法提前切换
  考虑到阶段性迁移/并行执行的设计 在新的正式环境中使用测试 ogg20   考虑了阶段迁移/并行执行的设计 一个个执行对新正式环境的切换 oggz20 oggz21     oggz22   迁移相关的风险对策 将风险最小化、分散化 –担心性能恶化   à测试新的正式环境
  • 与正式环境相同的状态下是否可以测试(环境・规格・数据)
  • 是否可以以日期为间隔测试系统循环
–担心是否是人为错误à出现对新环境的切换、一个个执行业务
  • 是否可以分割切换,进行阶段性的发行
  • 是否可以以会发生错误为前提,将影响控制到最小
–DB以外的问题的担心à对一个个的layer执行新环境的切换
  • DB以外的服务器是否无法提前切换
  作为问题解决途径的GoldenGate 迁移相关的风险对策 将风险最小化、分散化 –担心性能恶化   à测试新的正式环境
  • 与正式环境相同的状态下是否可以测试(环境・规格・数据)
  • 是否可以以日期为间隔测试系统循环
–担心是否是人为错误à出现对新环境的切换、一个个执行业务
  • 是否可以分割切换,进行阶段性的发行
  • 是否可以以会发生错误为前提,将影响控制到最小
–DB以外的问题的担心à对一个个的layer执行新环境的切换
  • DB以外的服务器是否无法提前切换
  作为问题解决途径的GoldenGate 通过GoldenGate来一口气解决多个需求与问题 –
  • 减少停机时间
  • 迁移切换后的切回
  • 阶段性迁移/阶段性确认/并行运行
通过高效使用GoldenGate 成功实现迁移/更新 –   咨询服务的介绍 本公司的共享的过往成果
  • GoldenGate案例中的情况
–几乎所有的案例中都导入/采用了咨询服务 –我们有与Partner合作进行导入的经历
  • 主要可以对应的案例(参考)
–用于导入的案例,事先获得PoC的技术支援 –共享在实际项目中累积的经验 –在设计/实际运用中各种Review支援 –详细的参数设计以及使用设计、测试(性能/故障)的支援 –实时性等SLA需求对severe的案例的支持 –对象是旧版本的Oracle Database时 –迁移时的切回相关的设计支持     咨询支持的模型范围   oggz23