Oracle Stream - Step by Step Procedure
Oracle Stream - Step by Step Procedure
=============================================
DB Names: ANK1 & ORCL
1. Create STRADM user and grant necessary privileges.
2. Create private database link to the destination database from STRADM user.
CREATE DATABASE LINK ANK1.REGRESS.RDBMS.DEV.US.ORACLE.COM CONNECT TO STRADM IDEN
TIFIED BY stradm USING 'ANK1';
3. Create CAPTURE table and queue in SOURCE database (STRADM user).
exec dbms_streams_adm.set_up_queue(queue_table => 'CAPTURE_SCOTT_S',queue_name =
> 'CAPTURE_SCOTT_S_Q',queue_user => 'STRADM');
4. Add rules (Table, Schema or Database level) for CAPTURE process in SOURCE dat
abase (STRADM user).
BEGIN
DBMS_STREAMS_ADM.ADD_SCHEMA_RULES (
SCHEMA_NAME => 'SCOTT',
STREAMS_TYPE => 'CAPTURE',
STREAMS_NAME => 'CAP_STREAM_SCOTT_S',
QUEUE_NAME => 'CAPTURE_SCOTT_S_Q',
INCLUDE_DML => TRUE,
INCLUDE_DDL => TRUE,
INCLUSION_RULE => TRUE);
END;
/
5. Create APPLY table and queue in DESTINATION database (STRADM user).
exec dbms_streams_adm.set_up_queue(queue_table => 'APPLY_SCOTT_S',queue_name =>
'APPLY_SCOTT_S_Q',queue_user => 'STRADM');
6. Add rules (Table, Schema or Database level) for APPLY process in DESTINATION
database (STRADM user).
BEGIN
DBMS_STREAMS_ADM.ADD_SCHEMA_RULES (
SCHEMA_NAME => 'SCOTT',
STREAMS_TYPE => 'APPLY',
STREAMS_NAME => 'APPLY_STR_SCOTT_S',
QUEUE_NAME => 'APPLY_SCOTT_S_Q',
INCLUDE_DML => TRUE,
INCLUDE_DDL => TRUE,
SOURCE_DATABASE => 'ANK1.REGRESS.RDBMS.DEV.US.ORACLE.COM');
END;
/
7. Add PROPAGATION rule at SOURCE database (STRMADM user).
BEGIN
DBMS_STREAMS_ADM.ADD_SCHEMA_PROPAGATION_RULES (
SCHEMA_NAME => 'SCOTT',
STREAMS_NAME => 'ANK1_TO_SAMEER',
SOURCE_QUEUE_NAME => 'CAPTURE_SCOTT_S_Q',
DESTINATION_QUEUE_NAME => '[email protected]'
,
INCLUDE_DML => TRUE,
INCLUDE_DDL => TRUE,
SOURCE_DATABASE => 'ANK1.REGRESS.RDBMS.DEV.US.ORACLE.COM');
END;
/
8. INSTANTIATE the objects (Table, Schema, Database) with the SCN from SOURCE da
tabase (STRADM user).
DECLARE
ISCN NUMBER;
BEGIN
ISCN := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();
DBMS_APPLY_ADM.SET_SCHEMA_INSTANTIATION_SCN@ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM
(
SOURCE_SCHEMA_NAME => 'SCOTT',
SOURCE_DATABASE_NAME => 'ANK1.REGRESS.RDBMS.DEV.US.ORACLE.COM',
INSTANTIATION_SCN => ISCN,
RECURSIVE => TRUE);
END;
/
9. Start the APPLY process at DESTINATION database.
EXEC DBMS_APPLY_ADM.SET_PARAMETER (APPLY_NAME => 'APPLY_STR_SCOTT_S', PARAMETER
=> 'DISABLE_ON_ERROR', VALUE => 'N');
EXEC DBMS_APPLY_ADM.START_APPLY (APPLY_NAME => 'APPLY_STR_SCOTT_S');
10. Start the CAPTURE process at SOURCE database.
EXEC DBMS_CAPTURE_ADM.START_CAPTURE (CAPTURE_NAME => 'CAP_STREAM_SCOTT_S');