使用ogg(goldengate)方案将Oracle迁移到MySQL
admin
2023-04-19 05:21:52
0

下面讲讲关于使用ogg(goldengate)方案将Oracle迁移到MySQL,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完使用ogg(goldengate)方案将Oracle迁移到MySQL这篇文章你一定会有所受益。

source源端 oracle 11.2.0.4  ogg12c
ip:10.200.3.193 系统centos 7.1

1. 创建source表和一些初始化数据
su - oracle
sqlplus / as sysdba
SQL>alter database add supplemental log data;
SQL>select supplemental_log_data_min from v$database;

SQL>alter database forcelogging;

SQL> select supplemental_log_data_min from v$database;
NO

SQL> alter database add supplemental log data;

Database altered.
SQL> alter system switch logfile;

System altered.

SQL> select supplemental_log_data_min from v$database;
YES
SQL> create tablespace ggs;
Tablespace created.
SQL> create user ggs identified by ggs default tablespace ggs;
User created.
SQL> grant connect,resource,dba to ggs;
SQL> alter system set undo_retention=86400;
System altered.

SQL> grant flashback any table to ggs;

先配置参数进行静默安装---参考centos7.1之goldengate12c的安装

2.在source源端上创建Manager参数文件并指定端口和一些需要的参数选项:
cd /u01/app/ggs

./ggsci
创建相关目录:GGSCI (testtech4-193) 1> create subdirs

配置mgr
view params mgr

port 7809
dynamicportlist 7810-7820,7830

启动start mgr

GGSCI (testtech4-193) 1> dblogin userid ggs password ggs
Successfully logged into database.
GGSCI (testtech4-193) 1> REGISTER EXTRACT ext1 DATABASE
GGSCI (testtech4-193) 2> add trandata workflow.act_ru_execution

3.编辑defgen文件
vi /u01/app/ggs/dirprm/defgen.prm

defsfile    /u01/app/ggs/dirdef/table_del,purge
userid ggs, password ggs
table  WORKFLOW.act_ru_execution;

cd  /u01/app/ggs

defgen  paramfile /u01/app/ggs/dirprm/defgen.prm

cd  /app/ggs/dirdef/
把文件复制到目标端的/app/ggs/dirdef/

4.在source源端上执行以下命令添加一个Extract进程叫做init进行数据初始化:
cd /u01/app/ggs
GGSCI (testtech4-193)>./ggsci
GGSCI (testtech4-193)>add extract init,sourceistable
GGSCI (testtech4-193)>info extract *, task
GGSCI (testtech4-193)>edit params init

extract init
userid ggs password ggs
rmthost 10.200.3.178,mgrport 8809
rmttask replicat,group repinit
table WORKFLOW.act_ru_execution;

目标端target mysql5.6     ogg 12c  
ip:10.200.3.178 系统centos 7.1

1.创建目标端target数据库和相应的表
mysql -uroot -p
创建用于OGG使用登陆的数据库,例如需要存放checkpoint table

mysql> create database ogg;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on . to ogg@10.200.3.178 identified by 'ggs';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
2.创建目标端target应用进程
GGSCI (techtest3-178)>dblogin sourcedb ogg@10.200.3.178:3306 userid ogg password ggs
GGSCI (techtest3-178)>add checkpointtable ogg.ck_table

GGSCI (techtest3-178)>add replicat repdel,exttrail /u01/app/ggs/dirdat/dl,checkpointtable   ogg.ck_table
GGSCI (techtest3-178)>edit params repdel

replicat repdel
targetdb ogg@10.200.3.178:3306 userid ogg password ggs
handlecollisions
SOURCECHARSET zhs16gbk ----源端字符集,一定要设置,特别是源端和目标端字符集不一致的情况,此参数必设置。
sourcedefs /u01/app/ggs/dirdef/table_def
discardfile /u01/app/ggs/dirrpt/repdel.dsc,purge
map WORKFLOW.act_ru_execution, target activiti.act_ru_execution;

由于是异构环境,所以要指定sourcedefs参数,使用source数据库的数据定义文件。
handlecollisions参数来处理初始化加载的结果与实时改变同步捕获数据的冲突。

目标端:view params mgr

port 8809
DYNAMICPORTLIST 8840-8850
ACCE×××ULE, PROG REPLICAT, IPADDR 10.200.3.139 ALLOW

3.目标端target创建初始化加载交付参数文件

GGSCI (techtest3-178)>add replicat repinit,specialrun

GGSCI (techtest3-178)>edit params repinit

replicat repinit

targetdb ogg@10.200.3.178:3306 userid ogg password ggs

sourcedefs /u01/app/ggs/dirdef/table_def

discardfile /u01/app/ggs/dirrpt/repinit.dsc,purge

