Goldengate 基本配置

Goldengate 基本配置

源库ip:192.168.9.142     db_name:testdb
目标库ip:192.168.9.143   db_name:o01fdr
监控库ip:192.168.9.144   db_name:dbadb
===============================================================================
1-9步源库和目标数据库做一样的操作
===============================================================================
1 创建目录并安装
[oracle@test1 ~]:testdb> cd /tmp
[oracle@test1 tmp]:testdb> ll
total 87124
drwxr-x---. 2 oracle oinstall     4096 Oct 28 13:27 hsperfdata_oracle
drwx------. 2 root   root         4096 Oct 28 11:24 keyring-uaxFJh
-rw-r--r--. 1 root   root     89186858 Oct 28 10:08 ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
drwx------. 2 root   root         4096 Oct 28 11:28 orbit-root
drwx------. 2 root   root         4096 Oct 28 11:24 pulse-oZDqCnH2yFgj
drwx------. 2 oracle oinstall     4096 Aug  7 22:41 pulse-Up2S1oVzRfXF
drwx------. 2 root   root         4096 Oct 28 11:24 ssh-WSdzia1676

[oracle@test1 tmp]:testdb> mkdir -p /app/goldengate
[oracle@test1 tmp]:testdb>

[oracle@test1 tmp]:testdb> cp ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip /app/goldengate/
[oracle@test1 tmp]:testdb>
[oracle@test1 tmp]:testdb>
[oracle@test1 tmp]:testdb> cd /app/goldengate/
[oracle@test1 goldengate]:testdb> ll
total 87100
-rw-r--r--. 1 oracle oinstall 89186858 Oct 28 13:44 ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@test1 goldengate]:testdb> unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
Archive:  ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
  inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar  
  inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf  
  inflating: Oracle GoldenGate 11.2.1.0.1 README.txt  
  inflating: Oracle GoldenGate 11.2.1.0.1 README.doc  

[oracle@test1 goldengate]:testdb> ll
total 310632
-rw-rw-r--. 1 oracle oinstall 228556800 Apr 23  2012 fbo_ggs_Linux_x64_ora11g_64bit.tar
-rw-r--r--. 1 oracle oinstall  89186858 Oct 28 13:44 ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
-rwxrwxrwx. 1 oracle oinstall    220546 May  2  2012 OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
-rwxrwxrwx. 1 oracle oinstall     93696 May  2  2012 Oracle GoldenGate 11.2.1.0.1 README.doc
-rwxrwxrwx. 1 oracle oinstall     24390 May  2  2012 Oracle GoldenGate 11.2.1.0.1 README.txt
[oracle@test1 goldengate]:testdb> tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
UserExitExamples/
UserExitExamples/ExitDemo_more_recs/
UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.HPUX
UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.SOLARIS
UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.LINUX
UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.AIX
UserExitExamples/ExitDemo_more_recs/exitdemo_more_recs.vcproj
UserExitExamples/ExitDemo_more_recs/exitdemo_more_recs.c
UserExitExamples/ExitDemo_more_recs/readme.txt
UserExitExamples/ExitDemo_passthru/
UserExitExamples/ExitDemo_passthru/exitdemo_passthru.c
UserExitExamples/ExitDemo_passthru/exitdemopassthru.vcproj
UserExitExamples/ExitDemo_passthru/Makefile_passthru.HPUX
UserExitExamples/ExitDemo_passthru/Makefile_passthru.AIX
UserExitExamples/ExitDemo_passthru/Makefile_passthru.HP_OSS
UserExitExamples/ExitDemo_passthru/Ma

===============================================================================
2 配置环境变量:
源库:
[oracle@test1 ~]:testdb> cat prof_testdb
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs


export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/ora11g
export GRID_BASE=/app/grid
export GRID_HOME=$GRID_BASE/grid11g
export ORACLE_SID=testdb
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$GRID_HOME/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/OPatch
export EDITOR=vi
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export OGG_HOME=/app/goldengate
export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH
export PATH=$OGG_HOME:$PATH
export PS1="[\u@\h \W]:$ORACLE_SID> "
umask 022
[oracle@test1 ~]:testdb>
目标库:
[oracle@test2 ~]:O01FDR> cat prof_O01FDR
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs


