暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Oracle同步TiDB-GoldenGate.pdf
62
23页
1次
2024-04-13
10墨值下载
背景描述
业务的发展,以及数据的爆发式增长,公司会面临一轮数据库的垂直拆分和水平拆分。拆分后对代码的
侵入性较大,后续的不断扩容让 DBA 的管理成本上升。所以急需既支持关系型数据库 RDBMS 和非关系
型数据库 NoSQL 分布式的存储计算引擎。
TiDB 分布式数据库结合了传统的 RDBMS NoSQL 的最佳特性。首先,高度兼容 MySQL 协议,大多
数情况代码可以直接迁移到 TiDB 分布式数据库,已经分库分表的实例可以在 TiDB 中进行聚合;同时,
TiDB 分布式数据库支持水平弹性扩展,通过简单地增加新节点即可实现 TiDB 分布式数据库的水平扩
展,按需扩展计算节点或存储节点,轻松应对高并发、海量数据场景。
所以基于 TiDB 分布式数据库的上述特性,本文将介绍通过 OGG Oracle 的数据同步到 TiDB 分布式
数据库的相关原理及操作步骤。
5.2.1 环境说明
1. 软件版本
Oracle GoldenGate 12.3.0.1.4 for Oracle on Linux x86-64
Oracle GoldenGate 12.3.0.1.5 for MySQL-compatible DBs on Linux x86-64
本文档以 Oracle 11G 数据库为例,对 Oracle 数据库通过 OGG 同步至 TiDB 分布式数据库中进行说
明。
Oracle 端字符集为 ZHS16GBK
2. 同步过程说明
2.1. 表结构转换
由于 Oracle 中表数据类型与 TiDB 分布式数据库中数据类型不一致,需要预先进行表结构的转换(可以
使用 Navicat 工具)。
2.2. 初始化同步
初始化数据通过 OGG initial load 进程将 Oracle 数据导入到 TiDB 分布式数据库中,如此时 Oracle
据库中仍然有写入操作,则 initial load 开始时间之后的数据变化无法同步,此时需要进行增量的数据同
步,且在同步多张表时,每个表同步的时间并不一致。如采用停机同步(同步期间 Oracle 中表数据不再
变化),仅需要进行初始化同步操作。
2.3. 增量数据同步
在初始化同步的基础上进行后续变化的数据同步,需要在初始化同步之前,先开启日志抽取。由于异构
平台,无法基于统一时间点完成数据初始导入操作,所以在完成初始化导入操作之后需要完整应用开始
initial load 同步之后的所有 log,此时会存在重复执行的问题,OGG 中通过 handlecolisions 参数处理
冲突的场景,保证最终数据的一致性(根据主键或唯一键进行重复的操作可以保证最终数据一致,在缺
少主键的场景可能会导致数据重复)。
3. 源端 Oracle 要求
归档模式
Force logging
ENABLE_GOLDENGATE_REPLICATION 参数为 true (11.2.0.4)
最小补全日志(根据同步数据范围选择)
表级别
Schema 级别
数据库级
用户权限
建议 DBA 角色。
4. 目标端 TiDB 分布式数据库要求
set tidb_constraint_check_in_place = 1;
该参数将 TiDB 分布式数据库中乐观锁模式下的主键冲突检查由 commit 时检查提升为 insert 时检
查,在遇到主键冲突时可配置为忽略冲突,否则在遇到主键冲突时无法忽略,复制进程会
abend。仅需在 OGG 复制进程 session 级别设置,通过配置在复制进程参数中实现,无需全局修
改。
lower-case-table-names = 1
OGG 复制进程需要该参数设置为 1tidb 中修改此参数并未产生实际效果变化,仅为实现兼容。
5. OGG 同步要求
DDL 建表语句需提前转换,并在目标端执行。
如下表的示例:
源端 Oracle
目标端 TiDB 分布式数据库
5.2.2 环境准备
1. OGG 安装 - Oracle
解压安装包
create table account (
account_number   number(10,0),
account_balance   decimal(38,2),
account_trans_ts  timestamp(6),
account_trans_type varchar2(30),
primary key (account_number)
using index
);
create table account (
account_number int,
account_balance decimal(38,2),
account_trans_ts timestamp,
account_trans_type varchar(30),
primary key (account_number));
of 23
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