阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 11g GoldenGate与Oracle 11g数据同步

117次阅读
没有评论

共计 13047 个字符,预计需要花费 33 分钟才能阅读完成。

1. 下载,安装 GoldenGate 软件(两个节都需要安装)

GoldenGate可从以下信息的得到下载:

点击这个 http://www.linuxidc.com/Linux/2013-12/93755.htm 链接 关注 Linux 公社官方微信,关注后回复数字142936。即可得到网友的分享密码。

如果取消关注 Linux 公社公众号,即使再次关注,也将无法提供本服务!

链接:http://pan.baidu.com/s/1c25pSPE  密码:获得见上面的方法,地址失效请在下面留言。

—————————————— 分割线 ——————————————

也可以到 Linux 公社 1 号 FTP 服务器下载

FTP 地址:ftp://ftp1.linuxidc.com

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 2017 年 LinuxIDC.com/ 4 月 /Oracle 11g GoldenGate 与 Oracle 11g 数据同步 /

下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm

—————————————— 分割线 —————————————— 

[oracle@oracleogg ~]$ unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[oracle@oracleogg ~]$ tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /u01/glodengate/
[oracle@oracleogg ~]$ cd /u01/glodengate/
[oracle@oracleogg glodengate]$ vim ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1/db_1
export ORACLE_SID=oracle11g
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/glodengate/lib    – 必须要设置, 否则出错

[oracle@oracleogg glodengate]$ ./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 (oracleogg) 1> create subdirs    – 安装 glodengate
Creating subdirectories under current directory /u01/glodengate
Parameter files                /u01/glodengate/dirprm: already exists
Report files                  /u01/glodengate/dirrpt: created
Checkpoint files              /u01/glodengate/dirchk: created
Process status files          /u01/glodengate/dirpcs: created
SQL script files              /u01/glodengate/dirsql: created
Database definitions files    /u01/glodengate/dirdef: created
Extract data files            /u01/glodengate/dirdat: created
Temporary files                /u01/glodengate/dirtmp: created
Stdout files                  /u01/glodengate/dirout: created
GGSCI (oracleogg) 2>
[oracle@oracleogg glodengate]$ ls -lF | grep ‘/$’    – 查看 glodengate 创建的目录
drwxr-x— 2 oracle oinstall    4096 Apr 23  2012 cfg/
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirchk/    – 检查点文件
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirdat/    –extract 文件
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirdef/
drwxr-x— 2 oracle oinstall    4096 Apr 23  2012 dirjar/
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirout/
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirpcs/
drwxr-x— 2 oracle oinstall    4096 Apr 23  2012 dirprm/    – 参数文件目录
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirrpt/    – 日志文件
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirsql/    –sql 脚本文件
drwxrwxr-x 2 oracle oinstall    4096 Nov 19 19:36 dirtmp/    – 临时文件
drwxr-x— 7 oracle oinstall    4096 Apr 23  2012 UserExitExamples/
[oracle@oracleogg glodengate]$

2. 获取语法帮助信息
(1). 必须要 ggsci 根目录进入 ggsci 终端, 否则获取不到帮助信息
(2). 帮助语法: help <command> <object>  比如:help add rmttrail
GGSCI (oracleogg) 3> help add rmttrail
ADD RMTTRAIL
Use ADD RMTTRAIL to create a trail for online processing on a remote
system and:
* assign a maximum file size.
* associate the trail with an Extract group.
In the parameter file, specify a RMTHOST entry before any RMTTRAIL
entries to identify the remote system and TCP/IP port for the Manager
process.
Syntax:
 
ADD RMTTRAIL <trail name>, EXTRACT <group name> 
[, MEGABYTES <n>]
[SEQNO <n>]
 
<trail name>
The fully qualified path name of the trail. The actual trail name can
contain only two characters. Oracle GoldenGate appends this name with a
six-digit sequence number whenever a new file is created. For example,
a trail named ./dirdat/tr would have files named
./dirdat/tr000001, ./dirdat/tr000002, and so forth. 
 
