ORACLE GOLDEN GATE搭建配置文档(单向)

目的:

实现数据从oracle database 10.2.0.1.0oracle database 10.2.0.1.0的单向复制

环境:

Item

Source System

Target System

Platform

OEL5.4

OEL5.4

Hostname

zhang

gc1

Database

Oracle 10.2.0.1.0

Oracle 10.2.0.1.0

Character Set

Zhs16gbk

Zhs16gbk

ORACLE_SID

PROD

Rui

Listener Name/Port

LISTENER/1521

LISTENER/1521

Goldengate User

ogg

Ogg


实验步骤:

一、安装前准备

1. 在oracle用户的环境变量中增加以下一行:

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib

2. 将OGG的安装包上传到系统中

[oracle@zhang ~]$ rz

rz waiting to receive.

开始 zmodem 传输。  Ctrl+C 取消。

  100%   49900 KB 1919 KB/s 00:00:26       0 Errors

[oracle@zhang ~]$ ls

10201_database_linux32.zip  dept.dmp  hotbackup.sql  libXp-1.0.0-8.1.el5.i386.rpm  V18156-01-linux.zip

database                    Desktop   hot.sql        sqlnet.log

二、在linux上开始安装OGG 10g

源库:

[oracle@zhang ~]$ mkdir -p /u01/app/ogg

[oracle@zhang ~]$ cp V18156-01-linux.zip /u01/app/ogg/ 

[oracle@zhang ~]$ cd /u01/app/ogg/

[oracle@zhang ogg]$ unzip V18156-01-linux.zip

[oracle@zhang ogg]$ ls

ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar  V18156-01-linux.zip

[oracle@zhang ogg]$ tar -xvf ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar

目标库:

[oracle@gc1 ~]$ mkdir -p /u01/app/ogg

[oracle@gc1 ~]$ cp V18156-01-linux.zip /u01/app/ogg/

[oracle@gc1 ~]$ cd /u01/app/ogg/

[oracle@gc1 ogg]$ unzip V18156-01-linux.zip

[oracle@gc1 ogg]$ tar -xvf ggs_redhatAS40_x86_ora10g_32bit_v10.4.0.19_002.tar

三、为Glodengate创建子工作目录

源库:


[oracle@zhang ogg]$ ./ggsci


Oracle GoldenGate Command Interpreter for Oracle

Version 10.4.0.19 Build 002

Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42


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




GGSCI (zhang) 1> create subdirs


Creating subdirectories under current directory /u01/app/ogg


Parameter files                /u01/app/ogg/dirprm: created

Report files                   /u01/app/ogg/dirrpt: created

Checkpoint files               /u01/app/ogg/dirchk: created

Process status files           /u01/app/ogg/dirpcs: created

SQL script files               /u01/app/ogg/dirsql: created

Database definitions files     /u01/app/ogg/dirdef: created

Extract data files             /u01/app/ogg/dirdat: created

Temporary files                /u01/app/ogg/dirtmp: created

Veridata files                 /u01/app/ogg/dirver: created

Veridata Lock files            /u01/app/ogg/dirver/lock: created

Veridata Out-Of-Sync files     /u01/app/ogg/dirver/oos: created

Veridata Out-Of-Sync XML files /u01/app/ogg/dirver/oosxml: created

Veridata Parameter files       /u01/app/ogg/dirver/params: created

Veridata Report files          /u01/app/ogg/dirver/report: created

Veridata Status files          /u01/app/ogg/dirver/status: created

Veridata Trace files           /u01/app/ogg/dirver/trace: created

Stdout files                   /u01/app/ogg/dirout: created



GGSCI (zhang) 2>


目标库:


[oracle@gc1 ogg]$ ./ggsci


Oracle GoldenGate Command Interpreter for Oracle

Version 10.4.0.19 Build 002

Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42


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




GGSCI (gc1) 1> create subdirs



Creating subdirectories under current directory /u01/app/ogg


Parameter files                /u01/app/ogg/dirprm: created

Report files                   /u01/app/ogg/dirrpt: created

Checkpoint files               /u01/app/ogg/dirchk: created

Process status files           /u01/app/ogg/dirpcs: created

SQL script files               /u01/app/ogg/dirsql: created

Database definitions files     /u01/app/ogg/dirdef: created

Extract data files             /u01/app/ogg/dirdat: created

Temporary files                /u01/app/ogg/dirtmp: created

Veridata files                 /u01/app/ogg/dirver: created

