oracle GoldenGate系列:(一)ogg的安装与配置

一、安装Oracle goldengate
直接解压即可
  1. [oracle@tomato-@ORACLE_SID ggs]$ ls
  2. fbo_ggs_Linux_x86_ora11g_32bit.tar 
  3. [oracle@tomato-@ORACLE_SID ggs]$ tar -xvf fbo_ggs_Linux_x86_ora11g_32bit.tar
  4. [oracle@tomato-@ORACLE_SID ggs]$ rm -rf fbo_ggs_Linux_x86_ora11g_32bit.tar
二、数据库中的配置与准备
打开数据库最小附加日志(源端

  1. SQL> select supplemental_log_data_min from v$database;

  2. SUPPLEME
  3. --------
  4. NO

  5. SQL> alter database add supplemental log data;

  6. Database altered.

  7. SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
  8. System altered.

建立OGG数据库用户并授予权限(源端

  1. SQL> CREATE USER goldengate IDENTIFIED BY goldengate;

  2. User created.

  3. SQL> GRANT CONNECT TO goldengate;

  4. Grant succeeded.

  5. SQL> GRANT CREATE SESSION TO goldengate;

  6. Grant succeeded.

  7. SQL> GRANT ALTER SESSION TO goldengate;

  8. Grant succeeded.

  9. SQL> GRANT RESOURCE TO goldengate;

  10. Grant succeeded.

  11. SQL> GRANT SELECT ANY DICTIONARY TO goldengate;

  12. Grant succeeded.

  13. SQL> GRANT SELECT ANY TABLE TO goldengate;

  14. Grant succeeded.

  15. SQL> GRANT FLASHBACK ANY TABLE TO goldengate;

  16. Grant succeeded.

  17. SQL> GRANT ALTER ANY TABLE TO goldengate;

  18. Grant succeeded.
建立OGG数据库用户并授予权限(目标端
这里goldengate所需要的权限要比源端的多
  1. SQL> CREATE USER goldengate IDENTIFIED BY goldengate;

  2. User created.

  3. SQL> GRANT ALTER SESSION TO goldengate;

  4. Grant succeeded.

  5. SQL> GRANT CREATE SESSION TO goldengate;

  6. Grant succeeded.

  7. SQL> GRANT CONNECT TO goldengate;

  8. Grant succeeded.

  9. SQL> GRANT RESOURCE TO goldengate;

  10. Grant succeeded.

  11. SQL> GRANT SELECT ANY DICTIONARY TO goldengate;

  12. Grant succeeded.

  13. SQL> GRANT SELECT ANY TABLE TO goldengate;

  14. Grant succeeded.

  15. SQL> GRANT FLASHBACK ANY TABLE TO goldengate;

  16. Grant succeeded.

  17. SQL> GRANT INSERT ANY TABLE TO goldengate;

  18. Grant succeeded.

  19. SQL> GRANT UPDATE ANY TABLE TO goldengate;

  20. Grant succeeded.

  21. SQL> GRANT DELETE ANY TABLE TO goldengate;

  22. Grant succeeded.

三、goldengate中的配置
1.目标和源的准备
执行./ggsci
  1. [oracle@tomato-@ORACLE_SID ggs]$ ./ggsci
  2. ./ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory
ps:若是报错,在oracle的profile件加入一行语句即可
  1. [oracle@tomato-@ORACLE_SID ggs]$ vi /home/oracle/profile
  2. export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  3. [oracle@tomato-@ORACLE_SID ggs]$ . /home/oracle/profile
  4. [oracle@tomato-@ORACLE_SID ggs]$ ./ggsci
  5. Oracle GoldenGate Command Interpreter for Oracle
  6. Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
  7. Linux, x86, 32bit (optimized), Oracle 11g on Apr 23 2012 08:09:25

  8. Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

  9. GGSCI (tomato.oracle.com) 1>
创建所需文件夹
  1. GGSCI (tomato.oracle.com) 1> create subdirs

  2. Creating subdirectories under current directory /oracle/ggs

  3. Parameter files /oracle/ggs/dirprm: already exists
  4. Report files /oracle/ggs/dirrpt: created
  5. Checkpoint files /oracle/ggs/dirchk: created
  6. Process status files /oracle/ggs/dirpcs: created
  7. SQL script files /oracle/ggs/dirsql: created
  8. Database definitions files /oracle/ggs/dirdef: created
  9. Extract data files /oracle/ggs/dirdat: created
  10. Temporary files /oracle/ggs/dirtmp: created
  11. Stdout files /oracle/ggs/dirout: created
配置Manager进程并打开
  1. GGSCI (potato.oracle.com) 2> edit param mgr
  2. port 7809              --指定端口号
  3. GGSCI (linfan) 7> START MGR

  4. Manager started.
2.目标端的配置
加入trandata(表级附加日志)

  1. GGSCI (potato.oracle.com) 4> dblogin userid goldengate , password goldengate
  2. Successfully logged into database.
  3. GGSCI (potato.oracle.com) 5> add trandata lala.*

  4. 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.

  5. Logging of supplemental redo data enabled for table LALA.STUDENT.
ps:这里的WARNING是因为lala用户下的student表没有主键,所以把所有的列都加入附加日志
添加EXTRACT进程并配置

  1. GGSCI (potato.oracle.com) 6> ADD EXTRACT capdb1, TRANLOG, BEGIN NOW                         ---添加进程
  2. EXTRACT added.
  3. GGSCI (potato.oracle.com) 7> ADD EXTTRAIL /oracle/ggs/dirdat/lt, EXTRACT capdb1             ---改进使用本地队列
  4. EXTTRAIL added.
  5. GGSCI (potato.oracle.com) 8> EDIT PARAM capdb1                                              ---配置进程参数
  6. EXTRACT capdb1
  7. SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
  8. SETENV (ORACLE_SID = DB1) 
  9. USERID goldengate, PASSWORD goldengate
  10. EXTTRAIL /oracle/ggs/dirdat/lt
  11. TABLE lala.*
添加配置pump进程
  1. GGSCI (potato.oracle.com) 9> ADD EXTRACT pumpdb12, EXTTRAILSOURCE /oracle/ggs/dirdat/lt, BEGIN NOW
  2. EXTRACT added.

  3. GGSCI (potato.oracle.com) 10> ADD RMTTRAIL /oracle/ggs/dirdat/rt, EXTRACT pumpdb12
  4. RMTTRAIL added.

  5. GGSCI (potato.oracle.com) 11> EDIT PARAM pumpdb12
  6. EXTRACT pumpdb12
  7. SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1") 
  8. SETENV (ORACLE_SID = DB1) 
  9. USERID goldengate, PASSWORD goldengate
  10. RMTHOST tomato, MGRPORT 7809
  11. rmttrail /oracle/ggs/dirdat/rt
  12. TABLE lala.*
将配置好的两个进程开启
  1. GGSCI (potato.oracle.com) 49> start capdb1

  2. Sending START request to MANAGER ...
  3. EXTRACT CAPDB1 starting

  4. GGSCI (potato.oracle.com) 50> start pumpdb12

  5. Sending START request to MANAGER ...
  6. EXTRACT PUMPDB12 starting

  7. GGSCI (potato.oracle.com) 51> info all

  8. Program Status Group Lag at Chkpt Time Since Chkpt

  9. MANAGER RUNNING 
  10. EXTRACT RUNNING CAPDB1 00:38:04 00:00:01 
  11. EXTRACT RUNNING PUMPDB12 00:00:00 00:00:00
3.配置源端
添加进程REPLICAT进程
  1. GGSCI (tomato.oracle.com) 10> dblogin userid goldengate , password goldengate                   ---首先先要登录
  2. Successfully logged into database.
  3.  
  4. GGSCI (tomato.oracle.com) 11> ADD CHECKPOINTTABLE goldengate.checkpoint                          ---添加检查点表

  5. Successfully created checkpoint table goldengate.checkpoint.

  6. GGSCI (tomato.oracle.com) 12> ADD REPLICAT repdb2, EXTTRAIL /oracle/ggs/dirdat/rt, BEGIN NOW, CHECKPOINTTABLE goldengate.checkpoint
  7. REPLICAT added.                                                                                ---添加REPLICAT进程,并且使用CHECKPOINTTABLE方式
  8. GGSCI (tomato.oracle.com) 13> EDIT PARAM repdb2                                                ---配置REPLICAT进程
  9. REPLICAT repdb2
  10. SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
  11. SETENV (ORACLE_SID = DB2)
  12. ASSUMETARGETDEFS
  13. USERID goldengate, PASSWORD goldengate
  14. MAP lala.*, TARGET lala.*
开启该进程
  1. GGSCI (tomato.oracle.com) 14> start repdb2

  2. Sending START request to MANAGER ...
  3. REPLICAT REPDB2 starting

  4. GGSCI (tomato.oracle.com) 15> info all

  5. Program Status Group Lag at Chkpt Time Since Chkpt

  6. MANAGER RUNNING 
  7. REPLICAT RUNNING REPDB2 00:00:00 00:00:03
四、进行环境测试
源端插入一条数据

  1. SQL> insert into student values(1,'zhangsan');

  2. 1 row created.

  3. SQL> commit
  4. Commit complete.
目标端查看得到这条数据

  1. GGSCI (tomato.oracle.com) 18> stats repdb2

  2. Sending STATS request to REPLICAT REPDB2 ...

  3. Start of Statistics at 2017-03-06 23:49:04.

  4. Replicating from LALA.STUDENT to LALA.STUDENT:

  5. *** Total statistics since 2017-03-06 21:42:56 ***
  6.         Total inserts 1.00
  7.         Total updates 0.00
  8.         Total deletes 0.00
  9.         Total discards 0.00
  10.         Total operations 1.00

  11. *** Daily statistics since 2017-03-06 21:42:56 ***
  12.         Total inserts 1.00
  13.         Total updates 0.00
  14.         Total deletes 0.00
  15.         Total discards 0.00
  16.         Total operations 1.00

  17. *** Hourly statistics since 2017-03-06 23:00:00 ***

  18.         No database operations have been performed.

  19. *** Latest statistics since 2017-03-06 21:42:56 ***
  20.         Total inserts 1.00
  21.         Total updates 0.00
  22.         Total deletes 0.00
  23.         Total discards 0.00
  24.         Total operations 1.00

  25. End of Statistics.

  1. SQL> select * from student;

  2.         ID NAME
  3. ---------- ---------------
  4.          1 zhangsan

环境搭建成功


请使用浏览器的分享功能分享到微信等