<group name>
The name of the Extract group to which the trail is bound. Only one
Extract process can write data to a trail.
 
MEGABYTES <n>
The maximum size, in megabytes, of a file in the trail. The default is
100. 
 
SEQNO <n>
Specifies that the first file in the trail will start with the
specified trail sequence number. Do not include any zero padding. For
example, to start at sequence 3 of a trail named “tr,” specify SEQNO 3.
The actual file would be named /ggs/dirdat/tr000003. This option can be
used during troubleshooting when Replicat needs to be repositioned to a
certain trail sequence number. It eliminates the need to alter Replicat
to read the required sequence number.
 
Example:
ADD RMTTRAIL c:\ggs\dirdat\aa, EXTRACT finance, MEGABYTES 200
GGSCI (oracleogg) 4>

3. 在 source 端修改支持 supplemental log 日志
[oracle@oracle11g ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Nov 20 04:18:26 2016
Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter database add supplemental log data;     
Database altered.
SQL> alter system switch logfile;
System altered.
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
——–
YES
SQL>

4. 在 source 端和 target 端创建表空间, 用户和测试表(只有 source 端有测试数据)
source 节点:

SQL> create tablespace wuhan datafile ‘/u01/oracle/oradata/orac11g/wuhan.dbf’ size 100m;
Tablespace created.
SQL> create user gguser identified by system default tablespace wuhan quota unlimited on wuhan;
User created.
SQL> grant dba,resource,connect to gguser;
Grant succeeded.
SQL> conn gguser/system
Connected.
SQL> create table t (a number,b char(10));
Table created.
SQL> insert into t values(1,’a’);
1 row created.
SQL> insert into t values(2,’b’);
1 row created.
SQL> insert into t values(3,’c’);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t;
  A    B
———- ———-
  1    a
  2    b
  3    c
SQL>

target 节点:
SQL> create tablespace wuhan datafile ‘/u01/app/oracle/oradata/oracleogg/wuhan.dbf’ size 100m;
Tablespace created.
SQL> create user gguser identified by system default tablespace wuhan quota unlimited on wuhan;
User created.
SQL> grant dba,resource,connect to gguser;
Grant succeeded.
SQL> conn gguser/system
Connected.
SQL> create table t (a number,b char(10));
Table created.
SQL>

5.source 端和 target 端启动 mgr 进程(两个节点都需要做)
aource 节点:

GGSCI (oracle11g) 3> edit params mgr        – 设置 mgr 的端口
— port                  – 这个是注释
PORT 7809        – 指定的端口
GGSCI (oracle11g) 4> start mgr      – 启动 mgr
Manager started.
GGSCI (oracle11g) 6> info mgr      – 查看 mgr 的状态
Manager is running (IP port oracle11g.7809).
GGSCI (oracle11g) 7>

6. 配置 glodengate 需要同步的表(source 节点)

GGSCI (oracle11g) 7> dblogin userid gguser, password system
Successfully logged into database.
GGSCI (oracle11g) 8> add trandata gguser.t            – 也可以使用通配符(add trandata gguser.*)
2016-11-20 05:32:50  WARNING OGG-00869  No unique key is defined for table ‘T’. All viable columns will be used to represent the key, but may not guarantee uniqueness.  KEYCOLS may be used to define the key.
Logging of supplemental redo data enabled for table GGUSER.T.
GGSCI (oracle11g) 9> info trandata gguser.*
Logging of supplemental redo log data is enabled for table GGUSER.T.
Columns supplementally logged for table GGUSER.T: A, B.
GGSCI (oracle11g) 10>

7. 初使化数据(将 source 的数据导入到 target 节点中)
source 节点:

GGSCI (oracle11g) 10> add extract einiaa, sourceistable
EXTRACT added.
GGSCI (oracle11g) 11> edit params einiaa

EXTRACT EINIAA
USERID GGUSER, PASSWORD “system”
RMTHOST 192.168.3.90, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINIAA
TABLE gguser.t;
GGSCI (oracle11g) 12>

target 节点:
GGSCI (oracleogg) 10> add replicat riniaa, specialrun
REPLICAT added.
GGSCI (oracleogg) 11> edit params riniaa
REPLICAT RINIAA
ASSUMETARGETDEFS
USERID gguser, PASSWORD “system”
DISCARDFILE ./dirrpt/RINIAA.dsc, PURGE
MAP gguser.*, TARGET gguser.*;
GGSCI (oracleogg) 12>

8. 启动
source 节点:
GGSCI (oracle11g) 12> start extract einiaa
Sending START request to MANAGER …
EXTRACT EINIAA starting

GGSCI (oracle11g) 13> view report einiaa

2016-11-20 05:56:55  INFO    OGG-01017  Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is used.
***********************************************************************
                Oracle GoldenGate Capture 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:42:16
 
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

                    Starting at 2016-11-20 05:56:55
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Fri Nov 22 03:15:09 UTC 2013, Release 2.6.32-431.el6.x86_64
Node: oracle11g
Machine: x86_64
                        soft limit  hard limit
Address Space Size  :    unlimited    unlimited
Heap Size            :    unlimited    unlimited
File Size            :    unlimited    unlimited
CPU Time            :    unlimited    unlimited

Process id: 8706
Description:

***********************************************************************
**            Running with the following parameters                  **
***********************************************************************
2016-11-20 05:56:55  INFO    OGG-03035  Operating system character set identified as UTF-8. Locale: en_US, LC_ALL:.
EXTRACT EINIAA
USERID GGUSER, PASSWORD ********

2016-11-20 05:56:55  INFO    OGG-03500  WARNING: NLS_LANG environment variable does not match database character set, or not set. Using database character se
t value of AL32UTF8.
RMTHOST 192.168.3.90, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINIAA
TABLE gguser.t;

2016-11-20 05:56:56  WARNING OGG-00869  No unique key is defined for table ‘T’. All viable columns will be used to represent the key, but may not guarantee u
niqueness.  KEYCOLS may be used to define the key.
Using the following key columns for source table GGUSER.T: A, B.

2016-11-20 05:56:56  INFO    OGG-01815  Virtual Memory Facilities for: COM
    anon alloc: mmap(MAP_ANON)  anon free: munmap
    file alloc: mmap(MAP_SHARED)  file free: munmap
    target directories:
    /u01/glodengate/dirtmp.

CACHEMGR virtual memory values (may have been adjusted)
CACHESIZE:                              64G
CACHEPAGEOUTSIZE (normal):                8M
PROCESS VM AVAIL FROM OS (min):        128G
CACHESIZEMAX (strict force to disk):    96G

Database Version:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production
CORE11.2.0.1.0Production
TNS for Linux: Version 11.2.0.1.0 – Production
NLSRTL Version 11.2.0.1.0 – Production

Database Language and Character Set:
NLS_LANG        = “.AL32UTF8”
NLS_LANGUAGE    = “AMERICAN”
NLS_TERRITORY    = “AMERICA”
NLS_CHARACTERSET = “AL32UTF8”

Processing table GGUSER.T

***********************************************************************
*                  ** Run Time Statistics **                        *
***********************************************************************

Report at 2016-11-20 05:57:15 (activity since 2016-11-20 05:56:56)
Output to RINIAA:
From Table GGUSER.T:
      #                  inserts:        3
      #                  updates:        0
      #                  deletes:        0
      #                  discards:        0
REDO Log Statistics
  Bytes parsed                    0
  Bytes output                  252
GGSCI (oracle11g) 14>

target 节点:
GGSCI (oracleogg) 14> view report riniaa    – 查看日志
[oracle@oracleogg glodengate]$ sqlplus gguser/system
SQL*Plus: Release 11.2.0.1.0 Production on Sat Nov 19 22:01:32 2016
Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from t;
  A    B
———- ———-
  1    a
  2    b
  3    c
SQL>

8. 配置用户数据实时更新
source 节点:
GGSCI (oracle11g) 14> add extract eoraaa, tranlog, begin now, threads 1     
EXTRACT added.
GGSCI (oracle11g) 15> info extract *
EXTRACT    EORAAA    Initialized  2016-11-20 06:17  Status STOPPED
Checkpoint Lag      00:00:00 (updated 00:00:30 ago)
Log Read Checkpoint  Oracle Redo Logs
                    2016-11-20 06:17:37  Thread 1, Seqno 0, RBA 0
                    SCN 0.0 (0)
GGSCI (oracle11g) 16> edit params eoraaa
EXTRACT EORAAA
USERID gguser, PASSWORD “system”
RMTHOST 192.168.3.90, MGRPORT 7809
RMTTRAIL ./dirdat/aa
TABLE gguser.t;
GGSCI (oracle11g) 18> add rmttrail ./dirdat/aa, extract eoraaa, megabytes 10
RMTTRAIL added.
GGSCI (oracle11g) 19> info rmttrail *
      Extract Trail: ./dirdat/aa
            Extract: EORAAA
              Seqno: 0
                RBA: 0
          File Size: 10M
GGSCI (oracle11g) 20> start extract eoraaa
Sending START request to MANAGER …
EXTRACT EORAAA starting
GGSCI (oracle11g) 21> info all
Program    Status      Group      Lag at Chkpt  Time Since Chkpt
MANAGER    RUNNING                                         
EXTRACT    RUNNING    EORAAA      00:00:00      00:00:09     
GGSCI (oracle11g) 22> info extract eoraaa, detail
EXTRACT    EORAAA    Initialized  2016-11-20 06:17  Status STOPPED
Checkpoint Lag      00:00:00 (updated 00:10:50 ago)
Log Read Checkpoint  Oracle Redo Logs
              2016-11-20 06:17:37  Thread 1, Seqno 0, RBA 0
              SCN 0.0 (0)
  Target Extract Trails:
  Remote Trail Name              Seqno        RBA    Max MB
  ./dirdat/aa                  0          0        10
  Extract Source                Begin            End           
  Not Available                * Initialized *  2016-11-20 06:17
Current directory      /u01/glodengate
Report file          /u01/glodengate/dirrpt/EORAAA.rpt
Parameter file        /u01/glodengate/dirprm/eoraaa.prm
Checkpoint file        /u01/glodengate/dirchk/EORAAA.cpe
Process file          /u01/glodengate/dirpcs/EORAAA.pce
Stdout file          /u01/glodengate/dirout/EORAAA.out
Error log            /u01/glodengate/ggserr.log
GGSCI (oracle11g) 23>

target 节点:
GGSCI (oracleogg) 14> edit params ./GLOBALS  – 创建 GLOBALS 参数后必须退出
CHECKPOINTTABLE system.ggchecktable
GGSCI (oracleogg) 2> dblogin userid system, password system
Successfully logged into database.
GGSCI (oracleogg) 3> add checkpointtable
No checkpoint table specified, using GLOBALS specification (system.ggchecktable)…
Successfully created checkpoint table system.ggchecktable.
GGSCI (oracleogg) 4> add replicat roraaa, exttrail ./dirdat/aa
REPLICAT added.
GGSCI (oracleogg) 5> edit params roraaa
REPLICAT RORAAA
USERID gguser, PASSWORD “system”
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORAAA.DSE, PURGE
MAP gguser.t, TARGET gguser.t;
GGSCI (oracleogg) 8> info all
Program    Status      Group      Lag at Chkpt  Time Since Chkpt
MANAGER    RUNNING                                         
REPLICAT    RUNNING    RORAAA      00:00:00      00:00:05 
GGSCI (oracleogg) 9>

9. 验证数据实时更新
source 节点:
SQL> select * from t;
  A    B
———- ———-
  1    a
  2    b
  3    c
  4    d
SQL> insert into t values(5,’e’);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t;
  A    B
———- ———-
  1    a
  2    b
  3    c
  4    d
  5    e
SQL>

target 节点:
SQL> select * from t;
    A    B
———- ———-
    4    d
    5    e
    1    a
    2    b
    3    c
SQL>

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142936.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计13047字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中