Veridata Lock files            /u01/app/ogg/dirver/lock: created

Veridata Out-Of-Sync files     /u01/app/ogg/dirver/oos: created

Veridata Out-Of-Sync XML files /u01/app/ogg/dirver/oosxml: created

Veridata Parameter files       /u01/app/ogg/dirver/params: created

Veridata Report files          /u01/app/ogg/dirver/report: created

Veridata Status files          /u01/app/ogg/dirver/status: created

Veridata Trace files           /u01/app/ogg/dirver/trace: created

Stdout files                   /u01/app/ogg/dirout: created


四、用Goldengate配置oracle数据库

创建Goldengate用户,并赋予适当权限

源库:

SQL> create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/PROD/ogg01.dbf' size 50m autoextend on ;


Tablespace created.

SQL> create user ogg identified by Ogg default tablespace tbs_ogg temporary tablespace temp quota unlimited on tbs_ogg;


User created.


SQL> grant connect , resource to ogg;


Grant succeeded.


SQL> grant create session ,alter session to ogg;


Grant succeeded.


SQL> grant select any dictionary ,select any table to ogg;


Grant succeeded.


SQL> grant alter any table to ogg;


Grant succeeded.


SQL> grant flashback any table to ogg;


Grant succeeded.


SQL> grant execute on dbms_flashback to ogg;


Grant succeeded.

创建一个测试表,并插入数据

SQL> conn scott/tiger

Connected.


SQL> create table emp_ogg as select * from emp ;


Table created.

SQL> create table dept_ogg as select * from dept;


Table created.

为保证数据的一致性,为两张表添加约束


SQL> alter table emp_ogg add constraint pk_empno primary key(empno);


Table altered.



SQL> alter table dept_ogg add constraint pk_deptno primary key(deptno);


Table altered.

目标库:


SQL> create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/rui/rui/ogg01.dbf' size 50m autoextend on ;


Tablespace created.


SQL> create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace temp quota unlimited on tbs_ogg;


User created.

SQL> grant connect ,resource to ogg;


Grant succeeded.


SQL> grant create session ,alter session to ogg;


Grant succeeded.


SQL> grant select any dictionary ,select any table to ogg;


Grant succeeded.


SQL> grant create table to ogg;


Grant succeeded.

创建一个空表并赋予Goldengate用户DML操作权限

SQL> conn scott/tiger

Connected.

SQL> create table emp_ogg as select * from emp where 1=2;


Table created.


SQL> create table dept_ogg as select * from dept where 1=2;


Table created.


SQL> grant insert ,update,delete on emp_ogg to ogg;


Grant succeeded.


SQL> grant insert , update , delete on dept_ogg to ogg;


Grant succeeded.

五、确保源库处于最小日志开启模式状态

检查源库是否最小日志模式下:

SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;


SUPPLEME

--------

NO

打开最小补充日志

SQL> alter database add supplemental log data;


Database altered.

增加完之后,切换一下日志组,以确保处于最小补充日志模式下


SQL> alter system switch logfile;


System altered.

六、确保源数据库处于归档模式下

源库:

SQL> conn / as sysdba

Connected.

SQL> archive log list

Database log mode              No Archive Mode

Automatic archival             Disabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     6

Current log sequence           8

设置归档路径并开启归档

SQL> alter system set log_archive_dest_1 ='location=/u02/archivelog/PROD' scope=both;


System altered.


SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

开归档

SQL> startup mount

ORACLE instance started.


Total System Global Area  285212672 bytes

Fixed Size                  1218992 bytes

Variable Size              71304784 bytes

Database Buffers          209715200 bytes

Redo Buffers                2973696 bytes

Database mounted.

SQL> alter database archivelog;


Database altered.


SQL> alter database open ;


Database altered.

目标库:

SQL> alter system set log_archive_dest_1 ='location=/u02/archivelog/rui' scope = both;


System altered.


SQL> archive log list

Database log mode              No Archive Mode

Automatic archival             Disabled

Archive destination            /u02/archivelog/rui

Oldest online log sequence     1

Current log sequence           2

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

开归档

SQL> startup mount

ORACLE instance started.


Total System Global Area  285212672 bytes

Fixed Size                  1218992 bytes

Variable Size              92276304 bytes

Database Buffers          188743680 bytes

Redo Buffers                2973696 bytes

Database mounted.

SQL> alter database archivelog ;


Database altered.

归档所有未归档日志


SQL> alter database open;


