ogg oracle to mysql_OGG_Oracle_to_Mysql

OGG

安装 ORACLE11.2.0.4同步数据到MYSQL5.7

服务器配置信息

操作系统

el7.x86_64

el7.x86_64

主机名

oracle11c

mysql

Ip

地址

192.168.31.167

192.168.31.79

数据库版本

Oracle 11.2.0.4.0

5.7.23 (GPL)

数据库字符集

utf8

utf8

数据库实例名

ORCL

mysql

Goldengate

用户/密码

oggorcl/oggorcl

oggmysql/oggmysql

Goldengate

版本

Version 12.2.0.2.2

Version 12.2.0.2.2

安装包名

122022_fbo_ggs_Linux_x64_shiphome.zip

ggs_Linux_x64_MySQL_64bit.tar

迁移目标

JF.TEST

1.软件安装

1.1 ORACLE环境安装OGG

# useradd -g oinstall ogg

# id ogg

# mkdir /u01/app/OGG

# chown -R ogg:oinstall /u01/app/OGG

# unzip 122022_fbo_ggs_Linux_x64_shiphome.zip

# chown -R ogg:oinstall fbo_ggs_Linux_x64_shiphome

1.2 Mysql 环境安装OGG

# grouadd ogg

# useradd -g oinstall ogg

# mkdir OGG

# cd OGG/

# tar -xvf /u01/soft/ggs_Linux_x64_MySQL_64bit.tar

# chown -R ogg:oinstall ../OGG

2. 修改操作系统用户变量

2.1 ORACLE环境修改变量

ORACLE端

export PATH

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export OGG_HOME=/u01/app/OGG

export PATH=$OGG_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH:$OGG_HOME

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=ORCL

2.2 登录测试

ORACLE端

MYSQL端

2.3 测试表建立

ORACLE端

SQL> create tablespace ORCL datafile '/u01/app/oracle/oradata/ORCL/orcl01.dbf' size 200m;

SQL> create user JF identified by manager default tablespace orcl;

SQL> GRANT source,connect TO JF;

SQL> conn jf/manager

SQL> create table TEST (ID int,NAME varchar2(200));

SQL> insert into TEST values (1,'zhansan');

SQL> insert into TEST VALUES (2,'lisi');

SQL> commit;

SQL> col id format 9,999

SQL> col name format a20

SQL> select * from TEST;

MYSQL端

mysql> create database oggmysql;

mysql> create database TEST;

mysql > create user 'oggmysql'@'%' identified by 'oggmysql';

mysql> GRANT ALL ON *.* TO 'oggmysql'@'%';

# mysql -uJF -p

mysql> use TEST

mysql> show tables;

mysql> create table TEST (id int,name varchar(200));

3.配置OGG

3.1 建立OGG数据库用户

ORACLE端

SQL> create tablespace ogg datafile '/u01/app/oracle/oradata/ORCL/ogg01.dbf' size 200M;

SQL> create user oggorcl identified by oggorcl default tablespace ogg;

SQL> grant CONNECT, RESOURCE to oggorcl;

SQL> grant SELECT ANY DICTIONARY, SELECT ANY TABLE to oggorcl;

SQL> grant ALTER ANY TABLE to oggorcl;

SQL> grant FLASHBACK ANY TABLE to oggorcl;

SQL> grant EXECUTE on DBMS_FLASHBACK to oggorcl;

SQL> grant insert any table to oggorcl;

SQL> grant update any table to oggorcl;

SQL> grant delete any table to oggorcl;

SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE;

SQL> grant execute on sys.DBMS_CAPTURE_ADM to oggorcl;

SQL> select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;

SQL> alter database force logging;

SQL> alter database add SUPPLEMENTAL log data;

SQL> select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;

SQL> archive log list;

SQL> shutdown immediate

SQL> startup mount;

SQL> alter database archivelog;

3.2 运行OGG支持DDL脚本

ORACLE端

进入OGG的家目录下执行:

SQL>

@marker_setup.sql

Enter Oracle GoldenGate schema name:oggorcl

SQL>

@ddl_setup.sql

Enter Oracle GoldenGate schema name:oggorcl

SQL>

@role_setup.sql

Enter Oracle GoldenGate schema name:oggorcl

SQL> @ddl_enable.sql

3.3 创建OGG管理目录

ORACLE端

[ogg@oracle11c OGG]$ ./ggsci

GGSCI (oracle11c.vastdata.com) 1> create subdirs

MYSQL端

[ogg@mysql OGG]$ ./ggsci

GGSCI (mysql.vastdata.com.cn) 1> create subdirs

注:

名字

用途

dirprm

存放OGG参数配置信息

dirrpt

存放进程报告文件

dirchk

存放检查点文件

dirpcs

存放进程状态文件

dirsql

存放SQL脚本文件

dirdef

存放DEFGEN工具生成的数据定义文件

dirdat

存放Trail文件,也就是captue进程捕获的日志文件

dirtmp

当事务需要的内存超过已分配内存时,默认存放在这个目录

3.4 源端添加表级TRANDATA

添加表级的trandata可以理解为需要将哪些用户的哪些表和目标库同步,其实也是添加表级的supplemental log。

ORACLE端

> dblogin USERID oggorcl,PASSWORD oggorcl

> add trandata JF.test

> INFO TRANDATA JF.*

3.5 配置MGR管理进程

ORACLE端

> EDIT PARAMS MGR

添加内容如下

PORT 7809

PURGEOLDEXTRACTS /u01/app/OGG/dirdat, USECHECKPOINTS

> view params MGR

MYSQL端

> EDIT PARAMS MGR

添加内容如下

PORT 7809

PURGEOLDEXTRACTS /u01/OGG/dirdat, USECHECKPOINTS

