Chinaunix首页 | 论坛 | 博客
  • 博客访问: 679820
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1625
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-24 11:40
个人简介

资深Oracle数据库专家 OCM认证大师 10年数据库相关服务及开发经验 各类数据库相关方案的编写,管理及实施 数据中心数据库日常运维、大型项目割接、性能优化等方面有丰富的实战经验 客户包括: 电信,银行,保险,航空,国网,汽车,烟草等 想要一起学习探讨数据安全技术的请加qq群 256041954

文章分类

全部博文(163)

文章存档

2017年(2)

2016年(112)

2015年(38)

2014年(11)

我的朋友

分类: Oracle

2016-05-11 22:29:39

Oracle GoldenGate DDL Synchronization configuration


DML同步参考Oracle GoldenGate for Oracle 11g(Solaris 10 x86-64) to Oracle 10g(CentOS 4.8) configuration

关闭源端数据库的recyclebin,如果你是Oracle11g,可以不用关闭


[plain] view plain copy
 print?
  1. [oracle@gg01 ~]$ sqlplus / AS sysdba  
  2.   
  3. SQL*Plus: Release 10.2.0.1.0 - Production ON Sun Jan 15 12:49:39 2012  
  4.   
  5. Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.  
  6.   
  7.   
  8. Connected TO:  
  9. Oracle DATABASE 10g Enterprise Edition Release 10.2.0.1.0 - Production  
  10. WITH the Partitioning, OLAP AND DATA Mining options  
  11.   
  12. SYS@gg01:~>SHOW parameter recyclebin  
  13.   
  14. NAME                                 TYPE        VALUE  
  15. ------------------------------------ ----------- ------------------------------  
  16. recyclebin                           string      ON  
  17. SYS@gg01:~>ALTER system SET recyclebin=off;  
  18.   
  19. System altered.  
  20.   
  21. SYS@gg01:~>SHOW parameter recyclebin  
  22.   
  23. NAME                                 TYPE        VALUE  
  24. ------------------------------------ ----------- ------------------------------  
  25. recyclebin                           string      OFF  

创建DDL复制用户



[plain] view plain copy
 print?
  1. SYS@gg01:~>CREATE USER ggadmin IDENTIFIED BY ggadmin DEFAULT tablespace users;  
  2.   
  3. USER created.  
  4.   
  5. SYS@gg01:~>GRANT dba TO ggadmin;  
  6.   
  7. GRANT succeeded.  

编辑ogg的globals参数,指定DDL用户



[plain] view plain copy
 print?
  1. GGSCI (gg01) 1> edit params ./GLOBALS  
[plain] view plain copy
 print?
  1. GGSCI (gg01) 3> VIEW params ./GLOBALS  
  2.   
  3. ggschema ggadmin  

安装DDL对象,运行marker_setup.sql脚本,提示输入OGG用户,这里是之前定义的ggadmin



[plain] view plain copy
 print?
  1. SYS@gg01:~>@marker_setup  
  2.   
  3. Marker setup script  
  4.   
  5. You will be prompted FOR the name OF a schema FOR the GoldenGate DATABASE objects.  
  6. NOTE: The schema must be created prior TO running this script.  
  7. NOTE: Stop ALL DDL replication BEFORE starting this installation.  
  8.   
  9. Enter GoldenGate schema name:ggadmin  
  10.   
  11.   
  12. Marker setup TABLE script complete, running verification script...  
  13. Please enter the name OF a schema FOR the GoldenGate DATABASE objects:  
  14. Setting schema name TO GGADMIN  
  15.   
  16. MARKER TABLE  
  17. -------------------------------  
  18. OK  
  19.   
  20. MARKER SEQUENCE  
  21. -------------------------------  
  22. OK  
  23.   
  24. Script complete.  

运行ddl_setup.sql脚本,提示输入用户:ggadmin