export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/ora11g
export GRID_BASE=/app/grid
export GRID_HOME=$GRID_BASE/grid11g
export ORACLE_SID=O01FDR
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$GRID_HOME/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/OPatch
export EDITOR=vi
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export OGG_HOME=/app/goldengate
export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH
export PATH=$OGG_HOME:$PATH
export PS1="[\u@\h \W]:$ORACLE_SID> "
umask 022
[oracle@test2 ~]:O01FDR>

===============================================================================
3 打开supplementary log
[oracle@test1 goldengate]:testdb> sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.4.0 Production on Tue Oct 28 13:50:25 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
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 force_logging,supplemental_log_data_min from v$database;

FOR SUPPLEME
--- --------
NO  NO

SQL> alter database force logging;

Database altered.

SQL> alter database add supplemental log data;

Database altered.

SQL> select force_logging, supplemental_log_data_min from v$database;

FOR SUPPLEME
--- --------
YES YES

SQL>

===============================================================================

4 建立表空间
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
CREATE TABLESPACE DBADATATBS DATAFILE
'/app/oracle/oradata/testdb/dbadatatbs01.dbf' SIZE 2048M AUTOEXTEND OFF
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

数据库访问用户
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
CREATE USER GGSYNC
IDENTIFIED BY 123456
DEFAULT TABLESPACE DBADATATBS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

赋给用户权限
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
---roles
GRANT CONNECT TO GGSYNC;
GRANT RESOURCE TO GGSYNC;
ALTER USER GGSYNC DEFAULT ROLE ALL;
---privileges
GRANT ALTER SESSION TO GGSYNC;
GRANT CREATE SESSION TO GGSYNC;
GRANT SELECT ANY TABLE TO GGSYNC;
GRANT SELECT ANY DICTIONARY TO GGSYNC;
GRANT CREATE TABLE TO GGSYNC;
GRANT UNLIMITED TABLESPACE TO GGSYNC;
GRANT FLASHBACK ANY TABLE TO GGSYNC;
GRANT INSERT ANY TABLE TO GGSYNC;
GRANT DELETE ANY TABLE TO GGSYNC;
GRANT UPDATE ANY TABLE TO GGSYNC;
GRANT ALTER ANY TABLE TO GGSYNC;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

心跳表
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
CREATE TABLE GGSYNC.GG_SYNC_TESTDB
(
SOURCE_DB VARCHAR2 (20 BYTE),
TARGET_DB VARCHAR2 (20 BYTE),
EXT_NAME VARCHAR2 (20 BYTE),
DPE_NAME VARCHAR2 (20 BYTE),
REP_NAME VARCHAR2 (20 BYTE),
CHECK_FLAG VARCHAR2 (20 BYTE),
CHECK_TIME VARCHAR2 (30 BYTE) DEFAULT SYSDATE
)
TABLESPACE DBADATATBS;

*************************************************
CREATE UNIQUE INDEX GGSYNC.PK_GG_SYNC_TESTDB
ON GGSYNC.GG_SYNC_TESTDB (SOURCE_DB, TARGET_DB);

*************************************************
ALTER TABLE GGSYNC.GG_SYNC_TESTDB ADD (
CONSTRAINT PK_GG_SYNC_TESTDB
PRIMARY KEY
(SOURCE_DB,TARGET_DB)
USING INDEX GGSYNC.PK_GG_SYNC_TESTDB);

***************************************************
GRANT SELECT,
INSERT,
UPDATE,
DELETE
ON GGSYNC.GG_SYNC_TESTDB
TO DBMON;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

