﻿
conn sys/admin as sysdba

--Step 1 : Clean up DB
purge dba_recyclebin;

--Step 2 : เปิด CMD  แล้วพิมพ์คำสั่ง เพื่อกำหนดให้ Database เก็บ archivelog ก่อน ดังนี้ 
shutdown immediate
startup mount
alter database archivelog ;
alter database open;
alter system set streams_pool_size = 1024m;

--Step 3 : สร้าง User STREAM เพื่อทำหน้าที่ Sync Data ระหว่าง 2 Database ดังนี้
conn sys/admin@orcltest as sysdba
create tablespace STREAM datafile 'C:\app\Administrator\oradata\orcltest\stream01.dbf' size 1024m autoextend on;
create user STRMADMIN identified by strmadmin;
grant connect, resource, dba to strmadmin;
grant select_catalog_role, select any dictionary to strmadmin;
begin
 dbms_streams_auth.grant_admin_privilege (
 grantee =>'strmadmin',
 grant_privileges => TRUE);
 end;
/

--Step 4 : สร้าง Database Link ที่ชี้ไปยัง Database ที่ต้องการ Sync ดังนี้
conn strmadmin/strmadmin@orcltest
create database link iorcl connect to strmadmin identified by strmadmin using 'iorcl';

--Step 5 : กำหนดค่าฐานข้อมูลให้ทำการเก็บ Log การเปลี่ยนแปลงด้วย   
alter system set global_names=false scope=both;
--กรณีที่ 1 ต้องการทำทั้ง Database 
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA ;
--กรณีที่ 2 ต้องการทำบาง Table เท่านั้น ให้ Drop กรณีที่ 1 ออกก่อน
--ALTER DATABASE DROP SUPPLEMENTAL LOG DATA ;
--แล้ว Add TABLE ที่ ต้องการทำ ตามลำดับ ในที่นี้ เช่น Schema = iscogsb และ Table = mbmembmaster
--alter table ifsct.mbmembmaster add supplemental log data (all) columns;

--Step 6 : สร้าง Directory สำหรับเก็บ Sync Transaction Data  
create directory dir_stream02 as 'C:\app\Administrator\oradata\stream';
