• day17——oracleGG搭建


    manager进程
    运行在源端和目标端,启动,监控,重启goldengate的其他进程,报告错误,分配数据空间,发布阀值报告

    extract进程
    运行在数据库源端,负责从源端数据表或日志中捕获数据
    extract利用其内在的checkpoint机制,周期性的检查并记录读写位置,写入到一个本地的trail文件.

    pump进程
    运行在数据库源端,如果源端使用了本地trail文件,那么pump进程就把trail以数据块形式通过tcp/ip发送到目标端,如果不使用trail文件,那么由extract进程在抽取完数据以后,直接投递到目标端

    trail文件
    源端叫本地trail文件,目标端叫远程trail文件.
    作用防止单点故障,将事务信息持久化,并使用checkpoint记录位置,如发生故障,则根据checkpoint记录重传.

    replicat进程
    在目标端运行,负责读取目标端trail文件中的内容,并将其解析为DML或DDL

    ======================================
    1.源,目标端开启监听,传输文件
    2.
    [oracle@oracle111 ~]$ mkdir /oracle/app/ggate
    [oracle@oracle111 ff]$ cp goldengate.zip /oracle/app/ggate/
    [oracle@oracle111 ff]$ cd /oracle/app/ggate/
    [oracle@oracle111 ggate]$ unzip goldengate.zip 
    [oracle@oracle111 ggate]$ tar -xvf fbo_ggs_Linux_x86_ora10g_32bit.tar

    [oracle@oracle111 ~]$ vi .bash_profile 
    添加
    export GGATE_HOME=/oracle/app/ggate
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/oracle/app/ggate
    [oracle@oracle111 ~]$ source .bash_profile 

    3.安装goldengate
    [oracle@oracle111 ~]$ cd /oracle/app/ggate/
    [oracle@oracle111 ggate]$ ./ggsci 

    GGSCI (oracle111) 1> create subdirs

    4.环境准备
    开启归档模式
    SQL> alter database archivelog;

    SQL> alter database add supplemental log data;
    (( 在oracle中可以通过rowid来定位某条记录,但是目标端的数据库和源端数据库的数据库可能完全不一样,所以无法通过rowid来确定源端数据库的逻辑变化,这时附加日志supplemental log便登上了表演的舞台。数据库在开启附加日志功能后,对于源端的修改操作,oracle会同时追加能够唯一标示记录的列到redo log。这样目标端数据库就可以知道源端发生了哪些具体的变化。))

    SQL> alter database force logging; 

    SQL> alter system set recyclebin=off scope=spfile;(关闭回收站功能)
    SQL> shutdown immediate;
    SQL> startup

    5.创建授权用户(支持DDL)
    SQL> create user ggate identified by ggate default tablespace users temporary tablespace temp quota unlimited on users; 

    SQL> grant connect,resource,dba to ggate; 
    SQL> grant execute on utl_file to ggate; 
    SQL> grant restricted session to ggate;

    SQL> @$GGATE_HOME/marker_setup.sql;
    Enter GoldenGate schema name:ggate

    SQL> @$GGATE_HOME/ddl_setup.sql;
    Enter GoldenGate schema name:ggate
    Enter mode of installation:INITIALSETUP

    SQL> @$GGATE_HOME/role_setup.sql;
    Enter GoldenGate schema name:ggate

    SQL> grant GGS_GGSUSER_ROLE to ggate;
    SQL> @$GGATE_HOME/ddl_enable.sql; 

    6.创建源端用户(用于同步的用户)
    SQL> create user sender identified by ggate default tablespace users temporary tablespace temp quota unlimited on users;

    SQL> grant dba to sender;
    SQL> grant  CREATE SESSION to sender;
    SQL> grant dba,connect,resource to ggate; 
    SQL> grant select on v_$session to ggate;

    [oracle@oracle111 ~]$ mkdir -p /oracle/app/ggate/dirdat/tt 
    7.gg源复制队列配置
    [oracle@oracle111 ggate]$ ./ggsci
    GGSCI (oracle111) 1> edit params mgr
    添加:
    PORT 7809
    GGSCI (oracle111) 1> dblogin userid ggate,password ggate 
    GGSCI (oracle111) 2> add extract ext1,tranlog,begin now
    GGSCI (oracle111) 3> add exttrail /oracle/app/ggate/dirdat/tt,extract ext1
    GGSCI (oracle111) 4> edit params ext1
    添加:
    extract ext1
    userid ggate,password ggate
    rmthost 192.168.8.18, mgrport 7809
    rmttrail /oracle/app/ggate/dirdat/tt
    ddl include mapped objname sender.*;
    table sender.*;

    GGSCI (oracle111) 5> stop mgr
    GGSCI (oracle111) 6> stop ext1

    8.目标端配置环境()

    [oracle@oracle18 admin]$ mkdir /oracle/app/ggate
    [oracle@oracle18 ff]$ cp goldengate.zip /oracle/app/ggate/
    [oracle@oracle18 ff]$ cd /oracle/app/ggate/
    [oracle@oracle18 ggate]$ unzip goldengate.zip
    [oracle@oracle18 ggate]$ tar -xvf fbo_ggs_Linux_x86_ora10g_32bit.tar 

    [oracle@oracle18 ~]$ vi .bash_profile 
    添加:
    export GGATE_HOME=/oracle/app/ggate
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/oracle/app/ggate
    [oracle@oracle18 ~]$ source .bash_profile 

    [oracle@oracle18 ~]$  cd /oracle/app/ggate/
    [oracle@oracle18 ggate]$ ./ggsci 
    GGSCI (oracle18) 1> create subdirs

    创建用户
    [oracle@oracle18 ggate]$ sqlplus / as sysdba

    SQL> create user ggate identified by ggate default tablespace users temporary tablespace temp quota unlimited on users;
    SQL> create user receiver identified by ggate default tablespace users temporary tablespace temp quota unlimited on users;(接收同步的用户)

    SQL> grant connect,resource,dba to ggate; 
    SQL> grant execute on utl_file to ggate; 
    SQL> grant restricted session to ggate;
    SQL> grant connect,resource,dba to receiver; 
    SQL> grant select on v_$session to receiver; 

    开启归档模式
    SQL> alter database archivelog;

    SQL> alter database add supplemental log data;
    SQL>  alter database force logging;

    [oracle@oracle18 ggate]$ ./ggsci 
    GGSCI (oracle18) 1> edit params ./GLOBALS
    添加:
    GGSCHEMA ggate
    CHECKPOINTTABLE ggate.checkpoint 

    GGSCI (oracle18) 2> edit params mgr 
    添加:
    PORT 7809

    GGSCI (oracle18) 3> dblogin userid ggate,password ggate 
    GGSCI (oracle18) 4> add checkpointtable ggate.checkpoint (增加检测点) 

    GGSCI (oracle18) 5> add replicat rep1, exttrail /oracle/app/ggate/dirdat/tt, checkpointtable ggate.checkpoint (增加同步队列)

    GGSCI (oracle18) 6> edit params rep1
    添加:
    replicat rep1
    ASSUMETARGETDEFS
    userid ggate, password ggate
    discardfile /oracle/app/ggate/dirdat/rep1_discard.txt, append, megabytes 10
    DDL include all
    map sender.*, target receiver.*; 

    [oracle@oracle18 ggate]$ mkdir -p /oracle/app/ggate/dirdat/tt 


    9.验证
    源,目标
    alter system switch logfile;(让归档目录产生)

    源端
    GGSCI (oracle111) 1> start mgr
    GGSCI (oracle111) 2> start ext1
    GGSCI (oracle111) 3> view report ext1

    目标端
    GGSCI (oracle18) 1> start mgr
    GGSCI (oracle18) 2> start rep1

    SQL>  alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;

    GGSCI (oracle111) 6> info ext1 detail


    源端
    SQL> conn sender/ggate
    SQL> create table xixi(id int primary key);
    SQL> insert into xixi values(123123);
    SQL> commit;

    目标端
    SQL> conn receiver/ggate
    SQL> select * from xixi; (也能看到xixi表,终于成功了)

            ID
    ----------
        123123
    =====================================
    排错::

    [root@oracle18 ~]# ps -ef |grep /oracle/app

    [oracle@oracle18 ggate]$ cat ggserr.log(日志) 

    --------------------------
    日志工具
    GGSCI (oracle18) 45> info rep2

    REPLICAT   REP2      Last Started 2013-03-01 12:50   Status ABENDED
    Checkpoint Lag       00:00:00 (updated 00:02:17 ago)
    Log Read Checkpoint  File /oracle/app/ggate/dirdat/tt000000
                         First Record  RBA 950


    1.
    [oracle@oracle18 ggate]$ ./logdump 
    Logdump 1 >open /oracle/app/ggate/dirdat/tt000000

    Logdump 2 >pos 950
    Logdump 3 >n(查看操作,可以打多次)

    Logdump 8 >n

    2013/03/05 01:13:18.952.227 DDLOP                Len  1192 RBA 5192 
    Name:  
    After  Image:                                             Partition 0   G  s   
     2c43 353d 2731 3030 3827 2c2c 4237 3d27 3530 3827 | ,C5='1008',,B7='508'  
     2c2c 4232 3d27 272c 2c42 333d 2753 454e 4445 5227 | ,,B2='',,B3='SENDER'  
     2c2c 4234 3d27 4845 4845 272c 2c43 3132 3d27 272c | ,,B4='HEHE',,C12='',  
     2c43 3133 3d27 272c 2c42 353d 2754 4142 4c45 272c | ,C13='',,B5='TABLE',  
     2c42 363d 2743 5245 4154 4527 2c2c 4238 3d27 4747 | ,B6='CREATE',,B8='GG  
     4154 452e 4747 535f 4444 4c5f 4849 5354 272c 2c42 | ATE.GGS_DDL_HIST',,B  
     393d 2753 454e 4445 5227 2c2c 4337 3d27 3130 2e32 | 9='SENDER',,C7='10.2  

    [oracle@oracle18 ggate]$ ./ggsci 
    GGSCI (oracle18) 1> alter replicat rep2,extrba 5192

    GGSCI (oracle18) 9> start rep2  (跳过之前的加载内容)


















  • 相关阅读:
    简练软考知识点整理-项目定义活动过程
    简练软考知识点整理-规划进度管理
    简练软考知识点整理-控制范围
    软考考前注意事项
    简练软考知识点整理-确认范围管理
    数据库之表关系
    数据库引擎
    数据库概念
    IO模型
    异步回调,线程队列,协程
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/58d5ef4e0699a8812f2596a289bcd139.html
Copyright © 2020-2023  润新知