永发信息网

oracle问题。 简述shareplex工作原理。

答案:2  悬赏:40  手机版
解决时间 2021-02-20 13:27
  • 提问者网友:泪痣哥哥
  • 2021-02-20 04:07
oracle问题。
简述shareplex工作原理。
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-02-20 04:52
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
全部回答
  • 1楼网友:一把行者刀
  • 2021-02-20 05:41
支持一下感觉挺不错的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