建立心跳表更新存储过程
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
CREATE OR REPLACE PROCEDURE GGSYNC.PROC_GG_SYNC_UPDATE
AS
v_time VARCHAR2 (30 BYTE);
v_count NUMBER;
v_table VARCHAR2 (50 BYTE);
v_sql VARCHAR2 (1000 BYTE);
v_eor VARCHAR2 (200 BYTE);
v_dbname VARCHAR2 (30 BYTE);
BEGIN
SELECT TO_CHAR (SYSDATE, 'YYYY-MM-DD HH24:MI:SS') INTO v_time FROM
DUAL;
SELECT NAME
INTO V_DBNAME
FROM V$DATABASE
WHERE ROWNUM = 1;
v_table := 'ggsync.gg_sync_' || v_dbname;
v_sql :=
'select count(*) from '
|| v_table
|| ' where source_db=''ALL'' and target_db=''ALL''';
EXECUTE IMMEDIATE v_sql INTO v_count;
IF v_count = 0
THEN
BEGIN
v_sql :=
'insert into '
|| v_table
|| ' values(''ALL'',''ALL'',''E_ALL'',''T_ALL'',''R_ALL'',''Y'','''
|| v_time
|| ''')';
EXECUTE IMMEDIATE v_sql;
COMMIT;
END;
ELSE
BEGIN
v_sql :=
'update '
|| v_table
|| ' set check_time='''
|| v_time
|| ''' where source_db=''ALL'' and target_db=''ALL''';
EXECUTE IMMEDIATE v_sql;
COMMIT;
END;
END IF;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
NULL;
END;
/
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

建立心跳表自动更新JOB(GGSYNC 下创建)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT (job => X,
what => 'begin ggsync.proc_gg_sync_update; end;',
next_date => SYSDATE,
interval => 'sysdate+1/1440',
no_parse => FALSE);
SYS.DBMS_OUTPUT.PUT_LINE ('Job Number is: ' || TO_CHAR (x));
COMMIT;
END;
/
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

===============================================================================
5 建goldengate目录
[root@test1 testdb]# su - oracle
[oracle@test1 ~]$ . prof_testdb
[oracle@test1 ~]:testdb> cd $OGG_HOME
[oracle@test1 goldengate]:testdb> ll
total 513484
-rw-r-----. 1 oracle oinstall       426 Oct 15  2010 bcpfmt.tpl
-rw-r-----. 1 oracle oinstall      1725 Oct 15  2010 bcrypt.txt
drwxr-x---. 2 oracle oinstall      4096 Apr 23  2012 cfg
-rw-r-----. 1 oracle oinstall      1285 Feb 29  2012 chkpt_ora_create.sql

[oracle@test1 goldengate]:testdb> mkdir direnv
[oracle@test1 goldengate]:testdb> ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14

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

GGSCI (test1) 1> create subdirs

Creating subdirectories under current directory /app/goldengate

Parameter files                /app/goldengate/dirprm: already exists
Report files                   /app/goldengate/dirrpt: created
Checkpoint files               /app/goldengate/dirchk: created
Process status files           /app/goldengate/dirpcs: created
SQL script files               /app/goldengate/dirsql: created
Database definitions files     /app/goldengate/dirdef: created
Extract data files             /app/goldengate/dirdat: created
Temporary files                /app/goldengate/dirtmp: created
Stdout files                   /app/goldengate/dirout: created

===============================================================================
6  编辑GLOBALS 文件
--输入如下内容
CHECKPOINTTABLE ggsync.gg_checkpoint_tab
GGSCHEMA ggsync

GGSCI (test1) 2> edit params ./globals
CHECKPOINTTABLE ggsync.gg_checkpoint_tab
GGSCHEMA ggsync
~
~
~
~
~
"./globals" [New] 2L, 57C written


GGSCI (test1) 3>



===============================================================================
7 增加CHECKPOINTTABLE
[oracle@test1 goldengate]:testdb> ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14

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


GGSCI (test1) 1> dblogin userid ggsync,password 123456
Successfully logged into database.

GGSCI (test1) 2> add checkpointtable ggsync.gg_checkpoint_tab

Successfully created checkpoint table ggsync.gg_checkpoint_tab.

GGSCI (test1) 3>


===============================================================================
8  创建MGR 参数文件并启动MGR 进程
--输入如下内容:
port 7809
DYNAMICPORTLIST 7810-7909
PURGEOLDEXTRACTS ./dirdat/*/*,usecheckpoints,minkeepdays 3
autostart er *
autorestart er *,retries 5,waitminutes 7,resetminutes 60
lagreporthours 1
laginfominutes 5
lagcriticalminutes 5


GGSCI (test1) 3> edit param mgr
port 7809
DYNAMICPORTLIST 7810-7909
PURGEOLDEXTRACTS ./dirdat/*/*,usecheckpoints,minkeepdays 3
autostart er *
autorestart er *,retries 5,waitminutes 7,resetminutes 60
lagreporthours 1
laginfominutes 5
lagcriticalminutes 5
~
~
~
"dirprm/mgr.prm" [New] 8L, 222C written


