SELECT v.SOURCE_COMPONENT_NAME,
v.SOURCE_COMPONENT_DB,
v.SOURCE_COMPONENT_TYPE,
v.DEST_COMPONENT_NAME,
v.DEST_COMPONENT_DB,
v.DEST_COMPONENT_TYPE,
0 as SPARE1,
0 as SPARE2,
NULL as SPARE3,
to_date(NULL, '') as SPARE4
FROM (
-- CAPTURE -> QUEUE
SELECT
c.capture_name as SOURCE_COMPONENT_NAME,
global_name as SOURCE_COMPONENT_DB,
1 as SOURCE_COMPONENT_TYPE,
('"'||c.queue_owner||'"."'||c.queue_name||'"')
as DEST_COMPONENT_NAME,
global_name as DEST_COMPONENT_DB,
5 as DEST_COMPONENT_TYPE
-- OPTIMIZE: Replace dba_capture with sys.streams$_capture_process
FROM sys.streams$_capture_process c, global_name
UNION
-- QUEUE -> PROPAGATION SENDER
SELECT
('"'||source_queue_schema||'"."'||source_queue||'"')
as SOURCE_COMPONENT_NAME,
global_name as SOURCE_COMPONENT_DB,
5 as SOURCE_COMPONENT_TYPE,
('"'||source_queue_schema||'"."'||source_queue||
'"=>"'||destination_queue_schema||'"."'||destination_queue||
'"@'||destination_dblink) as DEST_COMPONENT_NAME,
global_name as DEST_COMPONENT_DB,
2 as DEST_COMPONENT_TYPE
FROM sys.streams$_propagation_process, global_name
UNION
-- PROPAGATION SENDER -> PROPAGATION RECEIVER
SELECT
('"'||source_queue_schema||'"."'||source_queue||
'"=>"'||destination_queue_schema||'"."'||destination_queue||
'"@'||destination_dblink) as SOURCE_COMPONENT_NAME,
global_name as SOURCE_COMPONENT_DB,
2 as SOURCE_COMPONENT_TYPE,
('"'||source_queue_schema||'"."'||source_queue||
'"@'||global_name||'=>"'||destination_queue_schema||'"."'||
destination_queue||'"') as DEST_COMPONENT_NAME,
destination_dblink as DEST_COMPONENT_DB,
3 as DEST_COMPONENT_TYPE
-- OPTIMIZE: Replace dba_propagation with sys.streams$_propagation_process
FROM sys.streams$_propagation_process, global_name
UNION
-- PROPAGATION RECEIVER -> QUEUE
-- NOTE: This link is stored on the source database though it physically
-- resides on the destination database
SELECT
('"'||source_queue_schema||'"."'||source_queue||
'"@'||global_name||'=>"'||destination_queue_schema||'"."'||
destination_queue||'"') as SOURCE_COMPONENT_NAME,
destination_dblink as SOURCE_COMPONENT_DB,
3 as SOURCE_COMPONENT_TYPE,
('"'||destination_queue_schema||'"."'||destination_queue||'"')
as DEST_COMPONENT_NAME,
destination_dblink as DEST_COMPONENT_DB,
5 as DEST_COMPONENT_TYPE
-- OPTIMIZE: Replace dba_propagation with sys.streams$_propagation_process
FROM sys.streams$_propagation_process, global_name
WHERE destination_dblink IS NOT NULL
UNION
-- PROPAGATION RECEIVER -> QUEUE in case of XStreamIn
-- XStream inbound server is presented as PROPAGATION RECEIVER and we need
-- to add a link from propagation receiver to queue
SELECT ('"'||xs.cap_src_database||'"=>"'||
xs.queue_owner||'"."'||xs.queue_name||'"')
as SOURCE_COMPONENT_NAME,
global_name as SOURCE_COMPONENT_DB,
3 as SOURCE_COMPONENT_TYPE,
('"'||xs.queue_owner||'"."'||xs.queue_name||'"')
as DEST_COMPONENT_NAME,
global_name as DEST_COMPONENT_DB,
5 as DEST_COMPONENT_TYPE
FROM xstream$_server xs, global_name
WHERE BITAND(xs.flags, 2) = 2 and SUBSTR(xs.server_name,1, 4) != 'OGG$'
UNION
-- Replicat -> QUEUE
SELECT LTRIM(apply_name, 'OGG$')
as SOURCE_COMPONENT_NAME,
global_name as SOURCE_COMPONENT_DB,
7 as SOURCE_COMPONENT_TYPE,
('"'||queue_owner||'"."'||queue_name||'"')
as DEST_COMPONENT_NAME,
global_name as DEST_COMPONENT_DB,
5 as DEST_COMPONENT_TYPE
FROM dba_apply, global_name
WHERE purpose = 'GoldenGate Apply'
UNION
-- QUEUE -> APPLY/EXTRACT
SELECT
('"'||a.queue_owner||'"."'||a.queue_name||'"')
as SOURCE_COMPONENT_NAME,
global_name as SOURCE_COMPONENT_DB,
5 as SOURCE_COMPONENT_TYPE,
decode(a.purpose, 'GoldenGate Capture',
ltrim(a.apply_name, 'OGG$'), a.apply_name)
as DEST_COMPONENT_NAME,
global_name as DEST_COMPONENT_DB,
decode(a.purpose, 'GoldenGate Capture', 6, 4)
as DEST_COMPONENT_TYPE
FROM dba_apply a, global_name ) v
SELECT V.SOURCE_COMPONENT_NAME
,
V.SOURCE_COMPONENT_DB
,
V.SOURCE_COMPONENT_TYPE
,
V.DEST_COMPONENT_NAME
,
V.DEST_COMPONENT_DB
,
V.DEST_COMPONENT_TYPE
,
0 AS SPARE1
,
0 AS SPARE2
,
NULL AS SPARE3
,
TO_DATE(NULL
, '') AS SPARE4
FROM (
-- CAPTURE -> QUEUE
SELECT
C.CAPTURE_NAME AS SOURCE_COMPONENT_NAME
,
GLOBAL_NAME AS SOURCE_COMPONENT_DB
,
1 AS SOURCE_COMPONENT_TYPE
,
('"'||C.QUEUE_OWNER||'"."'||C.QUEUE_NAME||'"')
AS DEST_COMPONENT_NAME
,
GLOBAL_NAME AS DEST_COMPONENT_DB
,
5 AS DEST_COMPONENT_TYPE
-- OPTIMIZE: REPLACE DBA_CAPTURE WITH SYS.STREAMS$_CAPTURE_PROCESS
FROM SYS.STREAMS$_CAPTURE_PROCESS C
, GLOBAL_NAME
UNION
-- QUEUE -> PROPAGATION SENDER
SELECT
('"'||SOURCE_QUEUE_SCHEMA||'"."'||SOURCE_QUEUE||'"')
AS SOURCE_COMPONENT_NAME
,
GLOBAL_NAME AS SOURCE_COMPONENT_DB
,
5 AS SOURCE_COMPONENT_TYPE
,
('"'||SOURCE_QUEUE_SCHEMA||'"."'||SOURCE_QUEUE||
'"=>"'||DESTINATION_QUEUE_SCHEMA||'"."'||DESTINATION_QUEUE||
'"@'||DESTINATION_DBLINK) AS DEST_COMPONENT_NAME
,
GLOBAL_NAME AS DEST_COMPONENT_DB
,
2 AS DEST_COMPONENT_TYPE
FROM SYS.STREAMS$_PROPAGATION_PROCESS
, GLOBAL_NAME
UNION
-- PROPAGATION SENDER -> PROPAGATION RECEIVER
SELECT
('"'||SOURCE_QUEUE_SCHEMA||'"."'||SOURCE_QUEUE||
'"=>"'||DESTINATION_QUEUE_SCHEMA||'"."'||DESTINATION_QUEUE||
'"@'||DESTINATION_DBLINK) AS SOURCE_COMPONENT_NAME
,
GLOBAL_NAME AS SOURCE_COMPONENT_DB
,
2 AS SOURCE_COMPONENT_TYPE
,
('"'||SOURCE_QUEUE_SCHEMA||'"."'||SOURCE_QUEUE||
'"@'||GLOBAL_NAME||'=>"'||DESTINATION_QUEUE_SCHEMA||'"."'||
DESTINATION_QUEUE||'"') AS DEST_COMPONENT_NAME
,
DESTINATION_DBLINK AS DEST_COMPONENT_DB
,
3 AS DEST_COMPONENT_TYPE
-- OPTIMIZE: REPLACE DBA_PROPAGATION WITH SYS.STREAMS$_PROPAGATION_PROCESS
FROM SYS.STREAMS$_PROPAGATION_PROCESS
, GLOBAL_NAME
UNION
-- PROPAGATION RECEIVER -> QUEUE
-- NOTE: THIS LINK IS STORED ON THE SOURCE DATABASE THOUGH IT PHYSICALLY
-- RESIDES ON THE DESTINATION DATABASE
SELECT
('"'||SOURCE_QUEUE_SCHEMA||'"."'||SOURCE_QUEUE||
'"@'||GLOBAL_NAME||'=>"'||DESTINATION_QUEUE_SCHEMA||'"."'||
DESTINATION_QUEUE||'"') AS SOURCE_COMPONENT_NAME
,
DESTINATION_DBLINK AS SOURCE_COMPONENT_DB
,
3 AS SOURCE_COMPONENT_TYPE
,
('"'||DESTINATION_QUEUE_SCHEMA||'"."'||DESTINATION_QUEUE||'"')
AS DEST_COMPONENT_NAME
,
DESTINATION_DBLINK AS DEST_COMPONENT_DB
,
5 AS DEST_COMPONENT_TYPE
-- OPTIMIZE: REPLACE DBA_PROPAGATION WITH SYS.STREAMS$_PROPAGATION_PROCESS
FROM SYS.STREAMS$_PROPAGATION_PROCESS
, GLOBAL_NAME
WHERE DESTINATION_DBLINK IS NOT NULL
UNION
-- PROPAGATION RECEIVER -> QUEUE IN CASE OF XSTREAMIN
-- XSTREAM INBOUND SERVER IS PRESENTED AS PROPAGATION RECEIVER
AND WE NEED
-- TO ADD A LINK
FROM PROPAGATION RECEIVER TO QUEUE
SELECT ('"'||XS.CAP_SRC_DATABASE||'"=>"'||
XS.QUEUE_OWNER||'"."'||XS.QUEUE_NAME||'"')
AS SOURCE_COMPONENT_NAME
,
GLOBAL_NAME AS SOURCE_COMPONENT_DB
,
3 AS SOURCE_COMPONENT_TYPE
,
('"'||XS.QUEUE_OWNER||'"."'||XS.QUEUE_NAME||'"')
AS DEST_COMPONENT_NAME
,
GLOBAL_NAME AS DEST_COMPONENT_DB
,
5 AS DEST_COMPONENT_TYPE
FROM XSTREAM$_SERVER XS
, GLOBAL_NAME
WHERE BITAND(XS.FLAGS
, 2) = 2
AND SUBSTR(XS.SERVER_NAME
, 1
, 4) != 'OGG$'
UNION
-- REPLICAT -> QUEUE
SELECT LTRIM(APPLY_NAME
, 'OGG$')
AS SOURCE_COMPONENT_NAME
,
GLOBAL_NAME AS SOURCE_COMPONENT_DB
,
7 AS SOURCE_COMPONENT_TYPE
,
('"'||QUEUE_OWNER||'"."'||QUEUE_NAME||'"')
AS DEST_COMPONENT_NAME
,
GLOBAL_NAME AS DEST_COMPONENT_DB
,
5 AS DEST_COMPONENT_TYPE
FROM DBA_APPLY
, GLOBAL_NAME
WHERE PURPOSE = 'GOLDENGATE APPLY'
UNION
-- QUEUE -> APPLY/EXTRACT
SELECT
('"'||A.QUEUE_OWNER||'"."'||A.QUEUE_NAME||'"')
AS SOURCE_COMPONENT_NAME
,
GLOBAL_NAME AS SOURCE_COMPONENT_DB
,
5 AS SOURCE_COMPONENT_TYPE
,
DECODE(A.PURPOSE
, 'GOLDENGATE CAPTURE'
,
LTRIM(A.APPLY_NAME
, 'OGG$')
, A.APPLY_NAME)
AS DEST_COMPONENT_NAME
,
GLOBAL_NAME AS DEST_COMPONENT_DB
,
DECODE(A.PURPOSE
, 'GOLDENGATE CAPTURE'
, 6
, 4)
AS DEST_COMPONENT_TYPE
FROM DBA_APPLY A
, GLOBAL_NAME ) V
|
|
|