一步一步配置 GoldenGate 数据同步:Extract、Pump、Replicat 和 initial load

 

环境准备:

 

Source:192.168.8.160  prod.oracle.com  prod

target: 192.168.8.180  dss.oracle.com  dss

 

source DB: prod  

target DB: DSS

 

Database Version: 11.2.0.3.0

GoldenGate Version: 11.2.1.0.1

 

OS version:Enterprise LinuxEnterprise Linux Server release 5.6 (Carthage)

 

OS Architecture:i686

 

Character Set:AMERICAN_AMERICA.AL32UTF8

 

 

 

一、在 Linux 上安装 GoldenGate 11g

1. 在 source 和 target 上创建安装目录并解压缩安装文件

Source System

[oracle@prod ~]$mkdir -p /home/oracle/ggs

[oracle@prodggs]$ unzip ogg112101_fbo_ggs_Linux_x86_ora11g_32bit.zip

[oracle@prodggs]$ tar xvf fbo_ggs_Linux_x86_ora11g_32bit.tar

 

Target System

[oracle@dss ~]$ mkdir -p/home/oracle/ggs

[oracle@dss ggs]$ unzipogg112101_fbo_ggs_Linux_x86_ora11g_32bit.zip

[oracle@dss ggs]$ tar xvffbo_ggs_Linux_x86_ora11g_32bit.tar

 

2. 创建 sub workdirectories

Source System

 

[oracle@prod ggs]$ ggsci

Oracle GoldenGate CommandInterpreter for Oracle

Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO

Linux, x86, 32bit (optimized),Oracle 11g on Apr 23 2012 08:09:25

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

GGSCI (prod.oracle.com) 1>create subdirs

Creating subdirectories undercurrent directory /home/oracle/ggs

Parameter files                /home/oracle/ggs/dirprm:already exists

Report files                   /home/oracle/ggs/dirrpt:created

Checkpoint files               /home/oracle/ggs/dirchk: created

Process status files           /home/oracle/ggs/dirpcs: created

SQL script files               /home/oracle/ggs/dirsql: created

Database definitions files     /home/oracle/ggs/dirdef: created

Extract data files             /home/oracle/ggs/dirdat: created

Temporary files                /home/oracle/ggs/dirtmp:created

Stdout files                   /home/oracle/ggs/dirout:created

 

 

Target System

 

[oracle@dss ggs]$ ggsci

 

Oracle GoldenGate CommandInterpreter for Oracle

Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO

Linux, x86, 32bit (optimized),Oracle 11g on Apr 23 2012 08:09:25

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

GGSCI (dss.oracle.com) 1>create subdirs

Creating subdirectories undercurrent directory /home/oracle/ggs

Parameter files                /home/oracle/ggs/dirprm:already exists

Report files                   /home/oracle/ggs/dirrpt:created

Checkpoint files               /home/oracle/ggs/dirchk: created

Process status files           /home/oracle/ggs/dirpcs: created

SQL script files               /home/oracle/ggs/dirsql: created

Database definitions files     /home/oracle/ggs/dirdef: created

Extract data files             /home/oracle/ggs/dirdat: created

Temporary files                /home/oracle/ggs/dirtmp:created

Stdout files                   /home/oracle/ggs/dirout:created

 

 

二、配置 Oracle 数据库以配置 GoldenGate 同步

 

1.      在 source 和 target 系统上创建 GoldenGate 用户及其表空间,并授予用户所需的权限。

 

Source System

 

17:27:58 sys@PROD> createtablespace ts_ggs datafile

'/u01/app/oracle/oradata/prod/ts_ggs_001.dbf'

 size 50M autoextend on next 1m maxsize 200m;

 

Tablespace created.

 

17:31:28 sys@PROD> createuser ggs identified by register default tablespace ts_ggs temporary tablespaceTEMP quota unlimited on ts_ggs;

 

User created.

 

grant CONNECT, RESOURCE to ggs;

grant CREATE SESSION, ALTERSESSION to ggs;

grant SELECT ANY DICTIONARY,SELECT ANY TABLE to ggs;

grant ALTER ANY TABLE to ggs;

grant FLASHBACK ANY TABLE toggs;

grant EXECUTE on DBMS_FLASHBACKto ggs;

 

 

准备测试表

Source system

 

create table emp_ggs as select* from emp;

create table dept_ggs as select* from dept;

create table salgrade_ggs asselect * from salgrade;

create table BONUS_ggs asselect * from bonus;

 

target system

 

create table emp_ggs as select* from emp where 1=2;

create table dept_ggs as select* from dept where 1=2;

create table salgrade_ggs asselect * from salgrade where 1=2;