[plain] view plain copy
 print?
  1. SYS@gg01:~>@ddl_setup  
  2.   
  3. GoldenGate DDL Replication setup script  
  4.   
  5. Verifying that CURRENT USER has privileges TO install DDL Replication...  
  6.   
  7. You will be prompted FOR the name OF a schema FOR the GoldenGate DATABASE objects.  
  8. NOTE: The schema must be created prior TO running this script.  
  9. NOTE: ON Oracle 10g AND up, system recycle bin must be disabled.  
  10. NOTE: Stop ALL DDL replication BEFORE starting this installation.  
  11.   
  12. Enter GoldenGate schema name:ggadmin  
  13.   
  14. You will be prompted FOR the mode OF installation.  
  15. TO install OR reinstall DDL replication, enter INITIALSETUP  
  16. TO upgrade DDL replication, enter NORMAL  
  17. Enter mode OF installation:INITIALSETUP  
  18.   
  19. Working, please wait ...  
  20. Spooling TO file ddl_setup_spool.txt  
  21.   
  22.   
  23. USING GGADMIN AS a GoldenGate schema name, INITIALSETUP AS a mode OF installation.  
  24.   
  25. Working, please wait ...  
  26.   
  27. RECYCLEBIN must be empty.  
  28. This installation will purge RECYCLEBIN FOR ALL users.  
  29. TO proceed, enter yes. TO stop installation, enter no.  
  30.   
  31. Enter yes OR no:yes  
  32.   
  33.   
  34. DDL replication setup script complete, running verification script...  
  35. Please enter the name OF a schema FOR the GoldenGate DATABASE objects:  
  36. Setting schema name TO GGADMIN  
  37.   
  38. DDLORA_GETTABLESPACESIZE STATUS:  
  39.   
  40. Line/pos  
  41. --------------------  
  42. Error  
  43. -----------------------------------------------------------------  
  44. No errors  
  45. No errors  
  46.   
  47.   
  48. CLEAR_TRACE STATUS:  
  49.   
  50. Line/pos  
  51. --------------------  
  52. Error  
  53. -----------------------------------------------------------------  
  54. No errors  
  55. No errors  
  56.   
  57.   
  58. CREATE_TRACE STATUS:  
  59.   
  60. Line/pos  
  61. --------------------  
  62. Error  
  63. -----------------------------------------------------------------  
  64. No errors  
  65. No errors  
  66.   
  67.   
  68. TRACE_PUT_LINE STATUS:  
  69.   
  70. Line/pos  
  71. --------------------  
  72. Error  
  73. -----------------------------------------------------------------  
  74. No errors  
  75. No errors  
  76.   
  77.   
  78. INITIAL_SETUP STATUS:  
  79.   
  80. Line/pos  
  81. --------------------  
  82. Error  
  83. -----------------------------------------------------------------  
  84. No errors  
  85. No errors  
  86.   
  87.   
  88. DDLVERSIONSPECIFIC PACKAGE STATUS:  
  89.   
  90. Line/pos  
  91. --------------------  
  92. Error  
  93. -----------------------------------------------------------------  
  94. No errors  
  95. No errors  
  96.   
  97.   
  98. DDLREPLICATION PACKAGE STATUS:  
  99.   
  100. Line/pos  
  101. --------------------  
  102. Error  
  103. -----------------------------------------------------------------  
  104. No errors  
  105. No errors  
  106.   
  107.   
  108. DDLREPLICATION PACKAGE BODY STATUS:  
  109.   
  110. Line/pos  
  111. --------------------  
  112. Error  
  113. -----------------------------------------------------------------  
  114. No errors  
  115. No errors  
  116.   
  117.   
  118. DDL HISTORY TABLE  
  119. -----------------------------------  
  120. OK  
  121.   
  122. DDL HISTORY TABLE(1)  
  123. -----------------------------------  
  124. OK  
  125.   
  126. DDL DUMP TABLES  
  127. -----------------------------------  
  128. OK  
  129.   
  130. DDL DUMP COLUMNS  
  131. -----------------------------------  
  132. OK  
  133.   
  134. DDL DUMP LOG GROUPS  
  135. -----------------------------------  
  136. OK  
  137.   
  138. DDL DUMP PARTITIONS  
  139. -----------------------------------  
  140. OK  
  141.   
  142. DDL DUMP PRIMARY KEYS  
  143. -----------------------------------  
  144. OK  
  145.   
  146. DDL SEQUENCE  
  147. -----------------------------------  
  148. OK  
  149.   
  150. GGS_TEMP_COLS  
  151. -----------------------------------  
  152. OK  
  153.   
  154. GGS_TEMP_UK  
  155. -----------------------------------  
  156. OK  
  157.   
  158. DDL TRIGGER CODE STATUS:  
  159.   
  160. Line/pos  
  161. --------------------  
  162. Error  
  163. -----------------------------------------------------------------  
  164. No errors  
  165. No errors  
  166.   
  167.   
  168. DDL TRIGGER INSTALL STATUS  
  169. -----------------------------------  
  170. OK  
  171.   
  172. DDL TRIGGER RUNNING STATUS  
  173. ----------------------------------------------------------------------  
  174. ENABLED  
  175.   
  176. STAYMETADATA IN TRIGGER  
  177. ----------------------------------------------------------------------  
  178. OFF  
  179.   
  180. DDL TRIGGER SQL TRACING  
  181. ----------------------------------------------------------------------  
  182. 0  
  183.   
  184. DDL TRIGGER TRACE LEVEL  
  185. ----------------------------------------------------------------------  
  186. 0  
  187.   
  188. LOCATION OF DDL TRACE FILE  
  189. --------------------------------------------------------------------------------  
  190. /u01/app/oracle/admin/gg01/udump/ggs_ddl_trace.log  
  191.   
  192. Analyzing installation STATUS...  
  193.   
  194.   
  195. STATUS OF DDL REPLICATION  
  196. --------------------------------------------------------------------------------  
  197. SUCCESSFUL installation OF DDL Replication software components  
  198.   
  199. Script complete.  
  200. SYS@gg01:~>  