Database altered.


SQL> alter system archive log current;


System altered.

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u02/archivelog/rui

Oldest online log sequence     1

Next log sequence to archive   3

Current log sequence           3

七、检查源库是否处于force logging 模式,并开启force logging 模式

SQL> select force_logging from v$database;


FOR

---

NO


SQL> alter database force logging ;


Database altered.

确保在源库中的两张测试表的交互数据的改变能够被捕获

[oracle@zhang ogg]$ export ORACLE_SID=PROD

[oracle@zhang ogg]$ echo $ORACLE_SID

PROD

[oracle@zhang ogg]$ ./ggsci


Oracle GoldenGate Command Interpreter for Oracle

Version 10.4.0.19 Build 002

Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42


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




GGSCI (zhang) 1> DBLOGIN USERID ogg, PASSWORD ogg

Successfully logged into database.


GGSCI (zhang) 9> add trandata scott.dept_ogg


Logging of supplemental redo data enabled for table SCOTT.DEPT_OGG.


GGSCI (zhang) 10> add trandata scott.emp_ogg


Logging of supplemental redo data enabled for table SCOTT.EMP_OGG.


GGSCI (zhang) 13> info trandata scott.emp_ogg


Logging of supplemental redo log data is enabled for table SCOTT.EMP_OGG


GGSCI (zhang) 14> info trandata scott.dept_ogg


Logging of supplemental redo log data is enabled for table SCOTT.DEPT_OGG

八、配置goldengate manager进程

8.1 在源系统中配置manager

创建一个manager参数文件,分配一个端口号

GGSCI (zhang) 15> edit params mgr



PORT 7809

PURGEOLDEXTRACTS ./dirdat, USECHECKPOINTS


~

"dirprm/mgr.prm" [New] 3L, 53C written


启动manager


GGSCI (zhang) 1> start mgr


Manager started.

查看mgr是否已启动

GGSCI (zhang) 2> info mgr


Manager is running (IP port zhang.7809).

8.2 在目标系统上配置mgr

创建一个manager参数文件,分配一个端口号

GGSCI (gc1) 2> edit params mgr

PORT 7809

PURGEOLDEXTRACTS /u01/app/ogg/dirdat, USECHECKPOINTS


~

"dirprm/mgr.prm" [New] 3L, 64C written

启动manager


GGSCI (gc1) 3> start mgr


Manager started.

查看mgr是否已启动

GGSCI (gc1) 4> info mgr


Manager is running (IP port gc1.7809).

九、通过LOAD方式直接加载初始化数据

1.在源系统中配置提取进程

增加一个名为EINI_1的提取进程

GGSCI (zhang) 3> add extract EINI_1,sourceistable

EXTRACT added.

查看提取进程的info

GGSCI (zhang) 5> INFO EXTRACT *, TASKS


EXTRACT    EINI_1    Initialized   2014-04-24 14:29   Status STOPPED

Checkpoint Lag       Not Available

Log Read Checkpoint  Not Available

                     First Record         Record 0

Task                 SOURCEISTABLE

编辑该提取进程

GGSCI (zhang) 6> edit params EINI_1



-- GoldenGate Initial Data Capture

-- for EMP_OGG and DEPT_OGG

--

EXTRACT EINI_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

USERID ogg, PASSWORD Ogg

RMTHOST gc1, MGRPORT 7809

RMTTASK REPLICAT, GROUP RINI_1

TABLE scott.EMP_OGG;

TABLE scott.DEPT_OGG;


~

"dirprm/eini_1.prm" [New] 11L, 251C written



GGSCI (zhang) 7>

为了能够识别中文字符,将在提取进程、数据泵进程和复制进程中的环境变量NLS_LANG设为AMERICAN_AMERICA.ZHS16GBK

2. 在目标系统中配置复制进程

GGSCI (gc1) 1> add replicat RINI_1 ,specialrun

REPLICAT added.

查看RINI_1INFO

GGSCI (gc1) 6>  INFO REPLICAT *, TASKS


REPLICAT   RINI_1    Initialized   2014-05-14 01:31   Status STOPPED

Checkpoint Lag       00:00:00 (updated 00:01:48 ago)

Log Read Checkpoint  Not Available

Task                 SPECIALRUN



GGSCI (gc1) 7>

编辑初始化目标载入进程RINI_1

GGSCI (gc1) 7> edit params RINI_1



-- GoldenGate Initial Load Delivery

--

REPLICAT RINI_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

