本文永久地址 https://www.askmac.cn/?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
- 其他:
–迁移时机中的应用没有更改
项目中的迁移需求
目标与实现
对实际成绩以及结果的考察
需求・问题以及 GoldenGate
- 可以一口气解决多个需求问题的有潜力的产品
- 根据技术人员idea可以扩展可能性的产品
- 如何高效使用、如何解决问题以及需求
关于到底应该如何活用GoldeGate的具体内容
我将介绍使用案例image
缩短停机时间
- 定义停机时间
- 缩短停机时间的途径
- 事例中实际应用的整体图
迁移任务以及停机时间
为何需要较长的停机时间
为了保障所做的各种操作所需要的时间
- 行迁移需要较长时间
- 依赖数据量以及环境数、尺寸等会增加
- 迁移后确认所需要的时间
停机时间是指什么
无法提供服务的期间
服务停止到重新启动的时间,那么为何需要停止服务呢?
迁移任务以及停机时间
缩短的途径
- 缩短停机时间的途径
- 从当天的工作中去除
- 从关键路径中排除
- 从当天的工作中去除
- 缩短当天作业
- 分割・并行・自动化・最优化
缩短途径后的image
实现执行数据前提
将任务Serialize化的理由
考察问题点
数据迁移以及停机
一些较难实现的要点
- 需要识别同步开始的要点
- 需要仅仅抽出半自动差分事务(数据)
- 对于重复事务(数据)的需要认真设计以及控制
- 控制的设计较难
为了实现的结构
GoldenGate 的增量同步
- 可以同步特定时间以及事务后的数据
–实现对大量时间进行初期迁移/执行更新
- 可以解决重复事务(HANDLECOLLISIONS)
- 指定的schema以及对象,可以通过详细分割列以及行等来实现同步
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
数据迁移以及停机时间
较难实现的要点
- 需要识别同步开始的要点
- 需要仅仅抽出半自动差分事务(数据)
- 对于重复事务(数据)的需要认真设计以及控制
- 控制的设计较难
- 活用GoldenGate 来轻松地使用
解决问题以及GoldenGate
事先执行数据迁移
活用GoldenGate 的结构可以简单安装
仅对增量Transaction
从关键路径中排除数据迁移
不需要设计增量抽出,以及精细制作
事先执行数据完整性比较
将任务Serialize化的理由
考察问题点
比较完整性以及停机时间
比较难实现的要点
- 需要比较、确认完整性的断面使其一致
–要用怎样的单位来比较
–处理中的事务该如何处置?(提供24小时服务)
为了实现的结构
Database 以及 GoldenGate
GoldenGate 的 Tokens 选项
设定时操作的概要
- 对于已指定的对象,可以抽出 Oracle DB SCN (Source DB 側)
–通过设置,可以在Trail文件中输出被 Capture的Source中的 SCN
– 使用Logdump Utility可以确认 Token 信息
–指定通过其他的工具等获得的 SCN来使用时,就需要考虑到使用工具时需要注意的问题
Database的Flashback Query 技术
使用时的操作概要
可以参考过去的时间点中的数据
- 在内部使用UNDO表区域
–对表结构的变更无法返回等限制于回滚表相同
- 仅供参考不可更新
–可以参考已经被删除的行数据(DELETE)
迁移任务与停机时间
比较难以实现的要点
- 需要使得比较的断面一致(完整性确认)
–到底该用怎样的单位比较
–处理中的事务该如何处置
- 通过活用Database以及GoldenGate 的结构来实现
解决问题以及GoldenGate
事先执行数据迁移
活用GoldenGate 的结构可以简单安装
仅对增量Transaction
从关键路径中排除数据迁移
不需要设计增量抽出,以及精细制作
切换前迁移的整体情况
考虑到了缩短停机时间的设计
事先执行数据迁移以及完整性比较
迁移切换完成后的切回
- 需要切回的任务
- 事例中的整体情况
难以切回的原因
考察问题
- 难以获得切换以后的差分数据的同步
- 执行数据整体迁移(返回)时,需要花费较长时间
迁移任务以及切回
切回所需要的时间
=(① [现≫新] 切换以后的数据同步) + (② 切换工作)
① 表示通过GoldenGate 增量同步已经解决了。
【重新连载】为了实现的结构
- 可以同步指定时间以及事务以后的数据
–事先对大量数据进行初始迁移/执行更新
- 可以解决重复事务(HANDLECOLLISIONS)
- 可以同步指定的schema以及object等数据
回切的整体情况
考虑到切回的设计
移动阶段/确认阶段/并行执行
- 通过阶段性的执行来降低风险
- 事例中实际的整体情况
迁移相关的风险对策
风险是什么,具体能做到哪一步
- 将风险最小化、分散化
–担心性能恶化
- 与正式环境相同的状态下是否可以测试(环境・规格・数据)
- 是否可以以日期为间隔测试系统循环
–担心是否是人为错误
- 是否可以分割切换,进行阶段性的发行
- 是否可以以会发生错误为前提,将影响控制到最小
–DB以外的问题的担心
- DB以外的服务器是否无法提前切换
考虑到阶段性迁移/并行执行的设计
在新的正式环境中使用测试
考虑了阶段迁移/并行执行的设计
一个个执行对新正式环境的切换
迁移相关的风险对策
将风险最小化、分散化
–担心性能恶化 à测试新的正式环境
- 与正式环境相同的状态下是否可以测试(环境・规格・数据)
- 是否可以以日期为间隔测试系统循环
–担心是否是人为错误à出现对新环境的切换、一个个执行业务
- 是否可以分割切换,进行阶段性的发行
- 是否可以以会发生错误为前提,将影响控制到最小
–DB以外的问题的担心à对一个个的layer执行新环境的切换
- DB以外的服务器是否无法提前切换
作为问题解决途径的GoldenGate
迁移相关的风险对策
将风险最小化、分散化
–担心性能恶化 à测试新的正式环境
- 与正式环境相同的状态下是否可以测试(环境・规格・数据)
- 是否可以以日期为间隔测试系统循环
–担心是否是人为错误à出现对新环境的切换、一个个执行业务
- 是否可以分割切换,进行阶段性的发行
- 是否可以以会发生错误为前提,将影响控制到最小
–DB以外的问题的担心à对一个个的layer执行新环境的切换
- DB以外的服务器是否无法提前切换
作为问题解决途径的GoldenGate
通过GoldenGate来一口气解决多个需求与问题
–
- 减少停机时间
- 迁移切换后的切回
- 阶段性迁移/阶段性确认/并行运行
通过高效使用GoldenGate
成功实现迁移/更新
–
咨询服务的介绍
本公司的共享的过往成果
- GoldenGate案例中的情况
–几乎所有的案例中都导入/采用了咨询服务
–我们有与Partner合作进行导入的经历
- 主要可以对应的案例(参考)
–用于导入的案例,事先获得PoC的技术支援
–共享在实际项目中累积的经验
–在设计/实际运用中各种Review支援
–详细的参数设计以及使用设计、测试(性能/故障)的支援
–实时性等SLA需求对severe的案例的支持
–对象是旧版本的Oracle Database时
–迁移时的切回相关的设计支持
咨询支持的模型范围
Comment