一、安装Oracle goldengate
直接解压即可
-
[oracle@tomato-@ORACLE_SID ggs]$ ls
-
fbo_ggs_Linux_x86_ora11g_32bit.tar
-
[oracle@tomato-@ORACLE_SID ggs]$ tar -xvf fbo_ggs_Linux_x86_ora11g_32bit.tar
- [oracle@tomato-@ORACLE_SID ggs]$ rm -rf fbo_ggs_Linux_x86_ora11g_32bit.tar
二、数据库中的配置与准备
打开数据库最小附加日志(源端)
-
SQL> select supplemental_log_data_min from v$database;
-
-
SUPPLEME
-
--------
-
NO
-
-
SQL> alter database add supplemental log data;
-
-
Database altered.
-
- SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
- System altered.
建立OGG数据库用户并授予权限(源端)
-
SQL> CREATE USER goldengate IDENTIFIED BY goldengate;
-
-
User created.
-
-
SQL> GRANT CONNECT TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT CREATE SESSION TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT ALTER SESSION TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT RESOURCE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT SELECT ANY DICTIONARY TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT SELECT ANY TABLE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT FLASHBACK ANY TABLE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT ALTER ANY TABLE TO goldengate;
-
- Grant succeeded.
建立OGG数据库用户并授予权限(目标端)
这里goldengate所需要的权限要比源端的多
-
SQL> CREATE USER goldengate IDENTIFIED BY goldengate;
-
-
User created.
-
-
SQL> GRANT ALTER SESSION TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT CREATE SESSION TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT CONNECT TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT RESOURCE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT SELECT ANY DICTIONARY TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT SELECT ANY TABLE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT FLASHBACK ANY TABLE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT INSERT ANY TABLE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT UPDATE ANY TABLE TO goldengate;
-
-
Grant succeeded.
-
-
SQL> GRANT DELETE ANY TABLE TO goldengate;
-
- Grant succeeded.
三、goldengate中的配置
1.目标和源的准备
执行./ggsci
-
[oracle@tomato-@ORACLE_SID ggs]$ ./ggsci
- ./ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory
ps:若是报错,在oracle的profile文件加入一行语句即可
-
[oracle@tomato-@ORACLE_SID ggs]$ vi /home/oracle/profile
-
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
-
[oracle@tomato-@ORACLE_SID ggs]$ . /home/oracle/profile
-
[oracle@tomato-@ORACLE_SID ggs]$ ./ggsci
-
Oracle GoldenGate Command Interpreter for Oracle
-
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
-
Linux, x86, 32bit (optimized), Oracle 11g on Apr 23 2012 08:09:25
-
-
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
-
- GGSCI (tomato.oracle.com) 1>
创建所需文件夹
-
GGSCI (tomato.oracle.com) 1> create subdirs
-
-
Creating subdirectories under current directory /oracle/ggs
-
-
Parameter files /oracle/ggs/dirprm: already exists
-
Report files /oracle/ggs/dirrpt: created
-
Checkpoint files /oracle/ggs/dirchk: created
-
Process status files /oracle/ggs/dirpcs: created
-
SQL script files /oracle/ggs/dirsql: created
-
Database definitions files /oracle/ggs/dirdef: created
-
Extract data files /oracle/ggs/dirdat: created
-
Temporary files /oracle/ggs/dirtmp: created
- Stdout files /oracle/ggs/dirout: created
配置Manager进程并打开
-
GGSCI (potato.oracle.com) 2> edit param mgr
-
port 7809 --指定端口号
-
GGSCI (linfan) 7> START MGR
-
- Manager started.
2.目标端的配置
加入trandata(表级附加日志)
-
GGSCI (potato.oracle.com) 4> dblogin userid goldengate , password goldengate
-
Successfully logged into database.
-
GGSCI (potato.oracle.com) 5> add trandata lala.*
-
-
2017-03-06 20:11:24 WARNING OGG-00869 No unique key is defined for table 'STUDENT'. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
-
- Logging of supplemental redo data enabled for table LALA.STUDENT.
添加EXTRACT进程并配置
-
GGSCI (potato.oracle.com) 6> ADD EXTRACT capdb1, TRANLOG, BEGIN NOW ---添加进程
- EXTRACT added.
-
GGSCI (potato.oracle.com) 7> ADD EXTTRAIL /oracle/ggs/dirdat/lt, EXTRACT capdb1 ---改进使用本地队列
-
EXTTRAIL added.
-
GGSCI (potato.oracle.com) 8> EDIT PARAM capdb1 ---配置进程参数
-
EXTRACT capdb1
-
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
- SETENV (ORACLE_SID = DB1)
-
USERID goldengate, PASSWORD goldengate
-
EXTTRAIL /oracle/ggs/dirdat/lt
- TABLE lala.*
-
GGSCI (potato.oracle.com) 9> ADD EXTRACT pumpdb12, EXTTRAILSOURCE /oracle/ggs/dirdat/lt, BEGIN NOW
-
EXTRACT added.
-
-
GGSCI (potato.oracle.com) 10> ADD RMTTRAIL /oracle/ggs/dirdat/rt, EXTRACT pumpdb12
-
RMTTRAIL added.
-
-
GGSCI (potato.oracle.com) 11> EDIT PARAM pumpdb12
-
EXTRACT pumpdb12
-
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
-
SETENV (ORACLE_SID = DB1)
-
USERID goldengate, PASSWORD goldengate
-
RMTHOST tomato, MGRPORT 7809
-
rmttrail /oracle/ggs/dirdat/rt
- TABLE lala.*
将配置好的两个进程开启
-
GGSCI (potato.oracle.com) 49> start capdb1
-
-
Sending START request to MANAGER ...
-
EXTRACT CAPDB1 starting
-
-
GGSCI (potato.oracle.com) 50> start pumpdb12
-
-
Sending START request to MANAGER ...
-
EXTRACT PUMPDB12 starting
-
-
GGSCI (potato.oracle.com) 51> info all
-
-
Program Status Group Lag at Chkpt Time Since Chkpt
-
-
MANAGER RUNNING
-
EXTRACT RUNNING CAPDB1 00:38:04 00:00:01
- EXTRACT RUNNING PUMPDB12 00:00:00 00:00:00
添加进程REPLICAT进程
-
GGSCI (tomato.oracle.com) 10> dblogin userid goldengate , password goldengate ---首先先要登录
-
Successfully logged into database.
-
-
GGSCI (tomato.oracle.com) 11> ADD CHECKPOINTTABLE goldengate.checkpoint ---添加检查点表
-
-
Successfully created checkpoint table goldengate.checkpoint.
-
-
GGSCI (tomato.oracle.com) 12> ADD REPLICAT repdb2, EXTTRAIL /oracle/ggs/dirdat/rt, BEGIN NOW, CHECKPOINTTABLE goldengate.checkpoint
-
REPLICAT added. ---添加REPLICAT进程,并且使用CHECKPOINTTABLE方式
-
GGSCI (tomato.oracle.com) 13> EDIT PARAM repdb2 ---配置REPLICAT进程
-
REPLICAT repdb2
-
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
-
SETENV (ORACLE_SID = DB2)
-
ASSUMETARGETDEFS
-
USERID goldengate, PASSWORD goldengate
- MAP lala.*, TARGET lala.*
开启该进程
-
GGSCI (tomato.oracle.com) 14> start repdb2
-
-
Sending START request to MANAGER ...
-
REPLICAT REPDB2 starting
-
-
GGSCI (tomato.oracle.com) 15> info all
-
-
Program Status Group Lag at Chkpt Time Since Chkpt
-
-
MANAGER RUNNING
- REPLICAT RUNNING REPDB2 00:00:00 00:00:03
四、进行环境测试
源端插入一条数据
-
SQL> insert into student values(1,'zhangsan');
-
-
1 row created.
-
- SQL> commit
- Commit complete.
目标端查看得到这条数据
-
GGSCI (tomato.oracle.com) 18> stats repdb2
-
-
Sending STATS request to REPLICAT REPDB2 ...
-
-
Start of Statistics at 2017-03-06 23:49:04.
-
-
Replicating from LALA.STUDENT to LALA.STUDENT:
-
-
*** Total statistics since 2017-03-06 21:42:56 ***
-
Total inserts 1.00
-
Total updates 0.00
-
Total deletes 0.00
-
Total discards 0.00
-
Total operations 1.00
-
-
*** Daily statistics since 2017-03-06 21:42:56 ***
-
Total inserts 1.00
-
Total updates 0.00
-
Total deletes 0.00
-
Total discards 0.00
-
Total operations 1.00
-
-
*** Hourly statistics since 2017-03-06 23:00:00 ***
-
-
No database operations have been performed.
-
-
*** Latest statistics since 2017-03-06 21:42:56 ***
-
Total inserts 1.00
-
Total updates 0.00
-
Total deletes 0.00
-
Total discards 0.00
-
Total operations 1.00
-
- End of Statistics.
-
SQL> select * from student;
-
-
ID NAME
-
---------- ---------------
- 1 zhangsan
环境搭建成功