oracle旗下的GOLDENDATE是用来做数据容灾的一个软件俗称OGG,当然也可以用来支持热备份数据库,和跨平台跨数据库的数据迁移,具体的了解可以通过自行百度。他的概念不是我要在这写的。
准备工作
下载OGG介质并且解压缩安装,修改oracle用户环境变量(因为比较简单就不在这赘述了,如果不会,可自行百度)。
因为它主要是基于数据库日志的,所以建议最好开启数据库的归档。并且开启数据库的附加日志,以便更准确的捕获数据库的DML操作。
源端数据库和目标端数据库都要建立关于OGG同步的用户。
源端OGG配置
1.配置mgr进程,mgr为ogg的守护进程
用oracle用户执行ggsci命令,进入OGG
然后执行如下编辑
GGSCI (oracle1) 2> edit params mgr
PORT 7809
dynamicportlist 7800-8000 (动态端口设置,OGG可以定制最大256个端口,当指定的端口不可用,管理进程将从列表中选择一个端口,源端和目标的发送接受进程都会使用这些端口)
autorestart extract *,retries 2,waitminutes 2,resetminutes 5
(这个代表一共尝试启动两次,以后5分钟清零,然后在按照2分钟尝试,一共启动2次)
启动 mgr进程
GGSCI (oracle1) 3>start mgr
2.配置Extract(抽取进程)
抽取进程组是在源端运行,负责抓取需要传输的数据
GGSCI (oracle1) 5>edit params eora (创建一个名为eora的抽取进程)
extract eora
dynamicresolution
userid ogg,password ogg (OGG用户名和密码)
exttrail /u01/app/OGG_11C/dirdat/et (trail文件的存放路径)
table scott.*; (要同步的表,*代表该模式下所有的表)
在源端添加刚才配置好的抽取进程
GGSCI (oracle1) 8> add extract eora,tranlog,begin now
在源端添加tail文件的路径
GGSCI (oracle1) 3>add exttrail /u01/app/OGG_11G/dirdat/et,extract eora
EXTTRAIL added.
启动 extract
GGSCI (oracle1) 4> start extract eora
3、配置源端Pump进程(发送进程)
GGSCI (oracle1) 5> edit params pump_so
extract pump_so
dynamicresoulution
passthru
rmhost 192.168.230.129,mgrport 7809,compress (远程的ip和管理端口)
rmttrail /u01/app/ogg_11G/dirdat/pt (远程tail文件的路径)
table scott.*;
GGSCI (oracle1) 6> add extract pump_so,exttrailsource /u01/app/OGG_11G/dirdat/et
EXTRACT added.
GGSCI (oracle1) 7> add rmttrail /u01/app/ogg_11G/dirdat/pt,extract pump_so
RMTTRAIL added.
启动发送进程
GGSCI (oracle1)8>start pump_so
4、可以通过 info all 来查看刚才配置的情况,以及是否都在工作
目标ogg程序配置
1、配置目标的MRG(管理进程)
[oracle@oracle2 OGG]$ ggsci
GGSCI (oracle2) 2> edit params mgr (名字为mgr)
PORT 7809
dynamicportlist 7800-8000 (动态端口设置,OGG可以定制最大256个端口,当指定的端口不可用,管理进程将从列表中选择一个端口,源端和目标的发送接受进程都会使用这些端口)
autostart er *
autostart extract *,waitminutes 2,retries 5 (这个代表一共尝试启动两次,以后5分钟清零,然后在按照2分钟尝试,一共启动2次)
lagreporthours 1 (MGR每隔1小时检查一次extract延迟情况)
laginfominutes 3 (如果超过三分钟就把他作为延迟信息记录到错误日志中)
lagcriticalminutes 5 (如果超过5分钟,则把他作为警告写到错误日志中)
purgeoldextracts /u01/app/ogg_11g/rt*,usecheckpotints,minkeepdays 3 (自动清理tail文件,只保留三天)
启动 mgr进程
GGSCI (oracle2) 3>start mgr
2. 添加检查表
说明: 当我们在GLOBALS 文件里指定了默认的checkpoint 之后,新的Replicat groups 在创建时会自动使用这个参数,不需要其他指令
1) 编辑全局配置文件
edit params ./GLOBALS
CHECKPOINTTABLE ogg.checkpoint
2)exit # 这里需要退出ggsci终端
3) 添加checkpoint表
./ggsci
GGSCI (slave) 1> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI (slave) 2> add checkpointtable ogg.checkpoint
Successfully created checkpoint table OGG.CHECKPOINT.
添加完成后,可以在数据里看到两个CHECK开头的表
SQL> select tname from tab;
TNAME
-------------------------------------
CHECKPOINT TABLE
CHECKPOINT_LOX TABLE
select * from checkpoint;
注1:ogg_11.1.1.1.2只有CHECKPOINT一张表。
注2:ogg_11.2.x.x.1有CHECKPOINT,CHECKPOINT_LOX两张表。
3、配置目标的Replicat(装载进程)
GGSCI (oracle2) 3> edit params repl
replicat repl
userid ogg,password ogg
assumtargetdefs
reperror default,discard
discardrdfile /u01/app/ogg_11g/dirrpt/rep1.dsc, append, megabytes 50
dynamicresolution
map scott.*,target scott.*;
在目标端添加一个 replicat进程
GGSCI (oracle2 as ogg@oracle2) 6> add replicat relp,exttrail /u01/app/OGG/dirdat/pt,checkpointtable ogg.CHECKPOINT
REPLICAT added.
启动 装载进程
GGSCI (oracle2 as ogg@oracle2) 7>start repl
四、 正常数据测试
随便修改一个scott表里的数据,然后看目标数据库与之对应的数据即可。
可以通过 view report 进程名 命令和stats 进程名 两个命令来查看数据同步情况。
本文出自 “学者” 博客,请务必保留此出处http://huanming.blog.51cto.com/10214925/1671761
原文地址:http://huanming.blog.51cto.com/10214925/1671761