database-migration - AWS DMS 二进制读取器 + Oracle REDO 日志与二进制读取器 + 存档日志
问题描述
我计划使用 AWS Database Migration Service 从本地 Oracle 18c(1.5TB 数据,400TPS)迁移到 AWS 托管的数据库。
根据官方 DMS 文档,DMS Binary Reader 似乎是唯一的选择,因为我们的数据库是一个 PDB 实例,它可以处理 REDO 日志或归档日志作为 Change Data Capture 的来源。
我假设存档日志在 CDC 性能方面会是更好的选择,因为它们的大小比在线 REDO 日志小,但我不确定选择存档日志作为 CDC 源而不是 REDO 日志的其他好处。有人知道吗?
解决方案
Oracle Mining 将挖掘在线重做日志,直到它落后,然后它将挖掘归档日志。CDC 有两个选项,Oracle LogMiner 或 Oracle Binary Reader。通常,除非您有以下情况之一,否则请使用 Oracle LogMiner 迁移您的 Oracle 数据库:
您需要在源 Oracle 数据库上运行多个迁移任务。
源 Oracle 数据库上的更改量或重做日志量很高。使用 Oracle LogMiner 作为源数据库时,LogMiner 中 32 KB 的缓冲区限制会影响在具有大量更改的数据库上捕获更改数据的性能。例如,LogMiner 源数据库每小时 10GB 的更改率可能超过 DMS 更改数据捕获能力。
您的工作负载包括仅更新 LOB 列的 UPDATE 语句。在这种情况下,请使用 Binary Reader。Oracle LogMiner 不支持这些 UPDATE 语句。
您的源是 Oracle 版本 11,并且您对 XMLTYPE 和 LOB 列执行 UPDATE 语句。在这种情况下,您必须使用 Binary Reader。Oracle LogMiner 不支持这些语句。
您正在从 Oracle 12c 迁移 LOB 列。对于 Oracle 12c,LogMiner 不支持 LOB 列,因此在这种情况下使用 Binary Reader。
推荐阅读
- sql - 用同一张表中检查约束的结果改变sql表中元素的条件
- php - Kartik 的 FileInput 小部件上的 Yii2 ActiveForm 验证错误
- iis - IIS 重写规则 - 如果路径没有查询字符串
- amazon-web-services - 如何模拟来自不同位置的连接
- php - 如何在codeigniter中不使用result()或row()获取查询结果
- regex - 正则表达式在字母数字字符串中查找未括在括号中的数字字符串
- c# - 当泛型类型的类型参数在运行时已知时如何编程?
- sql - 在 oracle 中枢轴在 in 之后给出 sql 查询错误
- laravel - 如何在 laravel 的帖子中获取评论的用户名
- azure - 关于 azure 服务管理员角色的说明