ITPub博客

首页 > 数据库 > Oracle > stream step-by-step

stream step-by-step

原创 Oracle 作者:netbanker 时间:2007-09-15 09:42:34 0 删除 编辑
no time to read the manual but want to taste how stream works. here is what you can go through in 30min.[@more@]

stream step-by-step

1. prerequisite on both databases:

stzhao:pts/6:sambar:hdvl > sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Fri Sep 14 16:52:40 2007

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL> show parameter global_names

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
global_names boolean FALSE
SQL> alter system set global_names=true;

System altered.

SQL> alter system set job_queue_processes=10;

System altered.


SQL> show parameter compatible

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 10.2.0.1.0
SQL> show parameter stream_pool_size


SQL> alter system set streams_pool_size=30m;

System altered.


SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/home/oracle/admin/hdvl/arch/arch_hdvl
Oldest online log sequence 235
Next log sequence to archive 238
Current log sequence 238

2. setup user and queue, link:


SQL> GRANT DBA TO strmadmin IDENTIFIED BY strmadminpw;

Grant succeeded.

SQL> ALTER USER strmadmin DEFAULT TABLESPACE sysaux
quota unlimited on sysaux;

User altered.


SQL> conn strmadmin/strmadminpw
Connected.
SQL> exec dbms_streams_adm.set_up_queue();

PL/SQL procedure successfully completed.

SQL> create database link htst connect to strmadmin
2 identified by strmadminpw using 'htst';

Database link created.


testing schema:

connected

SQL>
SQL> create table test_stream ( a number, b varchar2(200));

Table created.

SQL> insert into test_stream values (1,'stzhao');
SQL> insert into test_stream values (2,'stzhao');

1 row created.

SQL> commit;

Commit complete.

SQL> grant all on stzhao.test_stream to strmadmin;

Grant succeeded.

on target db:

SQL> GRANT DBA TO strmadmin IDENTIFIED BY strmadminpw;

Grant succeeded.

SQL> ALTER USER strmadmin DEFAULT TABLESPACE sysaux
quota unlimited on sysaux; 2

User altered.


SQL> conn strmadmin/strmadminpw
Connected.
SQL> exec dbms_streams_adm.set_up_queue();

PL/SQL procedure successfully completed.

Configure Propagation at source database

SQL> conn strmadmin/strmadminpw
Connected.

SQL> BEGIN
2 DBMS_STREAMS_ADM.ADD_TABLE_PROPAGATION_RULES(
3 table_name => 'stzhao.test_stream',
4 streams_name => 'hdvl_to_htst',
source_queue_name => 'strmadmin.streams_queue',
5 6 destination_queue_name => 'strmadmin.streams_queue@htst',
7 include_dml => true,
8 include_ddl => true,
9 source_database => 'hdvl',
10 inclusion_rule => true,
11 queue_to_queue => true);
12 END;
13 /

PL/SQL procedure successfully completed.


Configure the Capture Process at source database

BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES(
table_name => 'stzhao.test_stream',
streams_type => 'capture',
streams_name => 'capture_simp',
queue_name => 'strmadmin.streams_queue',
include_dml => true,
include_ddl => true,
inclusion_rule => true);
END;
/

Set the Instantiation SCN at target database

SQL> DECLARE
2 iscn NUMBER; -- Variable to hold instantiation SCN value
3 BEGIN
4 iscn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();
5 DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN@htst(
6 source_object_name => 'stzhao.test_stream',
7 source_database_name => 'hdvl',
instantiation_scn => iscn);
8 9 END;
10 /

PL/SQL procedure successfully completed.


Configure the Apply Process at target database


SQL> BEGIN
2 DBMS_STREAMS_ADM.ADD_TABLE_RULES(
3 table_name => 'stzhao.test_stream',
4 streams_type => 'apply',
5 streams_name => 'apply_simp',
queue_name => 'strmadmin.streams_queue',
include_dml => true,
include_ddl => true,
source_database => 'hdvl',
6 7 8 9 10 inclusion_rule => true);
END;
11 12 /

PL/SQL procedure successfully completed.


Start the Apply Process at target database

SQL> BEGIN
DBMS_APPLY_ADM.SET_PARAMETER(
apply_name => 'apply_simp',
parameter => 'disable_on_error',
value => 'n');
END;
/ 2 3 4 5 6 7

PL/SQL procedure successfully completed.

SQL> BEGIN
DBMS_APPLY_ADM.START_APPLY(
apply_name => 'apply_simp');
END;
/
2 3 4 5

PL/SQL procedure successfully completed.


Start the Capture Process at source database


SQL> BEGIN
DBMS_CAPTURE_ADM.START_CAPTURE(
capture_name => 'capture_simp');
END;
/ 2 3 4 5

PL/SQL procedure successfully completed.


start verfiy process


source:

SQL> conn stzhao/stzhao
Connected.
SQL> insert into test_stream values ( 2, 'heqing');

1 row created.

SQL> commit;

target:


SQL> /

A B
---------- ----------
2 stzhao
2 heqing

around 5min needed

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/67/viewspace-969506/,如需转载,请注明出处,否则将追究法律责任。

下一篇: appworx nutshell:
请登录后发表评论 登录
全部评论

注册时间:2008-06-12

  • 博文量
    20
  • 访问量
    90067