ASSUMETARGETDEFS

USERID ogg, PASSWORD Ogg

DISCARDFILE ./dirrpt/RINIaa.dsc, PURGE

MAP scott.*, TARGET scott.*;


~

"dirprm/rini_1.prm" [New] 9L, 210C written


GGSCI (gc1) 8>

注意:在MAP声明那行,第一个是源库要迁移的数据所在的用户模式,第二个时目标库要接收的数据所在的用户模式。

3. 完成初始化加载

在源系统中开启初始化载入进程EINI_1,然后在目标端的RINI_1进程将会自动启动


GGSCI (zhang) 1> start extract EINI_1


Sending START request to MANAGER ...

EXTRACT EINI_1 starting

查看初始化载入结果和进程的状态

GGSCI (zhang) 16> view REPORT EINI_1



2014-04-24 17:30:24  GGS INFO        414  Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is used.


***********************************************************************

                 Oracle GoldenGate Capture for Oracle

                      Version 10.4.0.19 Build 002

   Linux, x86, 32bit (optimized), Oracle 10 on Sep 18 2009 00:01:59


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



                    Starting at 2014-04-24 17:30:24

***********************************************************************


Operating System Version:

Linux

Version #1 SMP Tue Aug 18 15:51:54 EDT 2009, Release 2.6.18-164.el5

Node: zhang

Machine: i686

                         soft limit   hard limit

Address Space Size   :    unlimited    unlimited

Heap Size            :    unlimited    unlimited

File Size            :    unlimited    unlimited

CPU Time             :    unlimited    unlimited


Process id: 3526


Description:


***********************************************************************

**            Running with the following parameters                  **

***********************************************************************

-- GoldenGate Initial Data Capture

-- for EMP_OGG and DEPT_OGG

--

EXTRACT EINI_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

Set environment variable (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

USERID ogg, PASSWORD ***

RMTHOST gc1, MGRPORT 7809

RMTTASK REPLICAT, GROUP RINI_1

TABLE scott.EMP_OGG;


Using the following key columns for source table SCOTT.EMP_OGG: EMPNO.

TABLE scott.DEPT_OGG;


Using the following key columns for source table SCOTT.DEPT_OGG: DEPTNO.



CACHEMGR virtual memory values (may have been adjusted)

CACHEBUFFERSIZE:                         64K

CACHESIZE:                                2G

CACHEBUFFERSIZE (soft max):               4M

CACHEPAGEOUTSIZE (normal):                4M

PROCESS VM AVAIL FROM OS (min):        2.90G

CACHESIZEMAX (strict force to disk):   2.66G


Database Version:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production


Database Language and Character Set:

NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK"

NLS_LANGUAGE     = "AMERICAN"

NLS_TERRITORY    = "AMERICA"

NLS_CHARACTERSET = "WE8ISO8859P1"


Warning: your NLS_LANG setting does not match database server language setting.

Please refer to user manual for more information.



GGSCI (zhang) 17>

检查数据是否已进行传输

[oracle@gc1 admin]$ echo $ORACLE_SID

rui

SQL> conn scott/tiger

Connected.

SQL> select * from emp_ogg;


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

      7369 SMITH      CLERK           7902 17-DEC-80        800                    20

      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

      7566 JONES      MANAGER         7839 02-APR-81       2975                    20

      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

      7839 KING       PRESIDENT            17-NOV-81       5000                    10

      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

      7900 JAMES      CLERK           7698 03-DEC-81        950                    30

      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10


14 rows selected.


SQL> select * from dept_ogg;


    DEPTNO DNAME          LOC

---------- -------------- -------------

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS     BOSTON


SQL>

在初始化加载之后,捕获进程EINI_1和复制进程RINI_1会自动停止

源系统:

GGSCI (zhang) 17> INFO EXTRACT EINI_1


EXTRACT    EINI_1    Last Started 2014-04-24 17:30   Status STOPPED

Checkpoint Lag       Not Available

Log Read Checkpoint  Table SCOTT.DEPT_OGG

                     2014-04-24 17:31:02  Record 4

Task                 SOURCEISTABLE

目标系统:

GGSCI (gc1) 5> INFO REPLICAT RINI_1


REPLICAT   RINI_1    Initialized   2014-05-14 01:31   Status STOPPED

Checkpoint Lag       00:00:00 (updated 1525:47:14 ago)

Log Read Checkpoint  Not Available

Task                 SPECIALRUN

4.将主库字符集更改为ZHS16GBK

SQL> shutdown immediate

SQL> startup mount

SQL> alter system enable restricted session;

SQL> alter system set job_queue_processes=0;

SQL> alter database open;

SQL> alter database character set internal_use zhs16gbk;

检查是否改变

SQL> shutdown immediate

SQL> startup

SQL> select userenv('language') from dual;


USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.ZHS16GBK

十、在源系统中配置捕获进程,用于捕获变更的DML操作

1. 设置捕获进程的参数文件

GGSCI (zhang) 18> edit params EORA_1



-- Change Capture parameter file to capture

-- EMP_OGG and DEPT_OGG changes

EXTRACT EORA_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

USERID ogg, PASSWORD Ogg

EXTTRAIL ./dirdat/aa

TABLE scott.EMP_OGG;

TABLE scott.DEPT_OGG;

~

~

"dirprm/eora_1.prm" [New] 9L, 225C written

注意:“aa”是本地跟踪文件的前缀

2.在源系统中执行以下命令以增加主捕获组


GGSCI (zhang) 19> add extract EORA_1,tranlog,begin now

EXTRACT added.

3. 定义goldengate的本地跟踪路径

GGSCI (zhang) 20> add exttrail ./dirdat/aa, extract EORA_1,megabytes 5

EXTTRAIL added.

4.开启主捕获进程

GGSCI (zhang) 21> start extract EORA_1


Sending START request to MANAGER ...

EXTRACT EORA_1 starting

检查进程是否正在运行

GGSCI (zhang) 22> info extract EORA_1


EXTRACT    EORA_1    Last Started 2014-04-24 18:31   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:05 ago)