创建DDL复制角色,运行role_setup.sql脚本



[plain] view plain copy
 print?
  1. SYS@gg01:~>@role_setup  
  2.   
  3. GGS ROLE setup script  
  4.   
  5. This script will DROP AND recreate the ROLE GGS_GGSUSER_ROLE  
  6. TO USE a different ROLE name, quit this script AND THEN edit the params.SQL script TO CHANGE the gg_role parameter TO the preferred name. (Do NOT run the script.)  
  7.   
  8. You will be prompted FOR the name OF a schema FOR the GoldenGate DATABASE objects.  
  9. NOTE: The schema must be created prior TO running this script.  
  10. NOTE: Stop ALL DDL replication BEFORE starting this installation.  
  11.   
  12. Enter GoldenGate schema name:ggadmin  
  13. Wrote file role_setup_set.txt  
  14.   
  15. PL/SQL PROCEDURE successfully completed.  
  16.   
  17.   
  18. ROLE setup script complete  
  19.   
  20. GRANT this ROLE TO each USER assigned TO the EXTRACT, GGSCI, AND Manager processes, BY USING the following SQL command:  
  21.   
  22. GRANT GGS_GGSUSER_ROLE TO loggedUser  
  23.   
  24. WHERE loggedUser IS the USER assigned TO the GoldenGate processes.  
  25. SYS@gg01:~>  

开启DDL功能,运行ddl_enable.sql脚本



[plain] view plain copy
 print?
  1. SYS@gg01:~>@ddl_enable  
  2.   
  3. TRIGGER altered.  

验证DDL脚本的安装,运行marker_status.sql脚本



[plain] view plain copy
 print?
  1. SYS@gg01:~>@marker_status  
  2. Please enter the name OF a schema FOR the GoldenGate DATABASE objects:  
  3. ggadmin  
  4. Setting schema name TO GGADMIN  
  5.   
  6. MARKER TABLE  
  7. -------------------------------  
  8. OK  
  9.   
  10. MARKER SEQUENCE  
  11. -------------------------------  
  12. OK  
  13. SYS@gg01:~>  

配置DDL复制,修改extract参数



[plain] view plain copy
 print?
  1. GGSCI (gg01) 5> VIEW params eorajj  
  2.   
  3. EXTRACT EORAJJ  
  4. USERID system, PASSWORD oracle  
  5. RMTHOST gg02, MGRPORT 7809  
  6. RMTTRAIL /u01/app/oracle/goldengate/dirdat/jj  
  7.   
  8. DDL INCLUDE ALL  
  9. --DDLERROR RESTARTSKIP 100000 SKIPTRIGGERERROR 100000  
  10. DDLOPTIONS ADDTRANDATA,REPORT  
  11.   
  12. TABLE scott.*;  
  13. SEQUENCE scott.*;  
  14.   
  15.   
  16. GGSCI (gg01) 6>  

修改replicat参数



[plain] view plain copy
 print?
  1. REPLICAT RORAJJ  
  2. USERID system, PASSWORD oracle  
  3. HANDLECOLLISIONS  
  4. ASSUMETARGETDEFS  
  5. DISCARDFILE /u01/app/oracle/goldengate/dirrpt/RORAJJ.DSC, PURGE  
  6.   
  7. DDL INCLUDE MAPPED  
  8. --DDLERROR DEFAULT IGNORE RETRYOP  
  9. DDLOPTIONS REPORT  
  10.   
  11. MAP scott.*, TARGET scott.*;  

分别启动源端extract和目标端replicat进程



[plain] view plain copy
 print?
  1. GGSCI (gg01) 15> START EXTRACT eorajj  
  2.   
  3. Sending START request TO MANAGER ...  
  4. EXTRACT EORAJJ starting  
  5.   
  6.   
  7. GGSCI (gg01) 16> info ALL  
  8.   
  9. Program     STATUS      GROUP       Lag           TIME Since Chkpt  
  10.   
  11. MANAGER     RUNNING                                             
  12. EXTRACT     RUNNING     EORAJJ      00:00:00      00:14:39  
