0
点赞
收藏
分享

微信扫一扫

Oracle GoldenGate(OGG)增量同步

一天清晨 2024-10-15 阅读 43

这种迁移方式适合大批量的大表或者需要增量同步的表进行迁移,支持全量初始化+Oracle GoldenGate(OGG)增量同步,通过navicat工具进行Oracle-->MySQL表结构转化,再通过数据同步工具OGG进行全量表初始化以及后续的增量同步。


注意:使用增量方式同步的表都需要有主键,确保每行数据的唯一。


先使用navicat进行表结构的转化,具体参考迁移方式二里面的步骤。


Oracle源端配置OGG准备


1 数据库开启归档模式

---查看是否开启归档模式

archive log list

---开启归档模式

startup mount

alter database archvielog ;

alter database open;


2 数据库开启force_logging

---查看是否开启force logging

select force_logging from v$database;

----开启force logging

alter database force logging;

alter system switch logfile;


3 数据库开启补充日志supplemental logging

---查看补充日志

SELECT supplemental_log_data FROM v$database;  

---开启补充日志

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;  

Alter system switch logfile;

4 开启ogg参数

alter system set enable_goldengate_replication=true scope=both;

5 配置stream_pool大小

(MAX_SGA_SIZE * # of integrated Extracts) + 25% head room  

For example, using the default values for the MAX_SGA_SIZE with two integrated Extracts:  

( 1GB * 2 ) * 1.25  = 2.50GB STREAMS_POOL_SIZE = 2560M

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

MySQL目标端配置OGG准备


1 开启bin_log

---确认是否开启bin_log

show variables like 'log_bin';

2 开启bin_log(需要重启生效)

在my,cnf 中 [mysqld]  添加如下

[mysqld]

# binlog configuration

log-bin = /usr/local/var/mysql/logs/mysql-bin.log

expire-logs-days = 14

max-binlog-size = 500M

server-id = 1


2 确认binlog_format

----确认格式为row

show variables like 'binlog_format';


3 确认sql_mode  

----确认包含STRICT_TRANS_TABLES

show variables like 'sql_mode';


4 确认版本

----确认版本,5.7.10之后才支持部分DDL

(CREATE TABLE, ALTER TABLE, and DROP TABLE operations are supported.)

select version();

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

创建ogg同步用户


1 oracle源端同步用户创建


create tablespace ogg_tbs datafile size 1g;

create user ogg identified by "oggoracle";

grant resource,dba,connect to ogg;

1.

2.

3.

2 mysql目标端同步用户创建


CREATE USER ogg IDENTIFIED by "oggmysql";

GRANT ALL PRIVILEGES ON *.* TO 'ogg'@'%';

1.

2.

Oracle源端安装ogg软件


1 配置环境变量


---/home/oracle/.bash_profile

export OGG_HOME=/u01/app/ogg

export PATH=$OGG_HOME:$PATH

1.

2.

3.

2 解压安装ogg软件


---解压安装ogg软件,安装包:p31766135_191004_Linux-x86-64.zip

cd /tmp/  

unzip p31766135_191004_Linux-x86-64.zip  

cd 31766135/

mv files/* /u01/app/ogg/

---验证

oracle@rac19b ~]$ ggsci  


Oracle GoldenGate Command Interpreter for Oracle

Version 19.1.0.0.4 31637694_FBO

Linux, x64, 64bit (optimized), Oracle 19c on Aug 19 2020 20:08:53

Operating system character set identified as UTF-8.


Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.


GGSCI (rac19b) 1>

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

3 创建ogg配置目录


GGSCI (rac19b) 10> create subdirs


Creating subdirectories under current directory /home/oracle


Parameter file                 /u01/app/ogg/dirprm: created.

Report file                    /u01/app/ogg/dirrpt: created.

Checkpoint file                /u01/app/ogg/dirchk: created.

Process status files           /u01/app/ogg/dirpcs: created.

SQL script files               /u01/app/ogg/dirsql: created.

Database definitions files     /u01/app/ogg/dirdef: created.

Extract data files             /u01/app/ogg/dirdat: created.

Temporary files                /u01/app/ogg/dirtmp: created.

Credential store files         /u01/app/ogg/dircrd: created.

Masterkey wallet files         /u01/app/ogg/dirwlt: created.

Dump files                     /u01/app/ogg/dirdmp: created.


GGSCI (rac19b) 11>

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

4 启动MGR进程


---编辑mgr配置

cd /u01/app/ogg/

./ggsci

GGSCI (rac19b) 1> edit params mgr

---配置以下参数

PORT 7809  

autorestart extract * ,waitminutes 2,resetminutes 5

PURGEOLDEXTRACTS  /u01/app/ogg/dirdat/*,USECHECKPOINTS,MINKEEPDAYS 5

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45  

---启动mgr进程

GGSCI (rac19b) 1> start mgr

Manager started.


GGSCI (rac19b) 2> info all


Program     Status      Group       Lag at Chkpt  Time Since Chkpt


MANAGER     RUNNING

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

MySQL目标端安装ogg软件


1 配置环境变量


---/etc/profile

export OGG_HOME=/opt/ogg

export PATH=$OGG_HOME:$PATH

1.

2.

3.

2 解压安装ogg软件


---解压安装ogg软件,安装包:ggs_Linux_x64_MySQL_64bit.tar  

cd ogg/

tar xvf /tmp/ggs_Linux_x64_MySQL_64bit.tar  

---验证

[mysql@rac19a ~]$ ggsci  


Oracle GoldenGate Command Interpreter for MySQL

Version 19.1.0.0.3 OGGCORE_19.1.0.0.0_PLATFORMS_190907.0144

Linux, x64, 64bit (optimized), MySQL Enterprise on Sep  7 2019 08:41:32

Operating system character set identified as UTF-8.


Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

3 创建ogg配置目录


GGSCI (rac19a) 1> create subdirs


Creating subdirectories under current directory /home/mysql


Parameter file                 /opt/ogg/dirprm: created.

Report file                    /opt/ogg/dirrpt: created.

Checkpoint file                /opt/ogg/dirchk: created.

Process status files           /opt/ogg/dirpcs: created.

SQL script files               /opt/ogg/dirsql: created.

Database definitions files     /opt/ogg/dirdef: created.

Extract data files             /opt/ogg/dirdat: created.

Temporary files                /opt/ogg/dirtmp: created.

Credential store files         /opt/ogg/dircrd: created.

Masterkey wallet files         /opt/ogg/dirwlt: created.

Dump files                     /opt/ogg/dirdmp: created.

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

4 启动MGR进程


---编辑mgr配置

cd /opt/ogg/

./ggsci

GGSCI (rac19b) 1> edit params mgr

---配置以下参数

PORT 7809  

AUTOSTART REPLICAT *

AUTORESTART REPLICAT *,RETRIES 5,WAITMINUTES 2,RESETMINUTES 10

PURGEOLDEXTRACTS  /opt/ogg/dirdat/*,USECHECKPOINTS,MINKEEPDAYS 5

ACCESSRULE, PROG *, IPADDR 192.168.2.*, ALLOW

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

---启动mgr进程

GGSCI (rac19a) 2> start mgr

Manager started.



GGSCI (rac19a) 3> info all


Program     Status      Group       Lag at Chkpt  Time Since Chkpt


MANAGER     RUNNING

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

5 配置全局文件以及检查表


---ogg连接MySQL

GGSCI (rac19a DBLOGIN as ogg) 8> dblogin sourcedb db1@192.168.2.201:3306,userid ogg,password oggmysql

Successfully logged into database.

---创建检查表

GGSCI (rac19a DBLOGIN as ogg) 9> ADD CHECKPOINTTABLE db1.checkpoint


Successfully created checkpoint table db1.checkpoint.


GGSCI (rac19a DBLOGIN as ogg) 10>  

---配置文件设置全局检查表

GGSCI (rac19a DBLOGIN as ogg) 10> edit params ./GLOBALS  

---添加以下配置

CHECKPOINTTABLE db1.checkpoint

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

Oracle源端配置抽取以及投递进程(增量进程)


1 对同步表添加补充日志


---ogg连接Oracle

GGSCI (rac19b) 3> dblogin userid ogg password oggoracle  

Successfully logged into database.

---为表test.test1添加同步日志

GGSCI (rac19b as ogg@testdb) 4> add trandata test.test1    


2022-10-13 13:08:58  INFO    OGG-15132  Logging of supplemental redo data enabled for table TEST.TEST1.


2022-10-13 13:08:58  INFO    OGG-15133  TRANDATA for scheduling columns has been added on table TEST.TEST1.


2022-10-13 13:08:58  INFO    OGG-15135  TRANDATA for instantiation CSN has been added on table TEST.TEST1.


2022-10-13 13:08:59  INFO    OGG-10471  ***** Oracle Goldengate support information on table TEST.TEST1 *****  

Oracle Goldengate support native capture on table TEST.TEST1.

Oracle Goldengate marked following column as key columns on table TEST.TEST1: ID.

---为表test.test2添加同步日志

GGSCI (rac19b as ogg@testdb) 5> add trandata test.test2


2022-10-13 13:09:04  INFO    OGG-15132  Logging of supplemental redo data enabled for table TEST.TEST2.


2022-10-13 13:09:04  INFO    OGG-15133  TRANDATA for scheduling columns has been added on table TEST.TEST2.


2022-10-13 13:09:04  INFO    OGG-15135  TRANDATA for instantiation CSN has been added on table TEST.TEST2.


2022-10-13 13:09:04  INFO    OGG-10471  ***** Oracle Goldengate support information on table TEST.TEST2 *****  

Oracle Goldengate support native capture on table TEST.TEST2.

Oracle Goldengate marked following column as key columns on table TEST.TEST2: ID.


GGSCI (rac19b as ogg@testdb) 6>

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

2 创建EXTRACT抽取进程  


GGSCI (rac19b as ogg@testdb) 6> add extract E_TEST tranlog,begin now,threads 1

EXTRACT added.


GGSCI (rac19b as ogg@testdb) 7> add exttrail ./dirdat/es,extract E_TEST,megabytes 1000

EXTTRAIL added.


GGSCI (rac19b as ogg@testdb) 8> info all


Program     Status      Group       Lag at Chkpt  Time Since Chkpt


MANAGER     RUNNING                                            

EXTRACT     STOPPED     E_TEST      00:00:00      00:00:20

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

3 设置EXTRACT抽取进程参数


GGSCI (rac19b) 2> edit params e_test


extract E_TEST

SETENV (ORACLE_HOME = "/u01/app/oracle/product/19.0.0/dbhome_1")

SETENV (ORACLE_SID = "testdb")

SETENV (NLS_LANG = "AMERICAN_AMERICA.AL32UTF8")

userid ogg, password oggoracle

exttrail ./dirdat/es


gettruncates  

TRANLOGOPTIONS INCLUDEREGIONID,EXCLUDEUSER ogg

TRANLOGOPTIONS BUFSIZE 2048000

TRANLOGOPTIONS DBLOGREADER,DBLOGREADERBUFSIZE 2048000


DISCARDFILE ./dirrpt/E_TEST.dsc,APPEND,MEGABYTES 1000

DISCARDROLLOVER AT 6:00

REPORTROLLOVER AT 6:00

REPORTCOUNT EVERY 1 HOURS,RATE



FETCHOPTIONS MISSINGROW ABEND

STATOPTIONS REPORTFETCH


WARNLONGTRANS 1H,CHECKINTERVAL 10m                                                


DYNAMICRESOLUTION

TABLE  TEST.TEST1;

TABLE  TEST.TEST2;

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

4 创建EXTRACT投递进程  


GGSCI (rac19b) 3> add extract P_TEST,exttrailsource ./dirdat/es

EXTRACT added.


GGSCI (rac19b) 4> add RMTTRAIL ./dirdat/rs,ext P_TEST,megabytes 1000

RMTTRAIL added.


GGSCI (rac19b) 5>

1.

2.

3.

4.

5.

6.

7.

5 设置EXTRACT投递进程参数


extract P_TEST

userid ogg, password oggoracle

rmthost 192.168.2.201, mgrport 7809

rmttrail /opt/ogg/dirdat/rs

passthru


DISCARDFILE ./dirrpt/P_TEST.dsc,APPEND,MEGABYTES 1000

DISCARDROLLOVER AT 6:00


REPORTROLLOVER AT 6:00

REPORTCOUNT EVERY 1 HOURS,RATE


TABLE  TEST.TEST1;

TABLE  TEST.TEST2;

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

6 启动源端抽取以及投递进程


---启动抽取以及投递进程

GGSCI (rac19b) 8> start *test


Sending START request to MANAGER ...

EXTRACT E_TEST starting


Sending START request to MANAGER ...

EXTRACT P_TEST starting


---确认状态正常running

GGSCI (rac19b) 14> info all


Program     Status      Group       Lag at Chkpt  Time Since Chkpt


MANAGER     RUNNING                                            

EXTRACT     RUNNING     E_TEST      00:00:02      00:00:07    

EXTRACT     RUNNING     P_TEST      00:00:00      00:00:03    


GGSCI (rac19b) 15>  

---确认目标端能接收到队列文件


[mysql@rac19a dirdat]$ ls -rlth

total 20K

-rw-r----- 1 mysql mysql 19K Oct 13 13:24 rs000000000

[mysql@rac19a dirdat]$

-----------------------------------


举报

相关推荐

0 条评论