您的位置:首页 > 其它

(一)OGG的安装与配置,并实现单向DML复制操作

2015-07-28 14:20 417 查看
实验目的:在两台虚机模拟同平台同版本上面安装和配置OGG,并实现简单的DML复制。

实验环境:64位系统

操作系统:rhel6.6-x86_64

数据库:oracle_11.2-x86-64

goldengate:for_11g_x64

实验步骤:

1、

配置源端和目标端ip:

源端:

[root@oggsource ~]# cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.103.106   oggsource.localdomain oggsource

目标端:

[root@oggtarget ~]#cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.103.107   oggtarget.localdomain oggtarget


2、

在操作系统中增加goldengate 用户,便于和oracle用户区分。

源端:

[root@oggsource ~]# useradd -g oinstall goldengate


目标端:

[root@oggtarget ~]# useradd -g oinstall goldengate


3、

设置goldengate用户的环境变量,要注意LD_LIBRARY_PATH一定要设置,如果没有配置这个路径的话,在安装OGG的过程中会报找不到动态链接库的错误。

源端:

[root@oggsource ~]# su - goldengate
[goldengate@oggsource ~]$ vi .bash_profile
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gg_1
export PATH=$ORACLE_HOME/bin:$PATH
export nls_lang=american_america.zhs16gbk
export ORACLE_SID=oggs
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
[goldengate@oggsource ~]$ source .bash_profile

目标端:

[root@oggtarget ~]# su - goldengate
[goldengate@oggtarget ~]$ vi .bash_profile
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gg_1
export PATH=$ORACLE_HOME/bin:$PATH
export nls_lang=american_america.zhs16gbk
export ORACLE_SID=oggt
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
[goldengate@oggtarget ~]$ source.bash_profile


3、

源端
创建goldengate专用的表空间、schema、并授权。

SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/oggs/goldengate01.dbf'size 100m autoextend on;
create user goldengate identified by goldengate default tablespace goldengate temporary tablespace temp;
grant connect,resource to goldengate;
grant dba to goldengate;


5、

源端

检查数据库是否在归档模式,建议在归档模式。

SQL> archive log list;

Database log mode              ArchiveMode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     19
Next log sequence to archive   21
Current log sequence           21


6、

源端:

设置附加日志

SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
NO

打开:

SQL> alter database add supplemental log data;
Database altered.
再次查看:

SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
YES


7、
源端:

建立ogg目录,便于goldengate的管理

[root@oggsource oraclesetup]# cd /home/goldengate
[root@oggsource goldengate]# mkdir ogg


8、

源端:

安装和配置goldengate。

解压就是安装,安装到/home/goldengate/ogg/目录下,然后修改目录权限。

[root@oggsource ogg]# unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[root@oggsource ogg]# tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
[root@oggsource ogg]# chown -R goldengate:oinstall /home/goldengate/ogg/


9、
源端:

测试安装成功,只需进入命令行,就表明安装是成功的。

[goldengate@oggsource ~]$ cd /home/goldengate/ogg/
[goldengate@oggsource ogg]$ ./ggsci

Oracle GoldenGate Command Interpreter forOracle

Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO

Linux, x64, 64bit (optimized), Oracle 11gon Apr 23 2012 08:32:14

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

GGSCI (oggsource.localdomain) 1> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    STOPPED


10、

在目标端也安装一遍(重复上面 7、8、9步骤)。

[root@oggtarget oraclesetup]# cd /home/goldengate
[root@oggtarget goldengate]# mkdir ogg

[root@oggtarget ogg]# unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[root@oggtarget ogg]# tar -xvf  fbo_ggs_Linux_x64_ora11g_64bit.tar
[root@oggtarget ogg]# chown -R goldengate:oinstall /home/goldengate/ogg/

[root@oggtarget ~]# su - goldengate
[goldengate@oggtarget ~]$ cd/home/goldengate/ogg/
[goldengate@oggtarget ogg]$ ./ggsci

Oracle GoldenGate Command Interpreter forOracle

Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO

Linux, x64, 64bit (optimized), Oracle 11gon Apr 23 2012 08:32:14

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

GGSCI (oggtarget.localdomain) 1> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    STOPPED


11、

配置源端和目标端的管理进程。

源端:

GGSCI (oggsource.localdomain) 2> create subdirs
GGSCI (oggsource.localdomain) 3> edit params mgr
port 7839
DYNAMICPORTLIST 7840-7850
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

启动配置的管理进程

GGSCI (oggtsource.localdomain) 4> start mgr

Manager started.

GGSCI (oggtsource.localdomain) 5> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

GGSCI (oggtsource.localdomain) 6> info mgr

Manager is running (IP portoggtsource.localdomain.7839).


目标端:

GGSCI (oggtarget.localdomain) 2> create subdirs
GGSCI (oggtarget.localdomain) 3> edit params mgr
port 7839
DYNAMICPORTLIST 7840-7850
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
启动配置的管理进程