启动mgr:
GGSCI (test1) 4> start mgr

Manager started.


GGSCI (test1) 5> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           

GGSCI (test1) 6>

===============================================================================
9  创建oby 文件
[oracle@test1 goldengate]:testdb> cd $OGG_HOME
[oracle@test1 goldengate]:testdb> cd direnv/

[oracle@test1 direnv]:testdb> vi testdb.oby
sETENV (ORACLE_HOME = /app/oracle/ora11g)
SETENV (ORACLE_SID=testdb)
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
userid ggsync, password 123456
~
~
~
"testdb.oby" [New] 4L, 146C written                                   
[oracle@test1 direnv]:testdb>
[oracle@test1 direnv]:testdb>

示例:
SETENV (ORACLE_HOME = "" )
SETENV (ORACLE_SID="")
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
userid ggsync, password ****



===============================================================================
源库配   抽取进程:e_testdb   传输进程:t_O01FDR
目标库配  恢复进程: r_testdb
===============================================================================

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
步骤10--14源库执行:(同步数据库testdb 的表test1.t1,test1.t2,test2.t1 至O01FDR 的test1.t1,test1.t2,test2.t1)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

10  创建抽取文件存放目录
cd $OGG_HOME/dirdat
mkdir e_testdb
[oracle@test1 ~]:testdb> cd $OGG_HOME/dirdat
[oracle@test1 dirdat]:testdb> ll
total 4
drwxr-xr-x. 2 oracle oinstall 4096 Oct 30 12:32 e_testdb
[oracle@test1 dirdat]:testdb>

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11  创建抽取进程
[oracle@test1 goldengate]:testdb> ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14

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

GGSCI (test1) 1> add extract e_testdb, tranlog, begin now
EXTRACT added.
GGSCI (test1) 2> add exttrail ./dirdat/e_testdb/ea, extract e_testdb, megabytes 500
EXTTRAIL added.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12  编辑抽取进程e_testdb
GGSCI (test1) 12> edit param e_testdb


添加内容:
EXTRACT e_testdb
obey ./direnv/testdb.oby
--tranlogoptions excludeuser ggsync
EXTTRAIL ./dirdat/e_testdb/ea
DISCARDFILE ./dirrpt/e_testdb.dsc,append,megabytes 2000
DISCARDROLLOVER AT 05:30 ON Friday
REPORTROLLOVER AT 05:30 ON Friday
REPORTCOUNT EVERY 10 MINUTES, RATE
WARNLONGTRANS 4H, CHECKINTERVAL 30m
numfiles 5000
DYNAMICRESOLUTION
WILDCARDRESOLVE DYNAMIC
-- gg sync
table ggsync.gg_sync_testdb;
table test1.t1;
table test1.t2;
table test2.t1;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13  添加附加日志
cd $OGG_HOME
./ggsci
GGSCI (test1) 1>dblogin userid ggsync,password 123456
GGSCI (test1) 1>add trandata ggsync.gg_sync_testdb
GGSCI (test1) 1>add trandata test1.t1
GGSCI (test1) 1>add trandata test1.t2
GGSCI (test1) 1>add trandata test2.t1

此步骤容易出错,一定要测试添加成功,测试表要具有sequence,主键索引之类的。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
14  配置传输进程
目标库DB_NAME 为:O01FDR
创建恢复文件存放目录:
mkdir $OGG_HOME/irdat/r_testdb

增加传输进程:t_O01FDR
cd $OGG_HOME
./ggsci
GGSCI (test1) 1>add extract t_O01FDR,exttrailsource ./dirdat/e_testdb/ea, begin now
GGSCI (test1) 1>add rmttrail ./dirdat/r_testdb/ra, extract t_O01FDR, MEGABYTES 500

