Sunteți pe pagina 1din 7

Database Name and TNS name DB1, db1 (source) DB2, db2 (target) Set up below parameters on both

databases (db1, db2) 1. Enable ARCHIVELOG MODE on both database 2. Create Stream administrator User Source Database: DB1 SQL> conn sys@db1 as sysdba Enter password: Connected. SQL> create user strmadmin identified by strmadmin; User created. SQL> grant connect, resource, dba to strmadmin; Grant succeeded. SQL> begin dbms_streams_auth.grant_admin_privilege (grantee => 'strmadmin', grant_privileges => true); end; / PL/SQL procedure successfully completed. SQL> grant select_catalog_role, select any dictionary to strmadmin; Grant succeeded. Target Database: DB2 SQL> conn sys@db2 as sysdba Enter password: Connected. SQL> create user strmadmin identified by strmadmin; User created.

SQL> grant connect, resource, dba to strmadmin; Grant succeeded. SQL> begin dbms_streams_auth.grant_admin_privilege (grantee => 'strmadmin', grant_privileges => true); end; / PL/SQL procedure successfully completed. SQL> grant select_catalog_role, select any dictionary to strmadmin; Grant succeeded. 3. Setup INIT parameters Source Database: DB1 SQL> conn sys@db1 as sysdba Enter password: Connected. SQL> alter system set global_names=true; System altered. SQL> alter system set streams_pool_size = 100m; System altered. Target Database: DB2 SQL> conn sys@db2 as sysdba Enter password: Connected. SQL> alter system set global_names=true; System altered. SQL> alter system set streams_pool_size = 100m; System altered. 4. Create Database Link Target Database: DB1 SQL> conn strmadmin/strmadmin@db1 Connected.

SQL> create database link db2 connect to strmadmin identified by strmadmin using 'DB2'; Database link created. Source Database: DB2 SQL> conn strmadmin/strmadmin@db2 Connected. SQL> create database link db1 connect to strmadmin identified by strmadmin using 'DB1'; Database link created. 5. Setup Source and Destination queues Source Database: DB1 SQL> conn strmadmin/strmadmin@db1 Connected. SQL> EXEC DBMS_STREAMS_ADM.SET_UP_QUEUE(); PL/SQL procedure successfully completed. Target Database: DB2 SQL> conn strmadmin/strmadmin@db2 Connected. SQL> EXEC DBMS_STREAMS_ADM.SET_UP_QUEUE(); PL/SQL procedure successfully completed. 6. Setup Schema for streams Schema: SCOTT Table: Taj NOTE: Unlock scott schema because in 10g scott schema is locked by default Source Database: DB1 SQL> conn sys@db1 as sysdba Enter password: Connected. SQL> alter user scott account unlock identified by tiger; User altered. Target Database: DB2 SQL> conn sys@db2 as sysdba

Enter password: Connected. SQL> alter user scott account unlock identified by tiger; User altered. 7. Setup Supplemental logging at the source database Source Database: DB1 SQL> conn sys@db1 as sysdba
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

8. Configure capture process at the source database Source Database: DB1 SQL> conn strmadmin/strmadmin@db1 Connected. SQL> begin dbms_streams_adm.add_schema_rules ( schema_name => 'scott', streams_type => 'capture', streams_name => 'capture_stream', queue_name=> 'strmadmin.streams_queue', include_dml => true, include_ddl => true ); end; / PL/SQL procedure successfully completed. 9. Configure the propagation process Source Database: DB1 SQL> conn strmadmin/strmadmin@db1 Connected. SQL> begin dbms_streams_adm.add_SCHEMA_propagation_rules ( schema_name => 'scott', streams_name => 'DB1_TO_DB2', source_queue_name => 'strmadmin.streams_queue', destination_queue_name => 'strmadmin.streams_queue@DB2', include_dml => true, include_ddl => true, source_database => 'DB1' ); end; /

PL/SQL procedure successfully completed. 10. Set the instantiation system change number (SCN) Source Database: DB1 SQL> conn strmadmin/strmadmin@db1 Connected. SQL> declare source_scn number; begin source_scn := dbms_flashback.get_system_change_number(); dbms_apply_adm.set_schema_instantiation_scn@DB2 ( source_schema_name => 'scott', source_database_name => 'DB1', instantiation_scn => source_scn); end; /

PL/SQL procedure successfully completed. 11. Configure the apply process at the destination database Target Database: DB2 SQL> conn strmadmin/strmadmin@db2 Connected. SQL> begin dbms_streams_adm.add_SCHEMA_rules ( schema_name => 'scott', streams_type => 'apply', streams_name => 'apply_stream', queue_name => 'strmadmin.streams_queue', include_dml => true, include_ddl => true, source_database => 'DB1' ); end; / PL/SQL procedure successfully completed. 12. Start the capture and apply processes Source Database: DB1 SQL> conn strmadmin/strmadmin@db1 Connected.

SQL> begin dbms_capture_adm.start_capture ( capture_name => 'capture_stream'); end; / PL/SQL procedure successfully completed. Target Database: DB2 SQL> conn strmadmin/strmadmin@db2 Connected. SQL> begin dbms_apply_adm.set_parameter ( apply_name => 'apply_stream', parameter => 'disable_on_error', value => 'n'); end; / PL/SQL procedure successfully completed. SQL> begin dbms_apply_adm.start_apply ( apply_name => 'apply_stream'); end; / PL/SQL procedure successfully completed. NOTE: Stream replication environment is ready, just needed to test it. SQL> conn scott/tiger@db1 Connected. SQL> create table test (sno number(5)); Table created. SQL> --DML operation SQL> begin SQL> insert into test values(2000); 1 row created. commit;

SQL> conn scott/tiger@db2 Connected. SQL> select * from test;

SNO ---------2000

S-ar putea să vă placă și