前言
goldengate 11g 在oracle 11g rac 上的配置 (源是rac+asm , 目标是单数据库实例)
源端:
1. 配置tnsnames
[oracle@rac1 admin]$ more tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
sunrac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sunrac)
)
)
ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASM)
(SID_NAME = +ASM1)
)
)
我只是测试,所以只在第一个节点上做
2. 数据库环境准备,添加最小附加日志
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> conn test/test
Connected.
SQL> create table mxm (id int,name varchar2(80));
Table created.
SQL> begin
2 for i in 1 .. 1000000 loop
3 insert into mxm values (i,'mic');
4 end loop;
5 commit;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select count(*) from mxm;
COUNT(*)
----------
1000000
SQL> select bytes/1024/1024 from user_segments where segment_name='MXM'; ---看一下数据量,最后好算算传输率
BYTES/1024/1024
---------------
16
创建goldengate 用户并赋予dba 权限(避免权限的麻烦)
SQL> create user ogg identified by ogg;
User created.
SQL> grant dba to ogg;
Grant succeeded.
3. 安装ogg
略
4. 配置ogg mgr
[oracle@rac1 goldengate]$ ./ggsci
GGSCI (rac1) 1> create subdirs
配置mgr 端口:
GGSCI (rac1) 1> edit param mgr
GGSCI (rac1) 2> view param mgr
PORT 7809
GGSCI (rac1) 3> start mgr
GGSCI (rac1) 4> info all
5.配置抽取进程和传输进程
GGSCI (rac1) 3> edit param exttest
GGSCI (rac1) 4> view param exttest
extract exttest
userid ogg@sunrac,password ogg
tranlogoptions asmuser sys@asm,asmpassword Beijing123 --登录asm的
exttrail ./dirdat/mm
table test.mxm;
GGSCI (rac1) 6> edit param pumptest
GGSCI (rac1) 7> view param pumptest
extract pumptest
rmthost 192.168.56.109,mgrport 7809,compress
rmttrail ./dirdat/mm
passthru
table test.mxm;
GGSCI (rac1 as ogg@SUNRAC1) 10> add extract exttest,tranlog,Begin Now threads 2 --因为我的rac 是2个节点的,所以是threads 2
EXTRACT added.
GGSCI (rac1 as ogg@SUNRAC1) 11> add exttrail ./dirdat/mm,extract exttest,megabytes 5
EXTTRAIL added.
GGSCI (rac1 as ogg@SUNRAC1) 12> add extract pumptest,exttrailsource ./dirdat/mm --添加source dir
EXTRACT added.
GGSCI (rac1 as ogg@SUNRAC1) 14> add rmttrail ./dirdat/mm,extract pumptest,megabytes 5 --添加remote dir
RMTTRAIL added.
添加trandata
GGSCI (rac1) 15> dblogin userid ogg@sunrac,password ogg
Successfully logged into database.
GGSCI (rac1 as ogg@SUNRAC1) 16> add trandata test.mxm
6. 配置init 进程
GGSCI (rac1) 2> edit param inittest
GGSCI (rac1) 4> view param inittest
extract inittest
userid ogg,password ogg
rmthost 192.168.56.109,mgrport 7809
rmttask replicat,group initrep --目标端init接收进程名
table test.mxm;
GGSCI (rac1) 6> add extract inittest, sourceistable
EXTRACT added.
目标端
1. 创建相应的表
SQL> create table mxm (id int,name varchar2(80));
Table created.
2. 安装ogg
略
3. 配置mgr
GGSCI (oracledg) 1> edit param mgr
GGSCI (oracledg) 2> view param mgr
PORT 7809
ACCESSRULE, PROG *, IPADDR 192.168.56.101, ALLOW --没有这行,inittest 进程无法启动目标端的initrep进程
GGSCI (oracledg) 4> start mgr
GGSCI (oracledg) 5> edit params ./GLOBALS
GGSCI (oracledg) 6> view params ./GLOBALS
ggschema ogg
CHECKPOINTTABLE