1 体系结构, 3 queues and 4 processes
Redo Log/archived log -->Capture process -->capure queue--> Read Process--> Export queue-->NETWORK--
>Import process-->Post queue-->Post Process-->target DB
我的测试环境:ndb1:XE -----> ndb3:DEMO
2 源端进程
sp_cop --> sp_ocap, sp_ordr, sp_xport
Cature Process(sp_ocap)
从redo logs/arch logs中读取active config中变化的数据,写到capture queue
每个data source有个capure process
Reader Process(sp_ordr)
从capture queue读取数据,加上路由信息写到export queue
每个data source有个read process
Export Process(sp_xport)
跟每个target建立一个TCP/IP连接,并从export queue读取数据,把数据传到目的端
每个source-target对都有一个Export Process
3目的端进程
ps -fu qust
sp_cop --> sp_pst_mt, sp_mport 0xc0a86e66+PI+ndb1+sp_mport+0xc0a86e65 R
Import Process(sp_mport)
与每个source建立一个TCP/IP连接,接受数据写到post queue中
每个source-target对都有一个Import Process
Post Process(sp_post_mt)
从post queue中读取数据,apply到目标数据库中
每个post queue都有一个Post Processs
4网络端口
lsof -i :2100
源端:
sp_cop TCP ndb1.test:2100 (LISTEN)
sp_xport TCP ndb1.test:34347->ndb3.test:2100 (ESTABLISHED)
目的端:
sp_cop TCP ndb3.test:2100 (LISTEN)
sp_mport TCP ndb3.test:2100->ndb1.test:34347 (ESTABLISHED)
sp_mport TCP ndb3.test:2100->ndb1.test:34347 (ESTABLISHED)
sp_cop在2端都监听2100端口
sp_xport连接到源端2100端口,只有一个连接
sp_mport连接到目的端 2100端口, 有2个连接
5 Oracle的连接(正常工作状态)
SQL> select username,module from v$session where username is not null order by 1,2;
源端:
QUEST sp_ocap@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
QUEST sp_ordr@ndb1.test (TNS V1-V3)
目的端:
QUEST Post-2100-ndb1-XE
QUEST sp_opst_mt@ndb3.test (TNS V1-V3)
6 queue的情况
qview list
源端:
o.XE+C
WRITER +PA+o.XE+sp_ocap+o.XE
READER +PR+o.XE+sp_ordr+o.XE
ndb1+X
WRITER +PR+o.XE+sp_ordr+o.XE
READER +PX+ndb1+sp_xport+0xc0a86e66 (192.168.110.102)
Capture Queue(+C)
用于快速存放捕捉道德变化数据
每个Oracle实例只有一个cature queue,用Oracle_SID命名:O.{ORACLE_SID}
Export Queue(+X)
用于存放加上路由的数据
缺省,一个Host/Server只有一个Export queue(多个Oracle实例共用),用hostname命名:{hostname}
用named export queue来实行每个实例用独立的queue
目的端:
ndb1+P+o.XE-o.DEMO
subqueues range from 0 to 3
WRITER +PI+ndb1+sp_mport+0xc0a86e65 (192.168.110.101)
READER +PP+ndb1+sp_opst_mt+o.XE-o.DEMO
PostQueue(+P)
用于存放收到的数据
每个source-target对都有一个Post Queue,以两个Oracle实例来命名:O.{SRC_SID}-O.{DEST_SID}
再看目的端post进程的参数
sp_mport 0xc0a86e66+PI+ndb1+sp_mport+0xc0a86e65 R
queue是源端export queue的reader+目的端post queue的writer
阅读(4272) | 评论(0) | 转发(0) |