ogg对同步表添加删除列DDL验证

本文档记录了使用OGG在源端对同步表进行添加和删除列的操作,并在目标端验证了这些DDL变更的同步情况。源端添加新列后,目标端成功同步了新列;源端删除列后,目标端也自动删除了相应列,同步过程无误。
1、源端和目标端状态确认
源端:
GGSCI (rac1) 85> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
EXTRACT     RUNNING     DPFULL      00:00:00      00:00:07    
EXTRACT     RUNNING     EXTFULL     00:00:00      00:00:08    

目标端:
GGSCI (rac2) 101> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
REPLICAT    RUNNING     REPFULL     00:00:00      00:00:02  


2、源端对同步表添加新列(无需停止OGG)
SQL> select * from test.a;
        ID NA
---------- --
         1 a
         2 a
         3 a
         4 a
         5 a
         6 a
6 rows selected.

SQL> alter table test.a add (sex int);
Table altered.

3、目标端查询验证添加列同步正常
SQL> desc test.a
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER(38)
 NAME                                               VARCHAR2(2)
 SEX                                                NUMBER(38)


SQL> /
        ID NA        SEX
---------- -- ----------
         1 a
         2 a
         3 a
         4 a
         5 a
         6 a
6 rows selected.

4、源端删除列
SQL> alter table test.a drop column sex;
Table altered.

5、目标端自动删除列验证
SQL> desc test.a
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER(38)
 NAME                                               VARCHAR2(2)

SQL> /
        ID NA
---------- --
         1 a
         2 a
         3 a
         4 a
         5 a
         6 a
6 rows selected.
在 Oracle 19c 环境中使用 Oracle GoldenGate 进行 DDL 同步测试时,需要完成一系配置以确保数据库与目标数据库之间的结构变更(如表的创建、修改或删除)能够正确复制。以下是详细的测试方法及配置步骤: ### 配置环境准备 - **开启归档日志** 在和目标均需执行以下操作以启用归档日志模式: ```sql SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; ``` - **开启强制日志和附加日志** 为了确保 GoldenGate 能够捕获所有必要的变更信息,必须启用强制日志记录和补充日志记录: ```sql ALTER DATABASE FORCE LOGGING; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, ALL) COLUMNS; ``` 验证是否成功开启相关功能: ```sql SELECT log_mode, force_logging, supplemental_log_data_min FROM v$database; -- 应返回ARCHIVELOG, YES, YES ``` - **安装 Oracle GoldenGate 软件** 创建 OGG 安装目录并设置权限: ```bash mkdir -p /ogg chown oracle:oinstall /ogg chmod 775 /ogg ``` 解压安装包并进入响应文件目录进行编辑: ```bash unzip V983658-01.zip -d /home/oracle cd /home/oracle/fbo_ggs_Linux_x64_shiphome/Disk1/response vi oggcore.rsp ``` 修改响应文件内容如下: ``` INSTALL_OPTION=ORA19c SOFTWARE_LOCATION=/ogg UNIX_GROUP_NAME=oinstall ``` 执行静默安装: ```bash ./runInstaller -silent -responseFile /home/oracle/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/response/oggcore.rsp ``` ### GoldenGate 参数配置 - **配置 Extract 进程参数文件** 创建 `ext1.prm` 文件,并添加以下内容: ``` EXTRACT ext1 USERID ggate@orcl, PASSWORD ggate EXTTRAIL /ogg/dirdat/lt TABLE scott.emp; ``` 若出现错误 `OGG-02091 Operation not supported because enable_goldengate_replication is not set to true`,则需在数据库级别启用 GoldenGate 复制支持: ```sql ALTER SYSTEM SET enable_goldengate_replication=true SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP; ``` - **配置 Pump 进程参数文件** 创建 `pump1.prm` 文件,并添加以下内容: ``` EXTRACT pump1 RMTHOST target_host, MGRPORT 7809 RMTTRAIL /ogg/dirdat/rt TABLE scott.emp; ``` - **配置 Replicat 进程参数文件** 创建 `rep1.prm` 文件,并添加以下内容: ``` REPLICAT rep1 USERID ggate@orcld, PASSWORD ggate MAP scott.emp, TARGET scott.emp; ``` ### 测试 DDL 同步 - **在执行 DDL 操作** 示例:创建新表并插入数据 ```sql CREATE TABLE test_ddl ( id NUMBER PRIMARY KEY, name VARCHAR2(50) ); INSERT INTO test_ddl VALUES (1, 'Test'); COMMIT; ``` - **验证目标数据一致性** 查询目标数据库确认表结构和数据是否同步成功: ```sql SELECT * FROM test_ddl; ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值