sqlexec "SET FOREIGN_KEY_CHECKS=0"

map WORKFLOW.act_ru_execution, target activiti.act_ru_execution;

4.在source源端添加Extract组
GGSCI (testtech4-193) > ADD EXTRACT extdel,TRANLOG, BEGIN NOW
GGSCI (testtech4-193) >edit params extdel
EXTRACT extdel
userid ggs, password ggs
GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES, RATE
numfiles 5000
DISCARDFILE ./dirrpt/extdel.dsc, APPEND, MEGABYTES 1000
WARNLONGTRANS 2h, CHECKINTERVAL 3m
EXTTRAIL ./dirdat/dl
TRANLOGOPTIONS CONVERTUCS2CLOBS
THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000
DBOPTIONS ALLOWUNUSEDCOLUMN
table  WORKFLOW.act_ru_execution;
GGSCI (testtech4-193) >add exttrail ./dirdat/dl, extract extdel, megabytes 500

GGSCI (testtech4-193) >ADD EXTRACT dpedel, EXTTRAILSOURCE ./dirdat/dl

GGSCI (testtech4-193) >edit params dpedel

EXTRACT dpedel
RMTHOST 10.200.3.178, MGRPORT 8809, compress
PASSTHRU
numfiles 50000
RMTTRAIL ./dirdat/dl
DYNAMICRESOLUTION
table  WORKFLOW.act_ru_execution;

GGSCI (testtech4-193) >ADD RMTTRAIL ./dirdat/dl, EXTRACT dpedel, megabytes 500

以下是启动抽取和投递进程,由于oracle到mysql初始化无法做到像oracle一样的利用scn等。
大致思路是,先进程抽取数据,然后进行初始化操作。等初始化完了,启动应用进程会有冲突,处理冲突,解决问题。最后做数据对比。
GGSCI (testtech4-193) >start extdel
GGSCI (testtech4-193) >start dpedel

5.源端source启动初始化加载数据
在source源端启动之前配置的初始化加载提取任务init:
GGSCI (testtech4-193) >start init

在目标端target端看初始化数据加载复制进程的报告确认加载成功:

GGSCI (techtest3-178)> view report repinit

init初始化结束以后,进程会自动重启

6.最后目标端target启动repdel

确认初始化数据加载完成后关闭改变同步Replicat进程repdel的handlecollisions。

GGSCI (techtest3-178) 1> send repdel,nohandlecollisions

并将repdel参数文件中的handlecollisions参数去除,防止repdel下次启动时handlecollisions被再次启用。

最后验证数据:初始化数据,变更数据等

对于以上使用ogg(goldengate)方案将Oracle迁移到MySQL相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

“一次愉快的会晤”,泽连斯基披... 在俄乌互相加大对对方纵深目标打击之际,乌克兰总统泽连斯基7月28日造访了白宫,与美国总统特朗普举行会...
总统连遭“逼宫”,少帅临危受命 躲避着燃烧瓶和火箭弹袭击,四辆苏制BMP步兵战车快速穿行在马里乌波尔市区。即将出城的路口,迎面出现1...
独居女子在卧室玩偶内发现摄像头... 租房独居女子意外发现家中玩偶内藏着偷拍设备,报警后偷拍设备竟“不翼而飞”,门锁记录显示有人在她出门的...
伊学者:乌克兰袭击行动适得其反... 乌克兰袭击与伊朗有关的船只后,伊朗和俄罗斯接连作出强硬回应。伊朗外交学院教授法拉吉扎德在接受凤凰卫视...
20万人怒火不会停!蓝议员挺蒋... 海峡导报综合报道 在蓝白号召台湾民众上凯道呐喊“反毒台”后,台北市长蒋万安日前透露,近日不少民代私下...
柯文哲妻子陈佩琪畅游大陆,民进... 台湾民众党前主席柯文哲妻子陈佩琪27日在脸书发文证实,自己早前由儿子陪同前往上海、杭州与北京旅游一周...
高市早苗被问如何改善中日关系 据日本东京新闻报道,当地时间7月27日,日本首相高市早苗在首相官邸举行记者会。当被问及如何改善中日关...
扎哈罗娃批小泉进次郎涉核言论:... 【环球网报道 记者 张江平】综合俄新社等媒体报道,对于日本防卫大臣小泉进次郎涉核言论,俄罗斯外交部发...
“特高课”再现?日本强推“国家... 无视反对战争正义呼声 复刻战前军国主义体制日本强推“国家情报局”引发广泛担忧和批评(国际视点)本报记...
6G相比5G不只是速度更快 将...   6G相比5G不只是速度更快  【6G相比5G不只是速度更快】7月28日,相比5G,6G不仅是速度...