环境说明: oracle11g 单实例-->单实例 ogg 创建多通道复制 主要目的是通过配置源端单独的extract抽取进程和单独的pump传输进程 以及目标端配置单独的replicate复制线程来实现隔离多用户下表的复制, 防止复制数据过程中因为一个复制通道失败影响到另外一个通道复制
一、第一个复制通道
第一个复制通道test1下面的文章已经配置完成,此处不在赘述
二、配置第二复制通道
2.1、环境说明:
源端和目标端都还是采用文章中ogg_data表空间和ogg用户, 本博文演示还是基于中的环境演示。
与博文不同的是 新增测试用户test02和测试表test2, 新增测试抽取进程ext2和 pump2进行 以及新增replicat复制进程rep2
2.2、实现目标说明:
通过配置源端extract抽取进程ext2和传输进程 pump2 两个新进程 以及目标端复制进程rep2,来实现单独针对test2用户通道下表的同步.
2.3、源端配置extract抽取进程ext2和传输进程pump2
源端配置extract抽取进程ext2:
GGSCI (dbstandby08) 1> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI (dbstandby08) 2> add extract ext2, tranlog, begin now, threads 1
EXTRACT added.
GGSCI (dbstandby08) 3> add exttrail ./dirdat/ext2/et, extract ext2
EXTTRAIL added.
GGSCI (dbstandby08) 4> view params ext2
EXTRACT ext2
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
SETENV (ORACLE_SID = "orcl")
SETENV (ORACLE_HOME = "/u01/oracle/tools/oracle11g/product/11.2.0/dbhome_1")
USERID ogg, PASSWORD ogg
THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 20000
EXTTRAIL ./dirdat/ext2/et
DYNAMICRESOLUTION
DDL INCLUDE ALL
--GETTRUNCATES
TABLE test2.*;
源端服务器系统创建目录ext2目录:
[oracle@dbstandby08 dirdat]$ mkdir ext2
[oracle@dbstandby08 dirdat]$ pwd
/u01/oracle/tools/oracle11g/ogg/dirdat
[oracle@dbstandby08 dirdat]$ ll
total 0
drwxr-xr-x 2 oracle oinstall 86 Nov 9 08:25 ext1
drwxr-xr-x 2 oracle oinstall 6 Nov 9 20:13 ext2
源端配置extract传输进程 pump2:
GGSCI (dbstandby08) 5> add extract pump2,exttrailsource ./dirdat/ext2/et,begin now
EXTRACT added.
GGSCI (dbstandby08) 6> add rmttrail ./dirdat/ext2/et,extract pump2
RMTTRAIL added.
GGSCI (dbstandby08) 7> view params pump2
EXTRACT pump2
RMTHOST 10.0.0.9, MGRPORT 7809
RMTTRAIL ./dirdat/ext2/et
PASSTHRU
DYNAMICRESOLUTION
--GETTRUNCATES
TABLE test2.*;
目标服务器系统创建目录ext2目录:
[oracle@oracle dirdat]$ mkdir ext2
[oracle@oracle dirdat]$ pwd
/u01/oracle/tools/oracle11g/ogg/dirdat
[oracle@oracle dirdat]$ ll
total 0
drwxr-xr-x 2 oracle oinstall 86 Nov 9 08:30 ext1
drwxr-xr-x 2 oracle oinstall 6 Nov 9 20:14 ext2
2.4、源端ogg启动 ext2 和pump2进程
GGSCI (dbstandby08) 7> dblogin userid ogg,password ogg
GGSCI (dbstandby08) 8> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:02
EXTRACT STOPPED EXT2 00:00:00 00:05:35
EXTRACT RUNNING PUMP1 00:00:00 00:00:01
EXTRACT STOPPED PUMP2 00:00:00 00:02:03
GGSCI (dbstandby08) 9> start ext2
Sending START request to MANAGER ...
EXTRACT EXT2 starting
GGSCI (dbstandby08) 10> start pump2
Sending START request to MANAGER ...
EXTRACT PUMP2 starting
GGSCI (dbstandby08) 11> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:09
EXTRACT RUNNING EXT2 00:00:00 00:00:07
EXTRACT RUNNING PUMP1 00:00:00 00:00:08
EXTRACT RUNNING PUMP2 00:00:00 00:02:20
2.5、目标端配置replicat进程rep2
GGSCI (oracle) 1> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI (oracle) 2> add replicat rep2, exttrail ./dirdat/ext2/et, checkpointtable ogg.checkpoint
REPLICAT added.
GGSCI (oracle) 4> view params rep2
REPLICAT rep2
setenv (ORACLE_SID=orcl)
SETENV (ORACLE_HOME = "/u01/oracle/tools/oracle11g/product/11.2.0/dbhome_1")
USERID ogg,PASSWORD ogg
ASSUMETARGETDEFS
HANDLECOLLISIONS
REPERROR (DEFAULT, DISCARD)
DDLERROR DEFAULT DISCARD
DDLOPTIONS REPORT
DISCARDFILE ./dirrpt/repr2.dsc,append,megabytes 100
MAP test2.*, TARGET test2.*;
ddl include all
ddlerror default ignore retryop maxretries 3 retrydelay 5
2.6、目标端ogg启动relicat进程rep2
GGSCI (oracle) 5> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:09
REPLICAT STOPPED REP2 00:00:00 00:01:43
GGSCI (oracle) 6> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 starting
GGSCI (oracle) 7> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:02
REPLICAT RUNNING REP2 00:00:00 00:00:03
三、创建测试数据验证同步
源端用户test02创建测试表test2:
create user test2 identified by test2;
grant connect,resource to test2;
conn test2/test2
create table test2 (id number(10) primary key ,name varchar(8));
insert into test2 values(1,'zhang02');
insert into test2 values(2,'lisi02');
commit;
目标端验证:
SQL> conn test2/test2
Connected.
SQL> select * from test2;
ID NAME
---------- --------
1 zhang02
2 lisi02
SQL>
源端用户test02创建测试表test3:
conn test2/test2
create table test3 (id number(10) primary key ,name varchar(8));
insert into test3 values(1,'zhang03');
insert into test3 values(2,'lisi03');
commit;
目标端验证:
SQL> select * from test3;
ID NAME
---------- --------
1 zhang03
2 lisi03
源端truncate用户test02创建测试表test3:
SQL> truncate table test3;
Table truncated.
目标端验证:
SQL> select * from test3;
no rows selected
源端drop掉test3表,目标端验证:
SQL> desc test3;
ERROR:
ORA-04043: object test3 does not exist
到此处 基于ogg oracle11g单实例单向复制 独立的新复制通道test2配置测试完毕