Windows下Oracle Golden gate12的单向复制 Oracle-Oracle

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BAStriver/article/details/84774902

1.首先,先来了解下Golden gate吧,ogg概念与机制

2.这里记录Oracle和Oracle的windows下的同步,那么到官网下这个安装包吧,Ogg For Oracle

3.安装好了Oracle的机器上,解压安装包,然后安装,点击setup,如图(源端和目标端都要安装哟):

4.好了,安装好了之后,设置环境变量,先查看services.msc的Oracle服务如图:

然后设置:

ORACLE_HOME=D:\oracle\product\11.2.0\dbhome_1
ORACLE_SID=ORCL

如图: 

5.接下来改下Oracle的日志模式,总体结果图如下(也是源端和目标端都要修改,以下除了特定说明不然都是两边执行sql):

1)打开sqlplus.exe,登录sys账号。

2)之后,打开归档模式,这里值得注意的是,登录Oracle的sys(超级管理员)时,你当前的用户一定要是administrator,其他账号即使是administrator组也不行。执行以下命令先确保Oracle没有执行什么业务先,因为可能需要好几分钟才可以改好。

SQL> archive log list;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;

3)忘记了sys密码吗,那看下图:

这里参考:https://www.cnblogs.com/jiangxinnju/p/7928029.html

 4)在源端打开force logging,输入:

SQL> alter database force logging;

SQL> select force_logging from v$database;

FOR
---
YES

5)在源端打开supplemental log,输入:

SQL> alter database add supplemental log data;

Database altered.


SQL> alter system switch logfile;
 
System altered.

6)在源端关闭回收站,输入:

SQL> alter system set recyclebin=off;

System altered.

如果不行,就输入:

SQL> alter system set recyclebin=off deferred;

6.源端创建ogg的用户:ggs,就用上面登录过的sys账号登录来创建并且授权吧,输入:

SQL> create user ggs identified by 123456 default tablespace users temporary tablespace temp;
SQL> grant connect ,resource,unlimited tablespace to ggs;
SQL> grant execute on utl_file to ggs;
SQL> grant select any dictionary,select any table to ggs;
SQL> grant alter any table to ggs;
SQL> grant flashback any table to ggs;
SQL> grant execute on dbms_flashback to ggs;

7.目标端创建ogg的用户:ggs (事实上,如果目标端以后也可能作为源端,所以你也可以干脆两边都设置一样的权限)

SQL> create user ggs identified by 123456 default tablespace users temporary tablespace temp;
SQL> grant dba to ggs;

8.创建demo表,输入:

SQL> create table demo(id number primary key,ename varchar2(10));

9.接下来,去到ogg安装目录下,打开ggsci.exe,输入(自动创建需要用到的文件夹):

create subdirs

然后登录ggs账号,并且添加表级的trandata,输入:

GGSCI (WIN-sjrh38) 5> dblogin userid ggs,password 123456
Successfully logged into database.

GGSCI (WIN-sjrh38 as ggs@orcl) 6> add trandata ggs.demo

Logging of supplemental redo data enabled for table GGS.DEMO.
TRANDATA for scheduling columns has been added on table 'GGS.DEMO'.
TRANDATA for instantiation CSN has been added on table 'GGS.DEMO'.

10.在目标端编辑GLOBAL文件,输入:

edit params ./GLOBALS  -- 自动创建文件,写入后保存就行

dblogin userid ggs,password 123456  -- 登录

checkpointtable ggs.checkpoint   -- 添加这句进去

11.目标端添加checkpoint,ggsci.exe输入:

add checkpointtable ggs.checkpoint

12.配置源端mgr管理进程,输入:

GGSCI (WIN-sjrh38) 72> edit params mgr

文件写入:

port 7500
dynamicportlist 7501-7505
autorestart extract *,waitminutes 2,retries 5

然后输入:start mgr 启动mgr进程 

13.配置源端extract抽取进程,输入:

GGSCI (WIN-sjrh38) 73> edit params eora

文件写入:

extract eora

userid ggs,password 123456

exttrail D:\oracleGoldenGate12\install\dirdat\et
table ggs.demo;

然后添加并启动eora进程,输入:

add extract eora,tranlog,begin now

add exttrail D:\oracleGoldenGate12\install\dirdat\et,extract eora

start eora

 14.配置源端的pump_so进程,输入:

GGSCI (WIN-sjrh38) 74> edit params pump_so

文件写入:

extract Pump_so

Userid ggs,password 123456
rmthost 192.168.88.58, mgrport 7500

rmttrail E:\app\db\golden_gate12\install\dirdat\et
Table ggs.demo;

然后添加pump_so进程,输入(先不启动pump_so先):

add extract pump_so,exttrailsource D:\oracleGoldenGate12\install\dirdat\et  -- 源端

add rmttrail E:\app\db\golden_gate12\install\dirdat\et,extract pump_so  -- 目标端

15.配置目标端的mgr管理进程,目标端的ggsci.exe输入:

edit params mgr

文件写入:

port 7500
dynamicportlist 7501-7505
autostart er *
autorestart extract *,waitminutes 2,retries 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts E:\app\db\golden_gate12\install\dirdat\et*,usecheckpoints,minkeepdays 3

启动mgr,输入:

start mgr

 16.配置目标端的复制进程,输入:

edit params repl

文件写入:

replicat repl
userid ggs,password 123456
assumetargetdefs
reperror default,discard
discardfile ./dirrpt/repl.dsc,append,megabytes 50

MAP ggs.demo, target ggs.demo;

添加并且启动复制进程,输入:

add replicat repl,exttrail E:\app\db\golden_gate12\install\dirdat\et,checkpointtable ggs.checkpoint

start repl

17.打开目标端的7500-7505的端口,如图:

18.源端启动pump_so,ggsci.exe输入:

start pump_so

19.目标端显示了这个info,如图:

20.源端的sqlplus.exe输入:

表已创建。

SQL> insert into demo select 1,'aaa' from dual;

已创建 1 行。

SQL> insert into demo select 2,'bbb' from dual;

已创建 1 行。

SQL> commit;

21.然后再去目标端看看效果如何,如图(我插入了7条):

注:如果以上步骤哪个有问题可以留言,另外,也可以到安装ogg的根目录找到ggserr.log查看错误日志。

以上部分参考:https://blog.csdn.net/qq_36276335/article/details/62232559

需要了解Mysql到Oracle同步的可以看这里:https://blog.csdn.net/BAStriver/article/details/84637957

猜你喜欢

转载自blog.csdn.net/BAStriver/article/details/84774902