Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298089
  • 博文数量: 127
  • 博客积分: 2286
  • 博客等级: 大尉
  • 技术积分: 1943
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-10 10:37
文章分类

全部博文(127)

文章存档

2018年(1)

2015年(2)

2014年(1)

2013年(30)

2012年(88)

2011年(5)

分类: Oracle

2012-12-25 16:15:14

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



阅读(4261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~