ACCESSRULE, PROG *, IPADDR 192.168.31.167, ALLOW

> view params MGR

> start mgr

> info mgr

注:

PORT:7809                         OGG管理进程的监控端口

PURGEOLDEXTRACTS         清理不需要的TRAIL文件

../dirdat                              trail文件存放位置

USECHECKPOINTS              使用检查点队列

3.6 配置初始化数据进程

ORACLE端

> ADD EXTRACT EINI_1, SOURCEISTABLE

> INFO EXTRACT *, TASKS

> EDIT PARAMS EINI_1

添加内容如下

EXTRACT EINI_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

SETENV (ORACLE_SID=ORCL)

USERID oggorcl, PASSWORD oggorcl

RMTHOST 192.168.31.79, MGRPORT 7809

RMTTASK REPLICAT, GROUP RINI_1

TABLE JF.test;

> view PARAMS EINI_1

注:

EXTRACT EINI_1 :         说明这是个EXTRACT进程,名字是EINI_1

SETENV                       环境变量,一定要设置和数据库字符集一致,否则可能造成乱码

USERID                        数据库OGG用户

PASSWORD                 数据库OGG用户的密码

RMTHOST                   目标地址

MGRPORT                   目标端MGR管理进程监听的端口

RMTTASK REPLICAT     目标端REPLIC应用进程的组合名字

TABLE                          源端要初始化数据的表的名字

3.7 配置目标端REPLICAT进程

MYSQL端

> EDIT PARAMS RINI_1

添加内容如下

REPLICAT RINI_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

DBOPTIONS HOST 192.168.31.79,CONNECTIONPORT 3306

ASSUMETARGETDEFS

TARGETDB TEST ,USERID oggmysql, PASSWORD oggmysql

DISCARDFILE /u01/OGG/dirrpt/RINIaa.dsc, PURGE

MAP JF.*, TARGET TEST.*;

> view params RINI_1

> add replicat RINI_1,specialrun

REPLICAT                     RINI_1           说明这是REPLICAT应用进程,名字叫RINI_1

SETENT                       语言变量

ASSUMETARGETDEFS  告诉OGG目标端和源端需要同步的表的结构完全一致。

USERID\PASSOWRD    账号|密码

DICCARDFILE               错误信息存放的位置以及命名规则

MAP                            源端捕获的表的名字

TARGET                       目标端同步标的名字,可以不在一个SCHEMA

3.8 初始化数据

ORACLE端

> START EXTRACT EINI_1

> view report EINI_1

MYSQL端

mysql> select * from TEST;

3.9 配置OGG的检查点

此步骤不是必须的,但是为了让OGG网络中断、服务器宕机、掉电等在突发情况也能正确断点续传,ORACLE建议配置OGG的检查点队列。

ORACLE端

> EDIT PARAMS ./GLOBALS

添加如下内容

CHECKPOINTTABLE oggorcl.ggschkpt

> ADD CHECKPOINTTABLE oggorcl.ggschkpt

> info CHECKPOINTTABLE oggmysql.ggschkpt

登录数据库检查

MYSQL端

> dblogin SOURCEDB oggmysql USERID oggmysql,PASSWORD oggmysql

> EDIT PARAMS ./GLOBALS

添加内容如下:

CHECKPOINTTABLE oggmysql.ggschkpt

>

ADD CHECKPOINTTABLE oggmysql.ggschkpt

登录数据库检查

3.10 源端配置捕获进程

现在已经可以配置数据同步了,下面在源端配置捕获进程。

ORACLE端

> EDIT PARAMS EORA_1

添加内容如下:

EXTRACT EORA_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

SETENV (ORACLE_SID=ORCL)

USERID oggorcl, PASSWORD oggorcl

EXTTRAIL /u01/app/OGG/dirdat/aa

TABLE JF.test;

> ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW

> ADD EXTTRAIL /u01/app/OGG/dirdat/aa,EXTRACT EORA_1,MGEABYTES 5

启动源端捕获进程EORA_1

> START EXTRACT EORA_1

> INFO EXTRACT EORA_1

3.11 源端配置PUMP传输进程

> EDIT PARAMS PORA_1

> view PARAMS PORA_1

添加内容如下:

EXTRACT PORA_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

PASSTHRU

RMTHOST 192.168.31.79, MGRPORT 7809

RMTTRAIL /u01/OGG/dirdat/pa

TABLE JF.test;

添加PUMP进程PORA_1到OGG,并指定本地TRAIL的路径

> ADD EXTRACT PORA_1, EXTTRAILSOURCE /u01/app/OGG/dirdat/aa

为PUMP进程PORA_1指定传输到目标端的文件路径及格式

> ADD RMTTRAIL /u01/OGG/dirdat/pa, EXTRACT PORA_1, MEGABYTES 5

> START EXTRACT PORA_1

> INFO EXTRACT PORA_1

3.12目标端配置同步进程

MYSQL端

> EDIT PARAMS RORA_1

添加内容如下:

REPLICAT RORA_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

DBOPTIONS HOST 192.168.31.79,CONNECTIONPORT 3306

TARGETDB TEST ,USERID oggmysql, PASSWORD oggmysql

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE /u01/OGG/dirrpt/RORA_aa.DSC, PURGE

MAP JF.*, TARGET TEST.*;

添加应用进程

> add replicat RORA_1,exttrail /u01/OGG/dirdat/pa, checkpointtable oggmysql.ggschkpt

> START REPLICAT RORA_1

> INFO REPLICAT RORA_1

4.验证

4.1 进程状态检查

ORACLE端

> info all

MYSQL端

> info all

4.2 数据验证

ORACLE端

MYSQL端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值