create table BONUS_ggs asselect * from bonus where 1=2;

 

alter table EMP_GGS addconstraint pk_empno primary key(empno);

alter table DEPT_GGS addconstraint pk_deptno primary key(deptno);

ALTER TABLE EMP_GGS  ADD CONSTRAINT FK_dno

FOREIGN KEY(deptno) REFERENCESdept(deptno);

 

创建target goldengate 用户并授权

Target System

 

17:34:34 sys@DSS> createtablespace ts_ggs datafile

'/u01/app/oracle/oradata/dss/ts_ggs_001.dbf'

size 50M autoextend on next 1mmaxsize 200m;

 

Tablespace created.

 

17:34:53 sys@DSS> 17:34:53sys@DSS> create user ggs identified by register default tablespace ts_ggstemporary tablespace TEMP quota unlimited on ts_ggs;

 

User created.

 

grant CONNECT, RESOURCE to ggs;

grant CREATE SESSION, ALTERSESSION to ggs;

grant SELECT ANY DICTIONARY,SELECT ANY TABLE to ggs;

grant CREATE TABLE to ggs;

grant INSERT, UPDATE, DELETE onscott.emp_ggs to ggs;

grant INSERT, UPDATE, DELETE onscott.dept_ggs to ggs;

 

 

三、启用源数据库的 supplemental log 模式、archivelog 模式和 force logging 模式

Source System

 

17:54:09 sys@PROD> selectSUPPLEMENTAL_LOG_DATA_MIN from v$database;

SUPPLEME

--------

NO

17:54:11 sys@PROD> alterdatabase add supplemental log data;

Database altered.

Elapsed: 00:00:00.67

17:54:42 sys@PROD> altersystem switch logfile;

System altered.

 

17:54:50 sys@PROD> archivelog list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     35

Next log sequence toarchive   37

Current log sequence           37

 

18:26:43 sys@PROD> SELECTforce_logging FROM v$database;

FOR

---

NO

 

18:37:09 sys@PROD> alterdatabase force logging;

Database altered.

 

 

四、在源数据库上为要同步的表启用 supplemental log

 

/home/oracle/ggs/ggsci<<EOF

 

dblogin userid ggs,passwordregister

 

add trandata scott.emp_ggs

add trandata scott.dept_ggs

add trandata scott.salgrade_ggs

add trandata scott.BONUS_ggs

exit

 

EOF

 

五、配置 GoldenGate Manager 进程

 

Source System

 

GGSCI (prod.oracle.com) 1>edit params mgr

 

PORT 7809

PURGEOLDEXTRACTS/dirdat, USECHECKPOINTS

 

GGSCI(prod.oracle.com) 6> start mgr

Managerstarted.

 

GGSCI(prod.oracle.com) 9> info mgr

Manager isrunning (IP port prod.oracle.com.7809).

 

Target System

 

GGSCI (dss.oracle.com) 2>edit params mgr

 

PORT 7809

PURGEOLDEXTRACTS/dirdat, USECHECKPOINTS

 

GGSCI(dss.oracle.com) 3> start mgr

Managerstarted.

 

GGSCI(dss.oracle.com) 6> info mgr

Manager isrunning (IP port dss.oracle.com.7809).

 

六、通过 direct load 初始化数据

 

1.配置 source system 的初始化 extract 进程

 

Source System

 

GSCI (prod.oracle.com) 11>add extract einit,sourceistable

EXTRACT added.

 

GSCI (prod.oracle.com) 13>info extract *,tasks

EXTRACT    EINIT    Initialized   2013-03-0223:26   Status STOPPED

Checkpoint Lag       Not Available

Log Read Checkpoint  Not Available

                     First Record         Record 0

Task                 SOURCEISTABLE

 

GGSCI (prod.oracle.com) 14>edit params einit

 

EXTRACT EINIT

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

USERID ggs, PASSWORD register

RMTHOST 192.168.8.180, MGRPORT7809

RMTTASK REPLICAT, GROUP RINIT

TABLE scott.EMP_GGS;

TABLE scott.DEPT_GGS;

TABLE scott.BONUS_GGS;

TABLE scott.SALGRADE_GGS;

 

GGSCI (prod.oracle.com) 16>info extract *,tasks

 

EXTRACT    EINIT    Initialized   2013-03-0223:26   Status STOPPED

Checkpoint Lag       Not Available

Log Read Checkpoint  Not Available

                     First Record         Record 0

Task                 SOURCEISTABLE

 

2.在 target system 上配置初始化replicat 进程

 

GGSCI (dss.oracle.com) 7>add replicat rinit,specialrun

REPLICAT added.

 

GGSCI (dss.oracle.com) 8>INFO REPLICAT *, TASKS

 