编辑传输进程:t_O01FDR
GGSCI (test1) 15> edit param t_O01FDR
增加如下内容:
EXTRACT t_O01FDR
obey ./direnv/testdb.oby
passthru
RMTHOST 192.168.9.143, MGRPORT 7809, compress
RMTTRAIL ./dirdat/r_testdb/ra
DISCARDFILE ./dirrpt/t_O01FDR.dsc,append,megabytes 2000
DISCARDROLLOVER AT 05:30 ON Friday
REPORTROLLOVER AT 05:30 ON Friday
REPORTCOUNT EVERY 10 MINUTES, RATE
-- gg sync
table ggsync.gg_sync_testdb;
table test1.t1;
table test1.t2;
table test2.t1;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-------------------------------------------------------------------------------
步骤15--17 目标库执行 (配置恢复进程:r_testdb)
-------------------------------------------------------------------------------
15  创建恢复文件存放目录
cd $OGG_HOME/dirdat
mkdir r_testdb

-------------------------------------------------------------------------------
16  添加恢复进程:r_testdb
cd $OGG_HOME
./ggsic
GGSCI (test1) 1>add replicat r_testdb, EXTTRAIL ./dirdat/r_testdb/ra

-------------------------------------------------------------------------------
17  编辑恢复进程:r_testdb
cd $OGG_HOME
./ggsic
GGSCI (test1) 1>edit param r_testdb
添加如下内容:
replicat r_testdb
obey ./direnv/O01FDR.oby
--HANDLECOLLISIONS
REPERROR DEFAULT, ABEND
DISCARDFILE ./dirrpt/r_testdb.dsc,append,megabytes 2000
DISCARDROLLOVER AT 05:30 ON Friday
REPORTROLLOVER AT 05:30 ON Friday
REPORTCOUNT EVERY 10 MINUTES, RATE
numfiles 5000
CHECKPOINTSECS 30
GROUPTRANSOPS 10000
MAXTRANSOPS 30000
ASSUMETARGETDEFS
dynamicresolution
WILDCARDRESOLVE DYNAMIC
ALLOWDUPTARGETMAP
-- gg sync
map ggsync.gg_sync_testdb, target ggsync.gg_sync_testdb;
map test1.t1, target test1.t1;
map test1.t2, target test1.t2;
map test2.t1, target test2.t1;
-------------------------------------------------------------------------------


&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

1.初始化所有表数据
从源库复制需要同步的表至目标库
使用dblink方法同步:
(目标库执行)
create public database link dblink1
connect to GGSYNC identified by "123456"
 using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.142)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb)
    )
  )';
insert into GGSYNC.GG_SYNC_TESTDB select * from GGSYNC.GG_SYNC_TESTDB@dblink1;


create public database link dblink2
connect to test1 identified by "123456"
 using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.142)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb)
    )
  )';

create public database link dblink3
connect to test2 identified by "123456"
 using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.142)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb)
    )
  )';

create table test1.t1 as select * from test1.t1@dblink2;
create table test1.t2 as select * from test1.t1@dblink2;
create table test2.t1 as select * from test2.t1@dblink3;
create table test2.t2 as select * from test2.t1@dblink3;



2.启用参数HANDLECOLLISIONS
去掉HANDLECOLLISIONS 前的,”--”
(如果是重新同步个别表,则在map 后面添加HANDLECOLLISIONS,
例如:map test1.t1, target test.t1 HANDLECOLLISIONS;)

3.启动恢复进程r_testdb

4.等待恢复进程同步完成之后,停止恢复进程r_testdb

5.禁用HANDLECOLLISIONS

6.启动恢复进程
GGSCI (test2) 7> start r_testdb

7. 最后状态
源库:
GGSCI (test1) 16> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     E_TESTDB    00:00:00      00:00:04    
EXTRACT     RUNNING     T_O01FDR    00:00:00      00:00:03   

目标库:
GGSCI (test2) 12> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
REPLICAT    RUNNING     R_TESTDB    00:00:00      00:00:21    

全部属于running状态
并且测试数据可以同步过去,增加内容后,记得commit,才可以到目标库查询到相应的行
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
配置监控库:192.168.9.144
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

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