bidirectional replication with streams in 10G [message #148798] |
Mon, 28 November 2005 04:15 |
bengerming
Messages: 1 Registered: November 2005
|
Junior Member |
|
|
Hi:
I want to build a bidirctional replication with streams, but I fail to do it.
I have set up a schema level streams environment which include two site A and B.
At first, I configure A as a source database and B as destination database. It works fine.
Then I do the same as above with difference B as source database and A as destination. It can not work.
The phenomenon as follows:
column value in site A column value in site B
red red
after I change the value into “red and blue” in site A, it works ok.
column value in site A column value in site B
red and blue red and blue
but I change back into “red” in site B , the value in site A doesn’t change. That is to say , the streams environment
has not the capability of bidirectional update.
column value in site A column value in site B
red and blue red
the strange is then I change the value in site A into another value “red and blue and white”, the value in site B
doesn’t change.
column value in site A column value in site B
red and blue and white red
then I tested other rows in the table, if I update the row values in site B , the counterpart row’s changes in site A don’t propagate to
site B. the other row’s changes can propagate to site B correctly.
And all the changes in site B can not propagate to site B .
I have queried the capture process in both site, it works fine.
SELECT CAPTURE_NAME, QUEUE_NAME, RULE_SET_NAME, NEGATIVE_RULE_SET_NAME, STATUS
FROM DBA_CAPTURE;
Site A
CAPTURE_NAME QUEUE_NAME RULE_SET_NAME NEGATIVE_RULE_SET_NAME STATUS
STRMADMIN_CAPTURE STREAMS_QUEUE RULESET$_76 ENABLED
Site B
CAPTURE_NAME QUEUE_NAME RULE_SET_NAME NEGATIVE_RULE_SET_NAME STATUS
STRMADMIN_CAPTURE STREAMS_QUEUE RULESET$_44 ENABLED
propation job information in both site, it also works fine
SELECT TO_CHAR(s.START_DATE, 'HH24:MI:SS MM/DD/YY') START_DATE,
s.PROPAGATION_WINDOW,
s.NEXT_TIME,
s.LATENCY,
DECODE(s.SCHEDULE_DISABLED,
'Y', 'Disabled',
'N', 'Enabled') SCHEDULE_DISABLED,
s.PROCESS_NAME,
s.FAILURES
FROM DBA_QUEUE_SCHEDULES s, DBA_PROPAGATION p
WHERE p.PROPAGATION_NAME = 'STRMADMIN_PROPAGATE'
AND p.DESTINATION_DBLINK = s.DESTINATION
AND s.SCHEMA = p.SOURCE_QUEUE_OWNER
AND s.QNAME = p.SOURCE_QUEUE_NAME
siteA
START_DATE PROPAGATION_WINDOW NEXT_TIME LATENCY SCHEDULE_DISABLED PROCESS_NAME FAILURES
17:41:28 11/15/05 3 Enabled J000 0
siteB
START_DATE PROPAGATION_WINDOW NEXT_TIME LATENCY SCHEDULE_DISABLED PROCESS_NAME FAILURES
10:29:39 11/25/05 3 Enabled J000 0
Apply process information , It also wors fines.
select * from V$STREAMS_APPLY_COORDINATOR;
siteA
SID SERIAL# STATE APPLY# APPLY_NAME TOTAL_APPLIED TOTAL_WAIT_DEPS
84 11913 APPLYING 1 STRMADMIN_APPLY 0 0
siteB
SID SERIAL# STATE APPLY# APPLY_NAME TOTAL_APPLIED TOTAL_WAIT_DEPS
161 8370 APPLYING 1 STRMADMIN_APPLY 213013 0
SELECT
p.SOURCE_QUEUE_OWNER||'.'||
p.SOURCE_QUEUE_NAME||'@'||
g.GLOBAL_NAME SOURCE_QUEUE,
p.DESTINATION_QUEUE_OWNER||'.'||
p.DESTINATION_QUEUE_NAME||'@'||
p.DESTINATION_DBLINK DESTINATION_QUEUE
FROM DBA_PROPAGATION p, GLOBAL_NAME g
Output in site B
SOURCE_QUEUE DESTINATION_QUEUE
STRMADMIN.STREAMS_QUEUE@DB01.NET93 STRMADMIN.STREAMS_QUEUE@DB01.GN
Output in site A
SOURCE_QUEUE DESTINATION_QUEUE
STRMADMIN.STREAMS_QUEUE@DB01.GN STRMADMIN.STREAMS_QUEUE@DB01.NET93
I don’t why it can not propagate indirection, only unidirection . whether I need instantiation in both sites or only need once from
site A to site B. I have tried the two scenarios , but fails.
I really need help , thanks for all of you!!!
|
|
|
|