REPLICAT   RINIT    Initialized   2013-03-0223:33   Status STOPPED

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

Log Read Checkpoint  Not Available

Task                 SPECIALRUN

 

GGSCI (dss.oracle.com) 9>edit params rinit

 

REPLICAT RINIT

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

ASSUMETARGETDEFS

USERID ggs, PASSWORD register

DISCARDFILE ./dirrpt/RINII.dsc,PURGE

MAP scott.*, TARGET scott.*;

 

GGSCI (dss.oracle.com)13>  INFO REPLICAT *, TASKS

 

REPLICAT   RINIT    Initialized   2013-03-0223:33   Status STOPPED

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

Log Read Checkpoint  Not Available

Task                 SPECIALRUN

 

 

2.      完成初始化数据加载

 

先后启动 source system 和 target system 上的 einit 和 rinit 进程完成初始化数据加载

 

Source System

 

GGSCI (prod.oracle.com) 4>start einit

Sending START request toMANAGER ...

EXTRACT EINIT starting

 

Target System

 

GGSCI (dss.oracle.com) 2>start rinit

Sending START request toMANAGER ...

REPLICAT RINIT starting

 

3.      验证初始化加载结果和初始化进程状态

 

Source System

 

Processing table SCOTT.EMP_GGS

Processing table SCOTT.DEPT_GGS

 

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

*                   ** Run Time Statistics**                         *

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

Report at 2013-03-02 23:56:47(activity since 2013-03-02 23:56:31)

Output to RINIT:

From Table SCOTT.EMP_GGS:

       #                   inserts:        14

       #                   updates:         0

       #                   deletes:         0

       #                  discards:         0

From Table SCOTT.DEPT_GGS:

       #                   inserts:         4

       #                   updates:         0

       #                   deletes:         0

       #                  discards:         0

REDO Log Statistics

  Bytes parsed                    0

  Bytes output                 3056

 

Target System

 

00:34:16 scott@DSS> select *from  DEPT_GGS;

 

    DEPTNO DNAME          LOC

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

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS     BOSTON

 

00:34:35 scott@DSS> selectcount(*) from EMP_GGS;

 

  COUNT(*)

----------

        14

 

 

七、配置 GoldenGate 同步进程

 

1.      在 Source System 上配置Primary Extract 进程

 

GGSCI (prod.oracle.com) 11>edit params escott

 

EXTRACT escott

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

USERID ggs, PASSWORD register

EXTTRAIL ./dirdat/aa

TABLE scott.EMP_GGS;

TABLE scott.DEPT_GGS;

 

GGSCI (prod.oracle.com) 12>ADD EXTRACT escott, TRANLOG, BEGIN NOW

EXTRACT added.

 

GGSCI (prod.oracle.com) 13>ADD EXTTRAIL ./dirdat/aa, EXTRACT escott, MEGABYTES 5

EXTTRAIL added.

 

GGSCI (prod.oracle.com) 15>start escott

Sending START request toMANAGER ...

EXTRACT ESCOTT starting

 

GGSCI (prod.oracle.com) 19>info escott

 

EXTRACT    ESCOTT   Last Started 2013-03-0300:55   Status RUNNING

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

Log Read Checkpoint  Oracle Redo Logs

                     2013-03-03 00:55:14  Seqno 40, RBA 5691904

                     SCN 0.929341 (929341)

 

2.      在 Source System 上配置 Pump 进程

 

GGSCI (prod.oracle.com) 20>edit params pscott

 

EXTRACT pscott

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

PASSTHRU

RMTHOST 192.168.8.180, MGRPORT7809

RMTTRAIL ./dirdat/pa

TABLE scott.EMP_GGS;

TABLE scott.DEPT_GGS;

 

GGSCI (prod.oracle.com) 1>ADD EXTRACT pscott, EXTTRAILSOURCE ./dirdat/aa

EXTRACT added.

 

GGSCI (prod.oracle.com) 4>ADD RMTTRAIL ./dirdat/pa, EXTRACT pscott, MEGABYTES 5

RMTTRAIL added.

 

GGSCI (prod.oracle.com) 12>info pscott

 

EXTRACT    PSCOTT   Last Started 2013-03-03 01:02  Status RUNNING

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

Log Read Checkpoint  File ./dirdat/aa000000

                     First Record  RBA 0

 

 

在 target system 上验证 remote trail 文件是否传递过来:

[oracle@dss dirdat]$ pwd

/home/oracle/ggs/dirdat

[oracle@dss dirdat]$ ls

pa000000

 

 

3.      在 target system 上配置 replicat 进程

 

GGSCI (dss.oracle.com) 7>edit params ./GLOBALS

 

