GoldenGate教程FG052-OGG同步过程中DDL语句处理实战
本文档风哥主要介绍Oracle GoldenGate同步过程中DDL语句的处理方法,包括DDL同步的概念原理、支持范围、参数配置、实施步骤以及常见问题处理,风哥教程参考GoldenGate官方文档Configure配置章节、Parameters参数参考等内容,适合OGG运维人员在生产环境中配置和管理DDL同步。
Part01-基础概念与理论知识
1.1 OGG DDL同步概念与原理
Oracle GoldenGate DDL同步是指在数据同步过程中,同时捕获和应用数据库结构变更(DDL语句)的功能。DDL同步确保源端和目标端的数据库结构保持一致,是OGG高级功能的重要组成部分。更多视频教程www.fgedu.net.cn
- Extract进程捕获源端DDL操作
- DDL语句写入Trail文件
- Replicat进程在目标端执行DDL
- 支持多种DDL类型(CREATE/ALTER/DROP/TRUNCATE等)
- 支持DDL过滤和映射转换
源端数据库 –> Extract进程 –> Trail文件 –> Replicat进程 –> 目标端数据库
| | | | |
DML操作 捕获DML 传输数据 应用数据 执行DML
DDL操作 捕获DDL 传输DDL 执行DDL 结构变更
# DDL同步流程
1. 源端执行DDL语句(如ALTER TABLE)
2. Extract进程捕获DDL操作
3. DDL语句格式化并写入Trail文件
4. Data Pump传输Trail文件到目标端
5. Replicat进程读取DDL语句
6. Replicat在目标端执行DDL
1.2 OGG DDL支持范围与限制
OGG DDL同步支持多种数据库对象和操作类型,但也存在一定限制:
| DDL类型 | 支持程度 | 说明 |
|—————-|—————|————————|
| CREATE TABLE | 完全支持 | 创建表结构 |
| ALTER TABLE | 完全支持 | 修改表结构 |
| DROP TABLE | 完全支持 | 删除表 |
| TRUNCATE TABLE | 完全支持 | 清空表数据 |
| CREATE INDEX | 完全支持 | 创建索引 |
| DROP INDEX | 完全支持 | 删除索引 |
| CREATE VIEW | 部分支持 | 创建视图 |
| ALTER VIEW | 部分支持 | 修改视图 |
| DROP VIEW | 部分支持 | 删除视图 |
# 支持的数据库对象
| 对象类型 | 支持程度 | 说明 |
|—————-|—————|————————|
| TABLE | 完全支持 | 表对象 |
| INDEX | 完全支持 | 索引对象 |
| VIEW | 部分支持 | 视图对象 |
| SEQUENCE | 部分支持 | 序列对象 |
| PROCEDURE | 不支持 | 存储过程 |
| FUNCTION | 不支持 | 函数 |
| TRIGGER | 不支持 | 触发器 |
| PACKAGE | 不支持 | 包 |
# DDL同步限制
1. 不支持存储过程、函数、触发器、包等PL/SQL对象
2. 不支持数据库用户管理DDL(CREATE USER等)
3. 不支持表空间管理DDL(CREATE TABLESPACE等)
4. 异构环境DDL同步需要额外配置
5. DDL操作可能导致同步短暂中断
1.3 OGG DDL处理方式对比
OGG提供多种DDL处理方式,根据业务需求选择合适的方案:
特点:自动同步所有支持的DDL操作
优点:自动化程度高,维护简单
缺点:可能同步不需要的DDL,风险较高
适用:结构变更频繁,需要实时同步
# 方式2:DDL过滤同步
特点:只同步指定的DDL操作
优点:精确控制,降低风险
缺点:配置复杂,需要维护过滤规则
适用:部分DDL需要同步,部分不需要
# 方式3:DDL排除同步
特点:排除指定的DDL操作,同步其他
优点:灵活控制,排除危险操作
缺点:需要明确排除列表
适用:大部分DDL需要同步,少量排除
# 方式4:手动DDL管理
特点:关闭DDL同步,手动管理结构变更
优点:完全控制,风险最低
缺点:维护成本高,容易遗漏
适用:结构变更少,对一致性要求不高
Part02-生产环境规划与建议
2.1 OGG DDL同步规划建议
在生产环境中实施DDL同步前,需要进行详细规划:
- 评估业务对DDL同步的需求
- 确定需要同步的DDL类型
- 评估DDL对同步延迟的影响
- 制定DDL变更管理流程
- 准备DDL同步测试方案
场景1:实时报表系统
– 需求:源端表结构变更需要同步到报表库
– 建议:启用DDL同步,同步CREATE/ALTER/DROP TABLE
场景2:数据仓库系统
– 需求:源端结构变更需要同步到数仓
– 建议:启用DDL同步,但排除TRUNCATE操作
场景3:灾备系统
– 需求:保持灾备库结构与生产库一致
– 建议:启用完整DDL同步
场景4:异构同步(Oracle到MySQL)
– 需求:结构变更需要转换后同步
– 建议:使用DDL映射和转换功能
# DDL同步风险评估
风险1:DDL执行失败导致同步中断
– 缓解:配置DDL错误处理参数
风险2:DDL执行时间过长影响延迟
– 缓解:选择低峰期执行大表DDL
风险3:DDL同步导致数据不一致
– 缓解:充分测试,验证DDL同步正确性
2.2 OGG DDL参数配置规划
DDL同步涉及多个参数配置,需要合理规划:
DDL &
INCLUDE MAPPED OBJTYPE ‘TABLE’ &
INCLUDE MAPPED OBJTYPE ‘INDEX’ &
EXCLUDE OBJNAME ‘FGEDU01.FGEDU_TEMP*’
# 参数说明:
# DDL:启用DDL捕获
# INCLUDE MAPPED:只捕获映射对象的DDL
# OBJTYPE:指定对象类型
# EXCLUDE:排除特定对象的DDL
# Replicat端DDL参数
DDL &
INCLUDE MAPPED &
DDLOPTIONS REPORT &
DDLOPTIONS RETRYOP RETRYDELAY 10 MAXRETRIES 5
# 参数说明:
# DDL:启用DDL应用
# DDLOPTIONS REPORT:报告DDL执行情况
# RETRYOP:DDL执行失败时重试
# RETRYDELAY:重试间隔(秒)
# MAXRETRIES:最大重试次数
# DDL错误处理参数
DDLOPTIONS &
IGNOREAPPLOPS &
IGNOREREPLICATES &
ALLOWUNSAFEDDL &
ALLOWUNKNOWNOBJECTS
2.3 OGG DDL同步前置准备
实施DDL同步前,需要完成以下准备工作:
SQL> SELECT * FROM V$VERSION;
BANNER
——————————————————————————–
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
# 2. 检查OGG用户权限
SQL> SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE=’FGEDU’;
GRANTED_ROLE
——————————
CONNECT
RESOURCE
DBA
EXECUTE_CATALOG_ROLE
# 3. 创建DDL对象(如果需要)
SQL> @/GoldenGate/app/ddl_setup.sql
# 4. 验证DDL对象创建成功
SQL> SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME LIKE ‘GG%DDL%’;
OBJECT_NAME OBJECT_TYPE
—————————— ——————-
GG_DDL_TRIGGER TRIGGER
GG_DDL_TABLE TABLE
GG_DDL_HIST TABLE
# 5. 检查DDL触发器状态
SQL> SELECT TRIGGER_NAME, STATUS FROM USER_TRIGGERS WHERE TRIGGER_NAME=’GG_DDL_TRIGGER’;
TRIGGER_NAME STATUS
—————————— ——–
GG_DDL_TRIGGER ENABLED
# 6. 检查OGG版本
$ ./ggsci -v
Oracle GoldenGate Command Interpreter for Oracle
Version 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054_FBO
Part03-生产环境项目实施方案
3.1 OGG Extract端DDL配置实战
3.1.1 配置Extract进程DDL捕获
GGSCI (fgedu.net.cn)> EDIT PARAMS E_FGEDU01
EXTRACT E_FGEDU01
USERIDALIAS fgedu_alias
EXTTRAIL /GoldenGate/app/dirdat/ef
— DDL配置
DDL &
INCLUDE MAPPED OBJTYPE ‘TABLE’ &
INCLUDE MAPPED OBJTYPE ‘INDEX’ &
EXCLUDE OBJNAME ‘FGEDU01.FGEDU_TEMP*’ &
EXCLUDE OBJNAME ‘FGEDU01.FGEDU_BAK*’
— DML配置
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;
# 步骤2:重启Extract进程
GGSCI (fgedu.net.cn)> STOP E_FGEDU01
Sending STOP request to EXTRACT E_FGEDU01 …
Request processed.
GGSCI (fgedu.net.cn)> START E_FGEDU01
Sending START request to MANAGER …
EXTRACT E_FGEDU01 starting
# 步骤3:验证DDL配置生效
GGSCI (fgedu.net.cn)> INFO E_FGEDU01
EXTRACT E_FGEDU01 Last Started 2026-04-10 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint Oracle Redo Logs
2026-04-10 10:00:00 Seqno 1234, RBA 12345678
SCN 0.123456789 (123456789)
# 步骤4:测试DDL捕获
# 源端执行DDL
SQL> ALTER TABLE fgedu01.fgedu_orders ADD (new_column VARCHAR2(100));
Table altered.
# 查看Extract统计
GGSCI (fgedu.net.cn)> STATS E_FGEDU01, DDL
Sending STATS request to EXTRACT E_FGEDU01 …
DDL operations captured:
ALTER TABLE 1
Total DDL operations 1
3.1.2 配置DDL过滤规则
DDL &
INCLUDE MAPPED OBJNAME ‘FGEDU01.FGEDU_ORDERS’ &
INCLUDE MAPPED OBJNAME ‘FGEDU01.FGEDU_PRODUCTS’
# 场景2:排除临时表DDL
DDL &
INCLUDE MAPPED OBJTYPE ‘TABLE’ &
EXCLUDE OBJNAME ‘FGEDU01.TEMP_*’ &
EXCLUDE OBJNAME ‘FGEDU01.BAK_*’
# 场景3:只同步特定DDL操作
DDL &
INCLUDE MAPPED OBJTYPE ‘TABLE’ OP ‘CREATE’ &
INCLUDE MAPPED OBJTYPE ‘TABLE’ OP ‘ALTER’ &
EXCLUDE MAPPED OBJTYPE ‘TABLE’ OP ‘DROP’
# 场景4:使用DDL过滤文件
DDL INCLUDE ALL
DDLOPTIONS DDLFILE /GoldenGate/app/dirdef/ddl_filter.txt
# DDL过滤文件内容
INCLUDE MAPPED OBJTYPE ‘TABLE’
INCLUDE MAPPED OBJTYPE ‘INDEX’
EXCLUDE OBJNAME ‘FGEDU01.FGEDU_TEMP*’
EXCLUDE OBJNAME ‘FGEDU01.FGEDU_LOG*’
3.2 OGG Replicat端DDL配置实战
3.2.1 配置Replicat进程DDL应用
GGSCI (fgedu.net.cn)> EDIT PARAMS R_FGEDU01
REPLICAT R_FGEDU01
USERIDALIAS fgedu_alias
ASSUMETARGETDEFS
— DDL配置
DDL &
INCLUDE MAPPED &
DDLOPTIONS REPORT &
DDLOPTIONS RETRYOP RETRYDELAY 10 MAXRETRIES 5 &
DDLOPTIONS IGNOREAPPLOPS
— DML配置
MAP fgedu01.fgedu_orders, TARGET fgedu02.fgedu_orders;
MAP fgedu01.fgedu_products, TARGET fgedu02.fgedu_products;
MAP fgedu01.fgedu_customers, TARGET fgedu02.fgedu_customers;
# 步骤2:重启Replicat进程
GGSCI (fgedu.net.cn)> STOP R_FGEDU01
Sending STOP request to REPLICAT R_FGEDU01 …
Request processed.
GGSCI (fgedu.net.cn)> START R_FGEDU01
Sending START request to MANAGER …
REPLICAT R_FGEDU01 starting
# 步骤3:验证DDL同步
# 查看目标端表结构
SQL> DESC fgedu02.fgedu_orders;
Name Null? Type
—————————————– ——– —————————-
ORDER_ID NOT NULL NUMBER
ORDER_STATUS VARCHAR2(50)
ORDER_DATE DATE
AMOUNT NUMBER
NEW_COLUMN VARCHAR2(100)
# 步骤4:检查DDL执行日志
GGSCI (fgedu.net.cn)> STATS R_FGEDU01, DDL
Sending STATS request to REPLICAT R_FGEDU01 …
DDL operations applied:
ALTER TABLE 1
Total DDL operations 1
3.2.2 配置DDL错误处理
REPLICAT R_FGEDU01
USERIDALIAS fgedu_alias
ASSUMETARGETDEFS
DDL &
INCLUDE MAPPED &
DDLOPTIONS REPORT &
DDLOPTIONS RETRYOP RETRYDELAY 10 MAXRETRIES 5 &
DDLOPTIONS IGNOREAPPLOPS &
DDLOPTIONS ALLOWUNSAFEDDL &
DDLOPTIONS ALLOWUNKNOWNOBJECTS &
DDLOPTIONS IGNOREUNKNOWNOBJECTS
MAP fgedu01.fgedu_orders, TARGET fgedu02.fgedu_orders;
MAP fgedu01.fgedu_products, TARGET fgedu02.fgedu_products;
# 参数说明:
# IGNOREAPPLOPS:忽略应用端DDL操作
# ALLOWUNSAFEDDL:允许执行潜在危险的DDL
# ALLOWUNKNOWNOBJECTS:允许处理未知对象
# IGNOREUNKNOWNOBJECTS:忽略未知对象的DDL
# DDL错误处理脚本
DDLOPTIONS DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3
DDLOPTIONS DDLERROR 1430 IGNORE
# 常见DDL错误码处理
# ORA-1430:列已存在,忽略
# ORA-00955:对象已存在,忽略
# ORA-00942:表不存在,重试
3.3 OGG DDL同步验证与测试
# 源端创建表
SQL> CREATE TABLE fgedu01.fgedu_test_ddl (
2 id NUMBER PRIMARY KEY,
3 name VARCHAR2(100),
4 create_date DATE DEFAULT SYSDATE
5 );
Table created.
# 查看Extract捕获
GGSCI (fgedu.net.cn)> STATS E_FGEDU01, DDL
DDL operations captured:
CREATE TABLE 1
Total DDL operations 1
# 验证目标端
SQL> SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME=’FGEDU_TEST_DDL’;
TABLE_NAME
——————————
FGEDU_TEST_DDL
# 测试2:ALTER TABLE同步
# 源端修改表
SQL> ALTER TABLE fgedu01.fgedu_test_ddl ADD (description VARCHAR2(500));
Table altered.
SQL> ALTER TABLE fgedu01.fgedu_test_ddl MODIFY (name VARCHAR2(200));
Table altered.
# 验证目标端
SQL> DESC fgedu02.fgedu_test_ddl;
Name Null? Type
—————————————– ——– —————————-
ID NOT NULL NUMBER
NAME VARCHAR2(200)
CREATE_DATE DATE
DESCRIPTION VARCHAR2(500)
# 测试3:CREATE INDEX同步
# 源端创建索引
SQL> CREATE INDEX fgedu01.idx_fgedu_test_name ON fgedu01.fgedu_test_ddl(name);
Index created.
# 验证目标端
SQL> SELECT INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME=’FGEDU_TEST_DDL’;
INDEX_NAME
——————————
SYS_C001234
IDX_FGEDU_TEST_NAME
# 测试4:DROP同步
# 源端删除索引
SQL> DROP INDEX fgedu01.idx_fgedu_test_name;
Index dropped.
# 验证目标端
SQL> SELECT INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME=’FGEDU_TEST_DDL’;
INDEX_NAME
——————————
SYS_C001234
# 测试5:TRUNCATE同步
# 源端插入数据
SQL> INSERT INTO fgedu01.fgedu_test_ddl VALUES (1, ‘TEST’, SYSDATE, ‘DESC’);
1 row created.
SQL> COMMIT;
Commit complete.
# 源端TRUNCATE
SQL> TRUNCATE TABLE fgedu01.fgedu_test_ddl;
Table truncated.
# 验证目标端
SQL> SELECT COUNT(*) FROM fgedu02.fgedu_test_ddl;
COUNT(*)
———-
0
Part04-生产案例与实战讲解
4.1 OGG DDL同步生产案例
某电商系统OGG DDL同步配置案例:
– 源端:Oracle 19c RAC(生产库)
– 目标端:Oracle 19c 单机(报表库)
– 同步表:200+张业务表
– DDL需求:表结构变更需要同步到报表库
# DDL同步配置
# Extract端配置
EXTRACT E_ECOMM
USERIDALIAS fgedu_alias
EXTTRAIL /GoldenGate/app/dirdat/ec
DDL &
INCLUDE MAPPED OBJTYPE ‘TABLE’ &
INCLUDE MAPPED OBJTYPE ‘INDEX’ &
EXCLUDE OBJNAME ‘FGEDU01.TEMP_*’ &
EXCLUDE OBJNAME ‘FGEDU01.BAK_*’ &
EXCLUDE OBJNAME ‘FGEDU01.LOG_*’ &
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3
TABLE fgedu01.*;
# Replicat端配置
REPLICAT R_ECOMM
USERIDALIAS fgedu_alias
ASSUMETARGETDEFS
DDL &
INCLUDE MAPPED &
DDLOPTIONS REPORT &
DDLOPTIONS RETRYOP RETRYDELAY 10 MAXRETRIES 5 &
DDLOPTIONS IGNOREAPPLOPS &
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 &
DDLERROR 1430 IGNORE &
DDLERROR 955 IGNORE
MAP fgedu01.*, TARGET fgedu02.*;
# DDL同步测试结果
# 1. 添加字段测试
SQL> ALTER TABLE fgedu01.fgedu_orders ADD (promo_code VARCHAR2(50));
— 目标端同步成功,耗时约2秒
# 2. 创建索引测试
SQL> CREATE INDEX fgedu01.idx_orders_date ON fgedu01.fgedu_orders(order_date);
— 目标端同步成功,耗时约5秒
# 3. 修改字段测试
SQL> ALTER TABLE fgedu01.fgedu_orders MODIFY (promo_code VARCHAR2(100));
— 目标端同步成功,耗时约1秒
# DDL同步统计(运行30天)
GGSCI (fgedu.net.cn)> STATS R_ECOMM, DDL, TOTAL
DDL operations applied:
CREATE TABLE 15
ALTER TABLE 128
DROP TABLE 8
CREATE INDEX 45
DROP INDEX 12
TRUNCATE TABLE 23
Total DDL operations 231
from GoldenGate视频:www.itpux.com
4.2 OGG DDL同步常见问题处理
# 错误信息
ERROR OGG-00519 DDL error [ORA-00054: resource busy and acquire with NOWAIT specified].
# 原因分析
目标端有事务正在访问该表,DDL无法获取锁
# 解决方案
# 方案1:配置重试
DDLOPTIONS RETRYOP RETRYDELAY 30 MAXRETRIES 10
# 方案2:等待事务完成后手动重试
GGSCI (fgedu.net.cn)> START R_FGEDU01
# 问题2:DDL对象不存在错误
# 错误信息
ERROR OGG-00519 DDL error [ORA-00942: table or view does not exist].
# 原因分析
目标端缺少对应的表对象
# 解决方案
# 手动在目标端创建表
SQL> CREATE TABLE fgedu02.fgedu_new_table AS SELECT * FROM fgedu01.fgedu_new_table WHERE 1=0;
# 重启Replicat
GGSCI (fgedu.net.cn)> START R_FGEDU01
# 问题3:DDL触发器冲突
# 错误信息
ERROR OGG-00519 DDL error [ORA-04092: cannot COMMIT in a trigger].
# 原因分析
目标端存在触发器与DDL操作冲突
# 解决方案
# 临时禁用触发器
SQL> ALTER TRIGGER fgedu02.trg_orders DISABLE;
# 执行DDL后重新启用
SQL> ALTER TRIGGER fgedu02.trg_orders ENABLE;
# 问题4:DDL同步延迟过大
# 现象
GGSCI (fgedu.net.cn)> INFO R_FGEDU01
REPLICAT R_FGEDU01 Last Started 2026-04-10 10:00:00 Status RUNNING
Checkpoint Lag 00:15:00 (updated 00:00:01 ago)
# 原因分析
大表DDL操作耗时过长
# 解决方案
# 1. 选择低峰期执行大表DDL
# 2. 使用ONLINE选项创建索引
SQL> CREATE INDEX fgedu01.idx_large_table ON fgedu01.fgedu_large(col1) ONLINE;
# 3. 分批执行DDL操作
4.3 OGG DDL同步问题解决方案
#!/bin/bash
# ddl_sync_monitor.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
echo “=== OGG DDL同步监控 ===”
echo “监控时间: $(date)”
echo “”
cd /GoldenGate/app
# 检查DDL统计
echo “1. 检查Extract端DDL捕获…”
./ggsci <
# 2. 查看最后成功的DDL
GGSCI (fgedu.net.cn)> INFO R_FGEDU01, SHOWCH
# 3. 手动修复目标端结构
SQL> ALTER TABLE fgedu02.fgedu_orders DROP COLUMN new_column;
# 4. 跳过错误的DDL
GGSCI (fgedu.net.cn)> ALTER REPLICAT R_FGEDU01, EXTRBA 12345678
# 5. 重启Replicat
GGSCI (fgedu.net.cn)> START R_FGEDU01
Part05-风哥经验总结与分享
5.1 OGG DDL同步最佳实践
根据多年生产环境实战经验,总结以下DDL同步最佳实践:
- 生产环境使用DDL过滤,避免同步危险操作
- 配置DDL错误重试机制
- 大表DDL选择低峰期执行
- 建立DDL变更审批流程
- 定期检查DDL同步状态
# Extract端
DDL &
INCLUDE MAPPED OBJTYPE ‘TABLE’ &
INCLUDE MAPPED OBJTYPE ‘INDEX’ &
EXCLUDE OBJNAME ‘*TEMP*’ &
EXCLUDE OBJNAME ‘*BAK*’ &
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3
# Replicat端
DDL &
INCLUDE MAPPED &
DDLOPTIONS REPORT &
DDLOPTIONS RETRYOP RETRYDELAY 10 MAXRETRIES 5 &
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 &
DDLERROR 1430 IGNORE &
DDLERROR 955 IGNORE
# 最佳实践2:DDL变更管理流程
1. 提交DDL变更申请
2. 评估DDL对同步的影响
3. 在测试环境验证DDL同步
4. 选择合适的执行时间窗口
5. 执行DDL并监控同步状态
6. 验证目标端结构正确性
# 最佳实践3:DDL同步监控指标
– DDL捕获数量
– DDL应用数量
– DDL错误数量
– DDL同步延迟
– DDL执行时间
5.2 OGG DDL同步检查清单
[ ] 数据库版本支持确认
[ ] OGG用户权限确认
[ ] DDL对象创建完成
[ ] DDL触发器启用
[ ] 参数配置正确
[ ] 测试环境验证通过
# DDL同步日常检查
[ ] DDL捕获统计正常
[ ] DDL应用统计正常
[ ] 无DDL错误记录
[ ] 同步延迟正常
[ ] 目标端结构一致
# DDL变更前检查
[ ] 变更申请已审批
[ ] 影响评估已完成
[ ] 回滚方案已准备
[ ] 执行时间已确定
[ ] 监控已就位
5.3 风哥实战经验总结
在多年OGG项目实施过程中,总结以下DDL同步实战经验:
- DDL同步是把双刃剑,需要谨慎配置
- 生产环境务必配置DDL过滤规则
- 大表DDL操作要选择合适的执行时间
- 建立完善的DDL变更管理流程
- 定期备份OGG参数文件和配置
– 使用EXCLUDE排除临时表、备份表
– 配置DDLERROR处理常见错误
– 大表DDL使用ONLINE选项
– 建立DDL变更审批流程
# 经验2:DDL同步性能优化
– 避免高峰期执行大表DDL
– 使用并行DDL(PARALLEL选项)
– 监控DDL执行时间
– 必要时暂停同步执行DDL
# 经验3:DDL同步故障预防
– 定期检查DDL触发器状态
– 监控DDL同步统计
– 建立DDL同步告警
– 准备DDL回滚脚本
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
