暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

OGG实用教程-ORACLE同步到MySQL

原创 范伟林 2024-06-03
2947

前言

Oracle同步到MySQL,源端Oracle配置基本没什么变化,只是目标端OGG配置不同;
可以理解ogg源端抽取和目标端入库是独立的,在异构直接可以互相拼接同步,非常灵活。
异构之间同步不支持DDL。
Mysql作为目标端,配置比较简单;当然ogg也支持MySQL作为抽取端,
MySQL作为抽取端5.7.10以上版本支持DDL,仅是本地捕获,
数据初始化可以使用进程初始化的方式。
基于MySQL体系的国产数据库可以尝试同步,若驱动器变化不大。

一、源端数据库配置(Oracle)

1.1 开启归档

startup mount
alter database archivelog;

note:作为目标端,不capture数据不需要配置

1.2 开启强制日志

alter database force logging;

note:作为目标端,不capture数据不需要配置

1.3 开启数据库最小附加日志

alter database add supplemental log data;

note:作为目标端,不capture数据不需要配置

1.4 配置参数

alter system set enable_goldengate_replication=true;

note:11.2.0.4以上需要配置

1.5 创建OGG用户和表空间

表空间

create tablespace ggtbs datafile '+DATA' size 1g autoextend on;

用户

create user ggadmin identified by ggadmin default tablespace ggtbs quota unlimited on ggtbs;

授权

grant connect,resource to ggadmin;
grant alter session to ggadmin;
grant select any dictionary to ggadmin;
grant select any transaction to ggadmin;
grant select any table to ggadmin;
grant flashback any table to ggadmin;
grant alter any table to ggadmin;
exec dbms_goldengate_auth.grant_admin_privilege('GGADMIN','*',TRUE)

note:除了必要权限,其他权限可以根据实际情况而定。

二、源端OGG配置(Oracle)

2.1 创建用户和目录

groupadd oinstall

用户

useradd -g oinstall oracle
passwd oracle

目录

mkdir /ogg/oraclient -p
mkdir /ogg/ogg191
mkdir /ogg/oraInventory
chown oracle:oinstall -R /ogg
chmod 775 -R /ogg

2.2 配置环境变量

export ORACLE_HOME=/ogg/oraclient/instantclient_11_2
export GG_HOME=/ogg/ogg191
export LD_LIBRARY_PATH=$ORACLE_HOME:$GG_HOME
export PATH=$ORACLE_HOME:$GG_HOME:$PATH
alias ggsci='cd GG_HOME; ggsci'

2.3 Oracle客户端静默安装

note:最基础客户端包即可

unzip -d /ogg/oraclient instantclient-basic-linux.x64-11.2.0.4.0

2.4 OGG静默安装

解压

unzip 19.1.0.0.4-for-Oracle-on-Linux x86-64

编辑响应文件

vi /home/oracle/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp

INSTALL_OPTION=ORA11g
SOFTWARE_LOCATION=/ogg/ogg191
START_MANAGER=
MANAGER_PORT=
DATABASE_LOCATION=
INVENTORY_LOCATION=/ogg/oraInventory
UNIX_GROUP_NAME=oinstall

静默安装

./runInstaller -silent -showProgress -responseFile /home/oracle/fbo_ggs_Linux_x64_shiphom

2.5 配置TNS

创建目录

mkdir -p /ogg/oraclient/instantclient_11_2/network/admin

配置tnsnames.ora

vi tnsnames.ora

WLDB=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXX)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = WLDB)
    )
  )

2.6 创建ogg目录

登录ogg交互工具

ggsci


创建目录

create subdirs

2.7 配置MGR进程

编辑参数

edit param mgr

PORT 7809 
DYNAMICPORTLIST 7810-7899
AUTORESTART ER *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

启动

start mgr

查看

info all

2.8 配置用户凭证

配置

add credentialstore
alter credentialstore add user ggadmin@wldb, password Oggadmin_#123 alias wldb
alter credentialstore add user ggadmin@target, password Oggadmin_#123 alias target


验证

dblogin useridalias wldb

2.9 配置extract进程

添加附加日志

dblogin useridalias wldb
add trandata test.*

添加进程

add extract wl_e, tranlog, begin now,threads 2    --节点数
add exttrail  ./dirdat/wl, extract wl_e, MEGABYTES 1024

配置参数

edit param wl_e

EXTRACT wl_e
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERIDALIAS wldb
TRANLOGOPTIONS  dblogreader
LOGALLSUPCOLS
GETTRUNCATES
EXTTRAIL ./dirdat/wl
DISCARDFILE ./dirrpt/wl_e.dsc, APPEND, MEGABYTES 1024
WARNLONGTRANS 1H, CHECKINTERVAL 5M
CACHEMGR CACHESIZE 1024MB, CACHEDIRECTORY ./dirtmp
REPORTCOUNT EVERY 60 SECONDS, RATE

TABLE test.*;

Note:dblogreader最低支持版本为11.2.0.4,通过数据字典的方式获取日志信息,需要select any transaction权限
启动

start wl_e

查看

info all

2.10 配置pump进程

添加进程

add extract wl_p EXTTRAILSOURCE  ./dirdat/wl
add rmttrail /ogg/ogg191/dirdat/wl  extract wl_p MEGABYTES 1024

编辑参数

edit param wl_p

EXTRACT wl_p
DISCARDFILE ./dirrpt/wl_p.dsc, APPEND, MEGABYTES 1024
RMTHOST 192.168.3.132, MGRPORT 7809
RMTTRAIL /ogg/ogg191/dirdat/wl
PASSTHRU

TABLE test.*;

启动进程

start wl_p

查看

info all

三、目标端OGG配置(MySQL)

事先创建好需要同步的数据库,本次案例数据库为testdb,
可以为远程入库方式

3.1 创建ogg用户

CREATE USER 'ogg'@'192.168.1.14' IDENTIFIED BY 'oracle'; 

GRANT ALL PRIVILEGES ON *.* TO 'ogg'@'192.168.1.14' WITH GRANT OPTION; 

FLUSH PRIVILEGES;

3.2 OGG安装

tar -xvf ggs_Linux_x64_MySQL_64bit.tar

Note:安装很简单,在MySQL用户下解压即用;注意选好HOME目录

3.3 创建ogg目录

登录ogg交互工具

ggsci

创建目录

create subdirs

3.4 配置MGR进程

编辑参数

edit param mgr

PORT 7809 
DYNAMICPORTLIST 7810-7899
AUTORESTART ER *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

启动

start mgr

查看

info all

3.5 配置replicat进程

添加进程

ADD REPLICAT wl_r EXTTRAIL /ogg_mysql/dirdat/wl 

编辑参数

edit param wl_r

REPLICAT wl_r
DBOPTIONS HOST 192.168.1.14, CONNECTIONPORT 3306
SOURCEDB testdb@192.168.1.14, USERID ogg, PASSWORD oracle
REPERROR (DEFAULT, ABEND)
DISCARDFILE ./dirrpt/wl_r.dsc, PURGE, MEGABYTES 1024
GETTRUNCATES
ALLOWNOOPUPDATES
REPORTCOUNT EVERY 60 SECONDS, RATE

MAP test.*, TARGET test.*;

启动

start wl_r


查看

info all

最后修改时间:2024-06-04 09:57:05
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论