GGSCI (oggtarget.localdomain) 4> start mgr

Manager started.

GGSCI (oggtarget.localdomain) 5> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

GGSCI (oggtarget.localdomain) 6> info mgr

Manager is running (IP portoggtarget.localdomain.7839).
参数分析:

PORT:指定服务监听端口;这里以7839为例,默认端口为7809

DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;

AUTOSTART:指定在管理进程启动时自动启动哪些进程;

AUTORESTART:自动重启参数设置;

PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过7天的trail文件进行删除。

LAGREPORT、LAGINFO、LAGCRITICAL:

定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。

12、

源端:

测试数据用的是OGG_USER用户的表数据(OGG_USER用户下只有T1一个表)。

查看要复制的表的日志信息是完整的,确保是logging。把nologing变成logging。

SQL> alter table ogg_user.t1 logging;

Table altered.


13、

源端:

配置ogg_user用户的表级附加日志。配置登陆用户。并检查日志是否添加成功。

以goldengate这个schema登陆数据库。

GGSCI (oggsource.localdomain) 7> dblogin userid goldengate,password goldengate

Successfully logged into database.


查看:

GGSCI (oggsource.localdomain) 3> info trandata ogg_user.*

Logging of supplemental redo log data is disabled for table OGG_USER.T1.

注意:发现是disabled,还没有添加成功,继续下一步。

添加:

GGSCI (oggsource.localdomain) 12> add trandata ogg_user.*

Logging of supplemental redo data enabled for table OGG_USER.T1.

注意:现在成功了,是enable的。

14、

源端:

配置抓取进程。

GGSCI (oggsource.localdomain) 13> add extract ext_demo, tranlog, begin now,threads 1

EXTRACT added.

GGSCI (oggsource.localdomain) 14> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

EXTRACT    STOPPED     EXT_DEMO    00:00:00      00:00:13

参数分析:

tranlog:表示数据抓取的来源是数据库的redo数据。

begin now:表示我们在启动这个抓取进程的就去抓取数据。

threads 1:表示我们数据库有多少个redo threads。

15、

源端:

添加队列文件。

GGSCI (oggsource.localdomain) 15> add EXTTRAIL ./dirdat/r1, extract ext_demo,megabytes 100

EXTTRAIL added.

分析:

./dirdat:表示trail文件的目录

r1:trail文件的前缀

extract ext_demo:值指定给那个进程用的(ext_demo)。

megabytes 100:文件大小是100m

16、

源端:

编辑我们刚刚配置的抓取进程的参数:

GGSCI (oggsource.localdomain) 16> edit param ext_demo
EXTRACT ext_demo

setenv (ORACLE_SID=oggs)

setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

userid goldengate,password goldengate

REPORTCOUNT EVERY 1 MINUTES, RATE

numfiles 5000

DISCARDFILE./dirrpt/ext_demo.dsc,APPEND,MEGABYTES 1000

DISCARDROLLOVER AT 3:00

exttrail ./dirdat/r1,megabytes 100

dynamicresolution

TRANLOGOPTIONS EXCLUDEUSER goldengate

TRANLOGOPTIONS convertucs2clobs

TABLE OGG_USER.*;

分析:

SETENV:配置系统环境变量

USERID/ PASSWORD:指定OGG连接数据库的用户名和密码;

REPORTCOUNT:报告已经处理的记录条数统计数字;

DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;

EXTTRAIL:指定写入到本地的哪个队列;
TRANLOGOPTIONS:指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0

17、

源端:

启动抓取进程:

GGSCI (oggsource.localdomain) 17>info  all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

EXTRACT    STOPPED     EXT_DEMO    00:00:00      00:02:22

GGSCI (oggsource.localdomain) 18> start ext_demo

Sending START request to MANAGER ...

EXTRACT EXT_DEMO starting

GGSCI (oggsource.localdomain) 19> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

EXTRACT    RUNNING     EXT_DEMO   00:00:00      00:00:02


18、

源端:

配置datapump进程,将抓取数据传到目标主机。负责TCPIP通讯。

GGSCI (oggsource.localdomain) 20> add extract dpe_demo, exttrailsource./dirdat/r1

EXTRACT added.


输出:目标主机怎么写,也是定义datapumo进程的输出。

GGSCI (oggsource.localdomain) 21> add rmttrail ./dirdat/t1,EXTRACT dpe_demo,MEGABYTES 100

RMTTRAIL added.

分析:

exttrailsource:抓取进程的来源,因为这个进程不否则到数据库中取抓取,所以抓取的来源

是通过抓取进程已经生成好的trail文件中的内容。

19、

源端:

配置datapump进程参数:

GGSCI (oggsource.localdomain) 22> edit param dpe_demo
extract dpe_demo

dynamicresolution

passthru

rmthost 192.168.103.107, mgrport 7839,compress