CHECKPOINTTABLE  ggs.ggs_checkpoint

 

4.      在 target system 上添加 replicat checkpointtable

 

GGSCI (dss.oracle.com) 9>exit

[oracle@dss ggs]$ ggsci

GGSCI (dss.oracle.com) 2>dblogin userid ggs,password register

Successfully logged intodatabase.

GGSCI (dss.oracle.com) 3>ADD CHECKPOINTTABLE

Nocheckpoint table specified, using GLOBALS specification (ggs.ggs_checkpoint)...

Successfullycreated checkpoint table ggs.ggs_checkpoint.

 

 

5.      配置 replicat 进程

 

GGSCI (dss.oracle.com) 4>ADD REPLICAT rscott, EXTTRAIL ./dirdat/pa

REPLICAT added.

 

REPLICAT rscott

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

USERID ggs, PASSWORD register

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE./dirrpt/rscott.DSC, PURGE

MAP scott.EMP_GGS, TARGETscott.EMP_GGS;

MAP scott.DEPT_GGS, TARGETscott.DEPT_GGS;

 

GGSCI (dss.oracle.com) 7>start RSCOTT

 

Sending START request toMANAGER ...

REPLICAT RSCOTT starting

 

GGSCI (dss.oracle.com) 12>info rscott

 

REPLICAT   RSCOTT   Last Started 2013-03-03 01:14  Status RUNNING

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

Log Read Checkpoint  File ./dirdat/pa000000

                     First Record  RBA 0

 

 

八、DML 测试同步配置

 

1.检查源端和目标端OGG进程状态

GGSCI (prod.oracle.com) 13>info all

Program     Status     Group       Lag at Chkpt Time Since Chkpt

MANAGER     RUNNING                                          

EXTRACT     RUNNING    ESCOTT      00:00:00      00:00:09    

EXTRACT     RUNNING    PSCOTT      00:00:00      00:00:02  

 

GGSCI (dss.oracle.com) 13>info all

Program     Status     Group       Lag at Chkpt Time Since Chkpt

MANAGER     RUNNING                                          

REPLICAT    RUNNING    RSCOTT      00:00:00      00:00:10   

 

2.检查源端和目标端表记录数

01:19:02 scott@PROD> select count(*)from emp_ggs;

 

 COUNT(*)

----------

       14

 

01:19:57 scott@DSS> select count(*) fromemp_ggs;

 

 COUNT(*)

----------

       14

 

4.      在源端执行 inset 操作

 

insert into scott.emp_ggs(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

01:33:14   2 values (7379, 'MAOMI', 'CLERK', 7902, to_date('17-12-1987','dd-mm-yyyy'), 800.00, null, 20);

1 row created.

Elapsed: 00:00:00.12

01:33:16 scott@PROD> commit;

Commit complete.

 

在源端验证:

GGSCI (prod.oracle.com) 2>stats ESCOTT

 

Sending STATS request toEXTRACT ESCOTT ...

 

Start of Statistics at2013-03-03 01:34:07.

 

Output to ./dirdat/aa:

 

Extracting from SCOTT.EMP_GGSto SCOTT.EMP_GGS:

 

*** Total statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Daily statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Hourly statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Latest statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

End of Statistics.

 

 

GGSCI (prod.oracle.com) 3>stats PSCOTT

 

Sending STATS request toEXTRACT PSCOTT ...

 

Start of Statistics at2013-03-03 01:34:12.

 

Output to ./dirdat/pa:

 

Extracting from SCOTT.EMP_GGSto SCOTT.EMP_GGS:

 

*** Total statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Daily statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Hourly statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Latest statistics since2013-03-03 01:33:24 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

End of Statistics.

 

在目标端验证:

 

GGSCI (dss.oracle.com) 2>stats RSCOTT

 

Sending STATS request toREPLICAT RSCOTT ...

 

Start of Statistics at 2013-03-0301:36:05.

 

Replicating from SCOTT.EMP_GGSto SCOTT.EMP_GGS:

 

*** Total statistics since2013-03-03 01:33:26 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Daily statistics since2013-03-03 01:33:26 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Hourly statistics since2013-03-03 01:33:26 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

*** Latest statistics since2013-03-03 01:33:26 ***

        Total inserts                                      1.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                   1.00

 

End of Statistics.

 

01:20:06 scott@DSS> select *from emp_ggs where empno = '7379';

 

     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM    DEPTNO

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

      7379 MAOMI      CLERK           7902 1987-12-17 00:00:00        800                    20

 

 

Update 和 delete 操作测试省略


转载请注明出处及源文链接:

http://blog.csdn.net/xiangsir/article/details/8635870



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值