Log Read Checkpoint  Oracle Redo Logs

                     2014-04-24 18:32:30  Seqno 9, RBA 35702272

此时,goldengate会在源系统中指定的本地追踪文件目录下生成一个“aa000000”的追踪文件

[oracle@zhang dirdat]$ ll /u01/app/ogg/dirdat/

total 4

-rw-rw-rw- 1 oracle oinstall 897 Apr 24 18:31 aa000000

十一、在源系统中配置pump进程

1. 设置pump进程的参数文件

GGSCI (zhang) 34> EDIT PARAMS PORA_1


-- Data Pump parameter file to read the local

-- trail of EMP_OGG and DEPT_OGG changes

--

EXTRACT PORA_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

PASSTHRU

RMTHOST gc1, MGRPORT 7809

RMTTRAIL ./dirdat/pa

TABLE scott.EMP_OGG;

TABLE scott.DEPT_OGG;


~

"dirprm/pora_1.prm" [New] 11L, 249C written

增加数据泵捕获组

GGSCI (zhang) 35> add extract PORA_1,exttrailsource ./dirdat/aa

EXTRACT added.

查看结果


GGSCI (zhang) 36> info extract PORA_1


EXTRACT    PORA_1    Initialized   2014-04-24 18:41   Status STOPPED

Checkpoint Lag       00:00:00 (updated 00:00:54 ago)

Log Read Checkpoint  File ./dirdat/aa000000

                     First Record  RBA 0

2. 在源系统中增加goldengate的迁移路径

GGSCI (zhang) 37> add rmttrail ./dirdat/pa,extract PORA_1,megabytes 5

RMTTRAIL added.

3. 开启data pump进程

GGSCI (zhang) 38> start extract PORA_1


Sending START request to MANAGER ...

EXTRACT PORA_1 starting

查看结果


GGSCI (zhang) 39> info extract PORA_1


EXTRACT    PORA_1    Last Started 2014-04-24 18:45   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:00 ago)

Log Read Checkpoint  File ./dirdat/aa000000

                     First Record  RBA 897

此时,会有一个“pa000000”的文件在目标系统的迁移的目录dirdat中生成


[oracle@gc1 ~]$ ll /u01/app/ogg/dirdat/

total 0

-rw-rw-rw- 1 oracle oinstall 0 Jul 16 16:23 pa000000

十二、在目标系统中配置replicat进程,用于断点续传

1.在target system中创建全局参数文件

编辑GLOBALSupper case)参数文件去指定表的CHECKPOINT

GGSCI (gc1) 6> EDIT PARAMS ./GLOBALS



CHECKPOINTTABLE ogg.ggschkpt

~

"./GLOBALS" [New] 1L, 29C written

查看

[oracle@gc1 ~]$ cd /u01/app/ogg/