rmttrail ./dirdat/t1

numfiles 5000

TABLE OGG_USER.*;

GGSCI (oggsource.localdomain) 23> start dpe_demo

Sending START request to MANAGER ...

EXTRACT DPE_DEMO starting

GGSCI (oggsource.localdomain) 24> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

EXTRACT    RUNNING     DPE_DEMO    00:00:00      00:00:00

EXTRACT    RUNNING     EXT_DEMO    00:00:00      00:00:02
分析:

PASSTHRU:禁止extract进程与数据库交互,适用于Data Pump传输进程;

RMTHOST:指定目标系统及其GoldengateManager进程的端口号,还用于定义是否使用压缩进行传输;

mgrport:目标主机管理进程的端口号,我们上面已经配置了。

compress:在传输的过程中启用压缩。

RMTTRAIL:指定写入到目标断的哪个队列;

TABLE OGG_USER.*:上面说过,哪些表的redo信息传输。

启动,如果有问题,状态不能为running,可以查看相应的日志在自己安装的ogghome目录下。

日志所在地:

[goldengate@oggsource ogg]$ vi ggserr.log

20、

源端:

测试goldengate能否抓取数据:

SQL> insert into ogg_user.t1 values(3,'c',30);

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

Systemaltered.


查看源端是否生成文件:

[root@oggsource ~]# su - goldengate

[goldengate@oggsource ~]$ cd/home/goldengate/ogg/dirdat

[goldengate@oggsource dirdat]$ ll

total 4

-rw-rw-rw- 1 goldengate oinstall 1330 Jul27 16:56 r1000000


查看目标端是否也生成:

[root@oggtarget ~]# su - goldengate

[goldengate@oggtarget ~]$ cd /home/goldengate/ogg/dirdat

[goldengate@oggtarget dirdat]$ ll

total 4

-rw-rw-rw- 1 goldengate oinstall 1386 Jul27 16:56 t1000000


21、

目标端:

创建golengate软件使用的schema,并授权一些必要的特殊权限,注意与源端有所区别,保证我们能DML。

create tablespace goldengate datafile '/u01/app/oracle/oradata/oggt/goldengate01.dbf' size 100m autoextend on;
create user goldengate identified by goldengate default tablespace goldengate temporary tablespace temp;
grant connect,resource to goldengate;
grant dba to goldengate;


22、

目标端:

为replicat进程创建checkpoint表:

GGSCI (oggtarget.localdomain) 7> dblogin userid goldengate,password goldengate

Successfully logged into database.

GGSCI (oggtarget.localdomain) 8> add checkpointtable goldengate.rep_demo_ckpt

Successfully created checkpoint table goldengate.rep_demo_ckpt.


23、

目标端:

配置目标端replicate进程:

GGSCI (oggtarget.localdomain) 9> add replicat rep_demo,exttrail./dirdat/t1,checkpointtable goldengate.rep_demo_ckpt

REPLICAT added.

分析:

exttrail:表示这个进程获取数据的来源是什么地方,是我们源端rmttrail所设置过的。

24、

目标端:

配置目标端replicate参数:

GGSCI (oggtarget.localdomain) 10> edit param rep_demo
REPLICAT rep_demo

SETENV (ORACLE_SID=oggt)

SETENV (NLS_LANG ="AMERICAN_AMERICA.ZHS16GBK")

USERID goldengate,PASSWORD goldengate

REPORTCOUNT EVERY 30 MINUTES, RATE

REPERROR DEFAULT, ABEND

numfiles 5000

--HANDLECOLLISIONS

assumetargetdefs

DISCARDFILE ./dirrpt/rep_demo.dsc, APPEND,MEGABYTES 1000

ALLOWNOOPUPDATES

MAP OGG_USER.*,TARGET OGG_USER.*;
分析:
REPERROR:定义出错以后进程的响应,一般可以定义为两种:

ABEND,即一旦出现错误即停止复制,此为缺省配置;

DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。

ASSUMETARGETDEFS:假定两端数据结构一致使用此参数;

MAP:用于指定源端与目标端表的映射关系;

25、

目标端:

启动并查看replicate进程是否运行:

GGSCI (oggtarget.localdomain) 11> start rep_demo

Sending START request to MANAGER ...

REPLICAT REP_DEMO starting

GGSCI (oggtarget.localdomain) 12> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

REPLICAT   RUNNING     REP_DEMO    00:00:00      00:01:59


26、 测试源端和目标端的数据。

源端:

SQL> update ogg_user.t1 set salary=300 where id=3;

1 row updated.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> select * from ogg_user.t1;

ID NAME           SALARY

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

3 c                 300

1 a                  10

2 b                  20


目标端:

SQL> select * from ogg_user.t1;

ID NAME           SALARY

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

3 c                 300

1 a                  10

2 b                  20


27、

测试数据同步,表明已经配置完成goldengate,并实现了单向DML复制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: