OGG 是一种基于日志的结构化数据复制软件,能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。本文raksmart美国服务器将介绍ogg的安装与配置

一、安装Oracle goldengate

直接解压即可

[oracle@tomato-@ORACLE_SID ggs]$ ls

fbo_ggs_Linux_x86_ora11g_32bit.tar

[oracle@tomato-@ORACLE_SID ggs]$ tar -xvf
fbo_ggs_Linux_x86_ora11g_32bit.tar

[oracle@tomato-@ORACLE_SID ggs]$ rm -rf
fbo_ggs_Linux_x86_ora11g_32bit.tar

二、数据库中的配置与准备

打开数据库最小附加日志(源端)

SQL> select supplemental_log_data_min
from v$database;

SUPPLEME

——–

NO

SQL> alter database add supplemental log
data;

Database altered.

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

System altered.

建立OGG数据库用户并授予权限(源端) 推荐阅读:CPANEL与WHM的区别

SQL> CREATE USER goldengate IDENTIFIED
BY goldengate;

User created.

SQL> GRANT CONNECT TO goldengate;

Grant succeeded.

SQL> GRANT CREATE SESSION TO goldengate;

Grant succeeded.

SQL> GRANT ALTER SESSION TO goldengate;

Grant succeeded.

SQL> GRANT RESOURCE TO goldengate;

Grant succeeded.

SQL> GRANT SELECT ANY DICTIONARY TO
goldengate;

Grant succeeded.

SQL> GRANT SELECT ANY TABLE TO
goldengate;

Grant succeeded.

SQL> GRANT FLASHBACK ANY TABLE TO
goldengate;

Grant succeeded.

SQL> GRANT ALTER ANY TABLE TO
goldengate;

Grant succeeded.

建立OGG数据库用户并授予权限(目标端)

这里goldengate所需要的权限要比源端的多 推荐阅读:RLWRAP的安装与注意事项

SQL> CREATE USER goldengate IDENTIFIED
BY goldengate;

User created.

SQL> GRANT ALTER SESSION TO goldengate;

Grant succeeded.

SQL> GRANT CREATE SESSION TO goldengate;

Grant succeeded.

SQL> GRANT CONNECT TO goldengate;

Grant succeeded.

SQL> GRANT RESOURCE TO goldengate;

Grant succeeded.

SQL> GRANT SELECT ANY DICTIONARY TO
goldengate;

Grant succeeded.

SQL> GRANT SELECT ANY TABLE TO
goldengate;

Grant succeeded.

SQL> GRANT FLASHBACK ANY TABLE TO
goldengate;

Grant succeeded.

SQL> GRANT INSERT ANY TABLE TO
goldengate;

Grant succeeded.

SQL> GRANT UPDATE ANY TABLE TO
goldengate;

Grant succeeded.

SQL> GRANT DELETE ANY TABLE TO
goldengate;

Grant succeeded.

三、goldengate中的配置

1.目标和源的准备

执行./ggsci

[oracle@tomato-@ORACLE_SID ggs]$ ./ggsci

./ggsci: error while loading shared
libraries: libnnz11.so: cannot open shared object file: No such file or
directory

ps:若是报错,在oracle的profile文件加入一行语句即可 更多内容请阅读:什么是WEB SERVICE?

[oracle@tomato-@ORACLE_SID ggs]$ vi
/home/oracle/profile

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

[oracle@tomato-@ORACLE_SID ggs]$ .
/home/oracle/profile

[oracle@tomato-@ORACLE_SID ggs]$ ./ggsci

Oracle GoldenGate Command Interpreter for
Oracle

Version 11.2.1.0.1
OGGCORE_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 (tomato.oracle.com) 1>

创建所需文件夹

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

Creating subdirectories under current
directory /oracle/ggs

Parameter files /oracle/ggs/dirprm: already
exists

Report files /oracle/ggs/dirrpt: created

Checkpoint files /oracle/ggs/dirchk:
created

Process status files /oracle/ggs/dirpcs:
created

SQL script files /oracle/ggs/dirsql:
created

Database definitions files
/oracle/ggs/dirdef: created

Extract data files /oracle/ggs/dirdat: created

Temporary files /oracle/ggs/dirtmp: created

Stdout files /oracle/ggs/dirout: created

配置Manager进程并打开

GGSCI (potato.oracle.com) 2> edit param
mgr

port 7809              –指定端口号

GGSCI (linfan) 7> START MGR

Manager started.

2.目标端的配置

加入trandata(表级附加日志)

GGSCI (potato.oracle.com) 4> dblogin
userid goldengate , password goldengate

Successfully logged into database.

GGSCI (potato.oracle.com) 5> add
trandata lala.*

2017-03-06 20:11:24 WARNING OGG-00869 No
unique key is defined for table ‘STUDENT’. 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 LALA.STUDENT.

ps:这里的WARNING是因为lala用户下的student表没有主键,所以把所有的列都加入附加日志 了解更多相关知识请阅读:什么是WORDPRESS?

添加EXTRACT进程并配置

GGSCI (potato.oracle.com) 6> ADD EXTRACT
capdb1, TRANLOG, BEGIN NOW                         —添加进程

EXTRACT added.

GGSCI (potato.oracle.com) 7> ADD
EXTTRAIL /oracle/ggs/dirdat/lt, EXTRACT capdb1             —改进使用本地队列

EXTTRAIL added.

GGSCI (potato.oracle.com) 8> EDIT PARAM
capdb1                                             
—配置进程参数

EXTRACT capdb1

SETENV (ORACLE_HOME =
“/u01/app/oracle/product/11.2.0/dbhome_1”)

SETENV (ORACLE_SID = DB1)

USERID goldengate, PASSWORD goldengate

EXTTRAIL /oracle/ggs/dirdat/lt

TABLE lala.*

添加配置pump进程

GGSCI (potato.oracle.com) 9> ADD EXTRACT
pumpdb12, EXTTRAILSOURCE /oracle/ggs/dirdat/lt, BEGIN NOW

EXTRACT added.

GGSCI (potato.oracle.com) 10> ADD
RMTTRAIL /oracle/ggs/dirdat/rt, EXTRACT pumpdb12

RMTTRAIL added.

GGSCI (potato.oracle.com) 11> EDIT PARAM
pumpdb12

EXTRACT pumpdb12

SETENV (ORACLE_HOME =
“/u01/app/oracle/product/11.2.0/dbhome_1”)

SETENV (ORACLE_SID = DB1)

USERID goldengate, PASSWORD goldengate

RMTHOST tomato, MGRPORT 7809

rmttrail /oracle/ggs/dirdat/rt

TABLE lala.*

将配置好的两个进程开启

GGSCI (potato.oracle.com) 49> start
capdb1

Sending START request to MANAGER …

EXTRACT CAPDB1 starting

GGSCI (potato.oracle.com) 50> start
pumpdb12

Sending START request to MANAGER …

EXTRACT PUMPDB12 starting

GGSCI (potato.oracle.com) 51> info all

Program Status Group Lag at Chkpt Time
Since Chkpt

MANAGER RUNNING

EXTRACT RUNNING CAPDB1 00:38:04 00:00:01

EXTRACT RUNNING PUMPDB12 00:00:00 00:00:00

3.配置源端

添加进程REPLICAT进程

GGSCI (tomato.oracle.com) 10> dblogin
userid goldengate , password goldengate                   —首先先要登录

Successfully logged into database.

GGSCI (tomato.oracle.com) 11> ADD
CHECKPOINTTABLE goldengate.checkpoint                          —添加检查点表

Successfully created checkpoint table
goldengate.checkpoint.

GGSCI (tomato.oracle.com) 12> ADD
REPLICAT repdb2, EXTTRAIL /oracle/ggs/dirdat/rt, BEGIN NOW, CHECKPOINTTABLE
goldengate.checkpoint

REPLICAT added.                                                   
                            —添加REPLICAT进程,并且使用CHECKPOINTTABLE方式

GGSCI (tomato.oracle.com) 13> EDIT PARAM
repdb2                                               
—配置REPLICAT进程

REPLICAT repdb2

SETENV (ORACLE_HOME =
“/u01/app/oracle/product/11.2.0/dbhome_1”)

SETENV (ORACLE_SID = DB2)

ASSUMETARGETDEFS

USERID goldengate, PASSWORD goldengate

MAP lala.*, TARGET lala.*

开启该进程

GGSCI (tomato.oracle.com) 14> start
repdb2

Sending START request to MANAGER …

REPLICAT REPDB2 starting

GGSCI (tomato.oracle.com) 15> info all

Program Status Group Lag at Chkpt Time
Since Chkpt

MANAGER RUNNING

REPLICAT RUNNING REPDB2 00:00:00 00:00:03

四、进行环境测试

源端插入一条数据

SQL> insert into student
values(1,’zhangsan’);

1 row created.

SQL> commit

Commit complete.

目标端查看得到这条数据

GGSCI (tomato.oracle.com) 18> stats
repdb2

Sending STATS request to REPLICAT REPDB2

Start of Statistics at 2017-03-06 23:49:04.

Replicating from LALA.STUDENT to
LALA.STUDENT:

*** Total statistics since 2017-03-06
21:42:56 ***

       
Total inserts 1.00

        Total updates 0.00

       
Total deletes 0.00

       
Total discards 0.00

       
Total operations 1.00

*** Daily statistics since 2017-03-06
21:42:56 ***

       
Total inserts 1.00

       
Total updates 0.00

       
Total deletes 0.00

       
Total discards 0.00

       
Total operations 1.00

*** Hourly statistics since 2017-03-06
23:00:00 ***

       
No database operations have been performed.

*** Latest statistics since 2017-03-06
21:42:56 ***

       
Total inserts 1.00

       
Total updates 0.00

       
Total deletes 0.00

       
Total discards 0.00

       
Total operations 1.00

End of Statistics.

SQL> select * from student;

       
ID NAME

———- —————

        
1 zhangsan

环境搭建成功 更多内容请阅读:什么是DOCKER

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注