[oracle@gc1 ogg]$ ll GLOBALS

-rw-rw-rw- 1 oracle oinstall 29 Jul 16 16:32 GLOBALS

为应对GLOBALS配置产生的影响,必须退出GGSCI会话:

GGSCI (gc1) 7> exit

2.重新登陆ggsci,在目标系统中增加一个复制类型的checkpoint table

[oracle@gc1 ogg]$ ./ggsci


Oracle GoldenGate Command Interpreter for Oracle

Version 10.4.0.19 Build 002

Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42


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


GGSCI (gc1) 1> dblogin userid ogg ,password ogg

Successfully logged into database.


GGSCI (gc1) 2> add checkpointtable


No checkpoint table specified, using GLOBALS specification (ogg.ggschkpt)...


Successfully created checkpoint table OGG.GGSCHKPT.

3.编辑传输进程参数文件

增加复制进程组


GGSCI (gc1) 3> add replicat RORA_1,exttrail ./dirdat/pa

REPLICAT added.

编辑此参数文件

GGSCI (gc1) 4> EDIT PARAM RORA_1



-- Change Delivery parameter file to apply

-- EMP_OGG and DEPT_OGG Changes

--

REPLICAT RORA_1

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

USERID ogg, PASSWORD Ogg

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE

MAP scott.emp_ogg, TARGET scott.emp_ogg;

MAP scott.dept_ogg, TARGET scott.dept_ogg;


~

"dirprm/rora_1.prm" [New] 12L, 322C written

注意:在MAP声明中,第一个schema是指的源库的,第二个schema指的是目标库的。

4. 开启replicat进程

GGSCI (gc1) 5> START REPLICAT RORA_1


Sending START request to MANAGER ...

REPLICAT RORA_1 starting

验证是否开启

GGSCI (gc1) 6>  INFO REPLICAT RORA_1


REPLICAT   RORA_1    Last Started 2014-07-16 16:47   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:01 ago)

Log Read Checkpoint  File ./dirdat/pa000000

                     First Record  RBA 0

5.做一个测试,看是否能够正确的实时传输

5.1 insert operation

在源库中插入数据

SQL> conn scott/tiger

Connected.

SQL> INSERT INTO emp_ogg VALUES(8800,'SMITH','CLERK',7902,'12-DEC-80',800,100,20);


1 row created.

SQL> INSERT INTO emp_ogg VALUES(8877,'ALLEN',' SALESMAN',7698,'20-FEB-81',600,100,30);


1 row created.

SQL> commit;


Commit complete.

在目标库中查看结果:

SQL> set linesize 100

SQL> select * from emp_ogg;


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

      8800 SMITH      CLERK           7902 12-DEC-80        800        100         20

      8877 ALLEN       SALESMAN       7698 20-FEB-81        600        100         30

      7369 SMITH      CLERK           7902 17-DEC-80        800                    20

      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

      7566 JONES      MANAGER         7839 02-APR-81       2975                    20

      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

      7839 KING       PRESIDENT            17-NOV-81       5000                    10


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

      7900 JAMES      CLERK           7698 03-DEC-81        950                    30

      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10


16 rows selected.

5.2 update operation

在源库中更新数据


SQL> UPDATE emp_ogg SET ENAME='CUUG' WHERE empno=7788;


1 row updated.


SQL> commit;


Commit complete.

在目标库中查看

5.3 delete operation

在源库中删除数据


SQL> delete from emp_ogg where empno=7369;


1 row deleted.


SQL> commit;


Commit complete.

在目标库中查看

十三、Limitation

In zhs16gbk encoding, two bytes represents one chinese character. However, in AL32UTF8 encoding three bytes represents one chinese character. Therefore, if we INSERT 10 chinese characters in source system (zhs16gbk), which actually occupies 20 bytes, it will become 30 bytes in target system (AL32UTF8). If the column maximum width is 20 bytes, The INSERT operation can succeed in source system, but fail in target system.

List details about process :  info replicat rora_1,showch  --showch show channel

十四、搭建环境中遇到的问题和解决的方法

1.ggs error 182


原因:数据库没有打开

解决方法:开库

2.ggs warning 222218162ggs error 218

原因:出现该问题一般都是由于同步的源和目标表结构不一致,包括表字段和索引。

解决方法:由于源库中要同步的两个表中创建了主键约束而目标库中的同步表中没有,导致同步的源和目标表结构不一致,因此,在目标库中加上相对应的索引即可。

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