[plain] view plain copy
 print?
  1. GGSCI (gg02) 7> START replicat rorajj  
  2.   
  3. Sending START request TO MANAGER ...  
  4. REPLICAT RORAJJ starting  
  5.   
  6.   
  7. GGSCI (gg02) 8> info ALL  
  8.   
  9. Program     STATUS      GROUP       Lag           TIME Since Chkpt  
  10.   
  11. MANAGER     RUNNING                                             
  12. REPLICAT    RUNNING     RORAJJ      00:00:00      00:00:01  



先验证DML


源端


[plain] view plain copy
 print?
  1. SCOTT@gg01:~>INSERT INTO bonus VALUES('ZWC','10','1000',10);  
  2.   
  3. 1 ROW created.  
  4.   
  5. SCOTT@gg01:~>commit;  
  6.   
  7. Commit complete.  
  8.   
  9. SCOTT@gg01:~>  

目标段



[plain] view plain copy
 print?
  1. SCOTT@gg02:~>SELECT * FROM bonus WHERE ename='ZWC';  
  2.   
  3. ENAME      JOB              SAL       COMM  
  4. ---------- --------- ---------- ----------  
  5. ZWC        10              1000         10  
  6.   
  7. SCOTT@gg02:~>  



验证DDL


[plain] view plain copy
 print?
  1. SCOTT@gg01:~>CREATE TABLE t_zwc(tid INTEGER PRIMARY KEY,tname VARCHAR(10));  
  2.   
  3. TABLE created.  
  4.   
  5. SCOTT@gg01:~>DESC t_zwc  
  6.  Name                    NULL?    TYPE  
  7.  ----------------------- -------- ----------------  
  8.  TID                     NOT NULL NUMBER(38)  
  9.  TNAME                            VARCHAR2(10)  
  10.   
  11. SCOTT@gg01:~>SELECT tname FROM tab;  
  12.   
  13. TNAME  
  14. ------------------------------  
  15. DEPT  
  16. EMP  
  17. BONUS  
  18. SALGRADE  
  19. T_ZWC  
  20.   
  21. 5 ROWS selected.  

目标端查看



[plain] view plain copy
 print?
  1. SCOTT@gg02:~>SELECT tname FROM tab;  
  2.   
  3. TNAME  
  4. ------------------------------  
  5. DEPT  
  6. EMP  
  7. BONUS  
  8. SALGRADE  
  9. T_ZWC  
  10.   
  11. SCOTT@gg02:~>SET linesize 50  
  12. SCOTT@gg02:~>DESC t_zwc  
  13.  Name                    NULL?    TYPE  
  14.  ----------------------- -------- ----------------  
  15.  TID                     NOT NULL NUMBER(38)  
  16.  TNAME                            VARCHAR2(10)  

验证存储过程



[plain] view plain copy
 print?
  1. SCOTT@gg01:~>CREATE OR REPLACE PROCEDURE ddl_test  
  2.   2  IS  
  3.   3  BEGIN  
  4.   4    NULL;  
  5.   5  END ddl_test;  
  6.   6  /  
  7.   
  8. PROCEDURE created.  

目标端



[plain] view plain copy
 print?
  1. SCOTT@gg02:~>SELECT DISTINCT name FROM user_source WHERE TYPE='PROCEDURE';  
  2.   
  3. NAME  
  4. ------------------------------  
  5. DDL_TEST  
  6.   
  7. SCOTT@gg02:~>SET pages 100  
  8. SCOTT@gg02:~>SELECT text FROM user_source;  
  9.   
  10. TEXT  
  11. --------------------------------------------------------------------------------  
  12. PROCEDURE         "DDL_TEST"  
  13. IS  
  14. BEGIN  
  15.   NULL;  
  16. END ddl_test;  /* GOLDENGATE_DDL_REPLICATION */  

验证sequence



[plain] view plain copy
 print?
  1. SCOTT@gg01:~>CREATE SEQUENCE seq_ddl START WITH 1 INCREMENT BY 2 maxvalue 99999;  
  2.   
  3. SEQUENCE created.  

目标端



[plain] view plain copy
 print?
  1. SCOTT@gg02:~>SELECT sequence_name,max_value,increment_by FROM user_sequences WHERE sequence_name=UPPER('seq_ddl');  
  2.   
  3. SEQUENCE_NAME    MAX_VALUE INCREMENT_BY  
  4. --------------- ---------- ------------  
  5. SEQ_DDL              99999            2  
阅读(2695) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~