zoukankan      html  css  js  c++  java
  • 异构GoldenGate 12c 单向复制配置

    1.分别在windows2008、linux平台部署oracle 11.2.0.4
    2.分别在windows2008、linux平台部署gg。
        2.1 windows平台:
                gg的安装目录位
                C:ora11gproductogg_src
                
                需设置环境变量 ORACLE_HOME and ORACLE_SID
                 
        2.2 linux平台:
                gg的安装目录位  
                [oracle@Oracle02 ~]$ ls -l /u01/app/oracle/product/
                drwxrwxr-x.  3 oracle oinstall 4096 12月 13 10:21 11.2.0
                drwxr-xr-x. 26 oracle oinstall 4096 12月 13 11:24 ogg_src
                [oracle@Oracle02 ~]$ 
                
                需设置环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib
                需要安装readline-devel-6.0-4.el6.x86_64.rpm(在linux平台 )
                
    3.启动ogg的mgr管理进程,source和target端做相同的操作
        3.1 启动wind的ogg的mgr
            C:ora11gproductogg_src>ggsci.exe
            GGSCI (WIN-GM5PVS1CILH) 1> start mgr
            Manager started.
            GGSCI (WIN-GM5PVS1CILH) 2> info mgr
            Manager is running (IP port WIN-GM5PVS1CILH.7809, Process ID 232).
        
        3.2 启动linux的ogg的mgr        
            [oracle@Oracle02 product]$ cd ogg_src
            [oracle@Oracle02 ogg_src]$ ./ggsci
            GGSCI (Oracle02) 1> start mgr
            MGR is already running.
            GGSCI (Oracle02) 2> info mgr
            Manager is running (IP port Oracle02.7809, Process ID 21213).
            GGSCI (Oracle02) 3>    
            
    4准备工作,在source和target端都配置 
        4.1配置tnsnames.ora文件        
            orcl_w =
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))
                )
                (CONNECT_DATA =
                  (SID =orcl )
                )
              )
            orcl_L =
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))
                )
                (CONNECT_DATA =
                  (SID =orcl )
                )
              )      
              
        4.2 调整数据库
            #确定数据库运行在归档模式,,
            SQL> archive log list;
            Database log mode              Archive Mode
            Automatic archival             Enabled
            Archive destination            USE_DB_RECOVERY_FILE_DEST
            Oldest online log sequence     2
            Next log sequence to archive   4
            Current log sequence           4
            
            #开启数据库附加日志
            SQL> select supplemental_log_data_min from v$database; 
            SUPPLEME
            --------
            NO
            SQL> alter database add supplemental log data;
            
            SQL> select supplemental_log_data_min from v$database; 
    
            SUPPLEME
            --------
            YES
            
            #打开force logging
            SQL> alter database force logging;
            SQL> 
        
        4.3 创建单独用于复制的数据库账号
            SQL> create tablespace tbs_ogg; 
            SQL> create user ggs identified by ggs default tablespace tbs_ogg temporary tablespace temp account unlock; 
            SQL> grant connect,resource to ggs;
            SQL> grant select any table to ggs;
            SQL> grant select any dictionary to ggs;
            
            SQL> create tablespace tbs_ogg;
            SQL> create user ggt identified by ggt default tablespace tbs_ogg temporary tablespace temp account unlock; 
            SQL> grant connect,resource to ggt;
            SQL> grant select any table to ggt;
            SQL> grant select any dictionary to ggt;
            SQL>
                
    5.准备测试用户和表    
        SQL> alter user scott identified by scott account unlock;
        SQL> grant connect,resource,select_catalog_role to scott;
        SQL>         
        SQL> conn scott/scott
        SQL> create table t1 as select * from dba_objects;        
        SQL> alter table t1 add constraint pk_t1 primary key(object_id);
        
        SQL> select count(*) from t1; //source端
          COUNT(*)
        ----------
             86045
        SQL>    
            
        SQL> select count(*) from t1; //target端,只复制表定义,不填充数据
    
          COUNT(*)
        ----------
                 0
        SQL>
        
    6.初始化加载数据
      注:在异构数据库平台,这个功能显得非常的有用!而在oracle-oracle的数据复制条件下,oracle推荐使用expdp/impdp工具
        6.1 source端添加extract进程
            GGSCI (WIN-GM5PVS1CILH) 2> info mgr
            Manager is running (IP port WIN-GM5PVS1CILH.7809, Process ID 232).
            
            GGSCI (WIN-GM5PVS1CILH) 3> add extract einig1,sourceistable  //sourceistable代表直接从表中读取数据
            EXTRACT added.
    
            GGSCI (WIN-GM5PVS1CILH) 4> edit params einig1                //einig1代表extract initial load group 1缩写
            
            GGSCI (WIN-GM5PVS1CILH) 5> view params einig1                //查看设置后的参数
            extract einig1
            setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
            userid ggs,password ggs
            rmthost 192.168.0.21,mgrport 7809
            rmttask replicat,group rinig1
            table scott.t1;
            GGSCI (WIN-GM5PVS1CILH) 6>
    
        
        6.2 target端添加replicat进程
            GGSCI (Oracle02) 2> info mgr
            Manager is running (IP port Oracle02.7809, Process ID 21213).
    
            GGSCI (Oracle02) 3> add replicat rinig1,specialrun         //rinig1代表replicat initial load group 1缩写  
            REPLICAT added.
    
            GGSCI (Oracle02) 4> edit params rinig1                       //rinig1的名字必须同source端定义的group名字相同  
    
            GGSCI (Oracle02) 5> view params rinig1                     //查看设置后的参数
            replicat rinig1  
            setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)  
            assumetargetdefs  
            userid ggt,password ggt  
            discardfile ./dirrpt/rinig1.dsc,purge  
            map scott.*,target scott.*;
    
            GGSCI (Oracle02) 6> 
    
        6.3.source端启动extract进程,查看日志输出    
            GGSCI (WIN-GM5PVS1CILH) 6> start extract einig1
    
            Sending START request to MANAGER ...
            EXTRACT EINIG1 starting
    
            GGSCI (WIN-GM5PVS1CILH) 7>    
    
        6.4 target端验证        
            SQL> conn scott/scott
            Connected.
            SQL> select count(*) from t1;
    
              COUNT(*)
            ----------
                 81000
    
            SQL>     
        
            在这期间碰到几个坑,详见《OGG初始化加载数据时遇到的问题汇总》
    
    7.配置wind,linux间的实时同步复制
        7.1 在source上配置extract进程,进程的名字不能超过8个字符    
            GGSCI (WIN-GM5PVS1CILH) 2> edit params eora_t1
            GGSCI (WIN-GM5PVS1CILH) 3> view params eora_t1
            extract eora_t1
            setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
            userid ggs@orcl_w,password ggs
            exttrail dirdat/sp
            table scott.*;
            GGSCI (WIN-GM5PVS1CILH) 4>    
    
        7.2 开启scott用户下所有表的附加日志 (前面已经开始了数据库的附加日志,此处应该可以省略)        
            GGSCI (WIN-GM5PVS1CILH) 4> dblogin userid ggs, password ggs
            Successfully logged into database.
    
            GGSCI (WIN-GM5PVS1CILH as ggs@orcl) 5> add trandata scott.*    
        
        7.3 添加extract进程,添加trail文件,文件名前缀不能超过2个字符            
            GGSCI (WIN-GM5PVS1CILH) 1> add extract eora_t1,tranlog,begin now
            EXTRACT added.
    
            GGSCI (WIN-GM5PVS1CILH) 2> add exttrail dirdat/sp,extract eora_t1,megabytes 100
            EXTTRAIL added.
    
            GGSCI (WIN-GM5PVS1CILH) 6> start extract eora_t1
            Sending START request to MANAGER ...
            EXTRACT EORA_T1 starting
    
            GGSCI (WIN-GM5PVS1CILH) 7>
        
        7.4:添加pump进程        
            GGSCI (WIN-GM5PVS1CILH) 2> edit params pora_t1
            GGSCI (WIN-GM5PVS1CILH) 3> view params pora_t1
            extract pora_t1
            setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
            passthru
            rmthost 192.168.0.21,mgrport 7809
            rmttrail dirdat/rp
            table scott.*;
            GGSCI (WIN-GM5PVS1CILH) 4>    
    
            GGSCI (WIN-GM5PVS1CILH) 1> add extract pora_t1,exttrailsource dirdat/sp   //这里sp文件名同前面extract进程参数文件中定义的trail文件名一致        
            EXTRACT added.
            GGSCI (WIN-GM5PVS1CILH) 2>        
        
            GGSCI (WIN-GM5PVS1CILH) 3> add rmttrail dirdat/rp,extract pora_t1,megabytes 100 //这里rp文件名同前面pora_t1进程参数文件中定义的trail文件名一致
            RMTTRAIL added.
            GGSCI (WIN-GM5PVS1CILH) 4>    
        
            GGSCI (WIN-GM5PVS1CILH) 5> start extract pora_t1
            Sending START request to MANAGER ...
            EXTRACT PORA_T1 starting
            GGSCI (WIN-GM5PVS1CILH) 6> info all
    
            Program     Status      Group       Lag at Chkpt  Time Since Chkpt
            MANAGER     RUNNING
            EXTRACT     RUNNING     EORA_T1     00:00:00      00:00:07
            EXTRACT     RUNNING     PORA_T1     00:00:00      00:00:00
    
            GGSCI (WIN-GM5PVS1CILH) 7>    
        
        
        7.5 在target端添加检查表,配置replicat进程    
            GGSCI (Oracle02) 5> edit params ./GLOBALS  
            checkpointtable ggt.chkpt
            GGSCI (Oracle02 as ggt@orcl) 2> add checkpointtable
            No checkpoint table specified. Using GLOBALS specification (ggt.chkpt)...
            Successfully created checkpoint table ggt.chkpt.
            GGSCI (Oracle02 as ggt@orcl) 3>        
        
            SQL> select tname from tab;
    
            TNAME
            ------------------------------
            CHKPT
            CHKPT_LOX
    
            SQL>     
        
            #配置replicat进程
            GGSCI (Oracle02 as ggt@orcl) 3> edit params rora_t1
            GGSCI (Oracle02 as ggt@orcl) 4> view params rora_t1  
            replicat rora_t1  
            setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)  
            userid ggt,password ggt  
            handlecollisions  
            assumetargetdefs  
            discardfile dirrpt/rora_t1.dsc,purge  
            map scott.* ,target scott.*;
    
            GGSCI (Oracle02 as ggt@orcl) 5>     
        
            GGSCI (Oracle02 as ggt@orcl) 5> add replicat rora_t1,exttrail dirdat/rp
            REPLICAT added.
            GGSCI (Oracle02 as ggt@orcl) 6>    
                
    
            GGSCI (Oracle02 as ggt@orcl) 6> start replicat rora_t1
            Sending START request to MANAGER ...
            REPLICAT RORA_T1 starting
            GGSCI (Oracle02 as ggt@orcl) 7>    
        
            GGSCI (Oracle02 as ggt@orcl) 7> info replicat rora_t1  
            REPLICAT   RORA_T1   Last Started 2016-12-13 17:26   Status RUNNING
            Checkpoint Lag       00:00:00 (updated 00:00:00 ago)
            Process ID           23078
            Log Read Checkpoint  File dirdat/rp000000002
                                 2016-12-13 17:08:29.494703  RBA 1518
            GGSCI (Oracle02 as ggt@orcl) 8>    
            
            GGSCI (Oracle02 as ggt@orcl) 8> info all
            Program     Status      Group       Lag at Chkpt  Time Since Chkpt
            MANAGER     RUNNING                                           
            REPLICAT    RUNNING     RORA_T1     00:00:00      00:00:01    
            GGSCI (Oracle02 as ggt@orcl) 9> 
        
    
    8.测试
        8.1数据同步
        C:UsersAdministrator>sqlplus scott/scott
        连接到:
        Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
        With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
        SQL> select max(object_id) from t1;
    
        MAX(OBJECT_ID)
        --------------
                 87135
    
        SQL> desc t1;
         名称                                      是否为空? 类型
         ----------------------------------------- -------- ----------------------------
    
         OWNER                                              VARCHAR2(30)
         OBJECT_NAME                                        VARCHAR2(128)
         SUBOBJECT_NAME                                     VARCHAR2(30)
         OBJECT_ID                                 NOT NULL NUMBER
         DATA_OBJECT_ID                                     NUMBER
         OBJECT_TYPE                                        VARCHAR2(19)
         CREATED                                            DATE
         LAST_DDL_TIME                                      DATE
         TIMESTAMP                                          VARCHAR2(19)
         STATUS                                             VARCHAR2(7)
         TEMPORARY                                          VARCHAR2(1)
         GENERATED                                          VARCHAR2(1)
         SECONDARY                                          VARCHAR2(1)
         NAMESPACE                                          NUMBER
         EDITION_NAME                                       VARCHAR2(30)
    
        SQL> insert into t1 (object_id,object_name) values (87136,'ogg_test');
    
        已创建 1 行。
    
        SQL> commit;
    
        提交完成。
    
        SQL> conn scott/scott@orcl_L
        已连接。
        SQL> select max(object_id) from t1;
    
        MAX(OBJECT_ID)
        --------------
                 87136
    
        SQL>    
        
        8.2 删除测试    
        SQL> conn scott/scott
        已连接。
        SQL> delete from t1 where object_id > 1000;
        已删除85048行。
        SQL> commit;
        提交完成。
        SQL> select max(object_id) from t1;
    
        MAX(OBJECT_ID)
        --------------
                  1000
    
        SQL> conn scott/scott@orcl_L
        已连接。
        SQL>  select max(object_id) from t1;
    
        MAX(OBJECT_ID)
        --------------
                 87136
        
        
        
    
        
        
        
        
        
        
  • 相关阅读:
    『PyTorch』第二弹_张量
    大数据技术之_12_Sqoop学习_Sqoop 简介+Sqoop 原理+Sqoop 安装+Sqoop 的简单使用案例+Sqoop 一些常用命令及参数
    HBase 构建 Scanner 体系图解
    HBase 默认刷写文件 flush_compact.xml 注释解析
    Vim 命令、操作、快捷键全集
    10个在UNIX或Linux终端上快速工作的建议
    如何三招帮你排查Linux中的硬件问题
    介绍一些有趣的MySQL pager命令
    MySQL数据库select语句的使用方法
    能够在Linux系统中运行的5款大型耐玩游戏
  • 原文地址:https://www.cnblogs.com/polestar/p/6179500.html
Copyright © 2011-2022 走看看