FOR SOURCE DATABASE : gcoop :
โดยในที่นี้จะทำการ Sync ที่ SCHEMA IFSCT
Step 1 : เพิ่มเติมในส่วนของ File C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\TNSNAMES.ORA
เพื่อให้สามารถเข้าถึง Services ของ Oracle ได้ ดังนี้
gcoop =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.235)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =gcoop )
)
)
gcoopdr =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = gcoopdr)
)
)
Step 2 : เปิด CMD แล้วพิมพ์คำสั่ง เพื่อกำหนดให้ Database เก็บ archivelog ก่อน ดังนี้
set oracle_sid=gcoop
sqlplus sys/admin as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog ;
SQL> alter database open;
Step 3 : สร้าง User STREAM เพื่อทำหน้าที่ Sync Data ระหว่าง 2 Database ดังนี้
SQL> conn sys/admin@gcoop as sysdba
SQL> create tablespace STREAM
datafile 'C:\app\Administrator\oradata\gcoop\stream01.dbf' size 25m
autoextend on;
SQL> create user STRMADMIN
identified by strmadmin;
SQL> grant DBA to strmadmin;
SQL> begin
dbms_streams_auth.grant_admin_privilege (
grantee =>'strmadmin',
grant_privileges => TRUE);
end;
/
Step 4 : สร้าง Database Link ที่ชี้ไปยัง Database ที่ต้องการ Sync ดังนี้
SQL> conn strmadmin/strmadmin@gcoop
SQL> create database link gcoopdr
connect to strmadmin
identified by strmadmin
using 'gcoopdr';
Step 5 : กำหนดค่าฐานข้อมูลให้ทำการเก็บ Log การเปลี่ยนแปลงด้วย
SQL> alter system set global_names=true scope=both;
กรณีที่ 1 ต้องการทำทั้ง Database
SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA ;
กรณีที่ 2 ต้องการทำบาง Table เท่านั้น
ให้ Drop กรณีที่ 1 ออกก่อน
SQL>ALTER DATABASE DROP SUPPLEMENTAL LOG DATA ;
แล้ว Add TABLE ที่ ต้องการทำ ตามลำดับ ในที่นี้ เช่น Schema = ifsct และ Table = mbmembmaster
SQL>alter table ifsct.mbmembmaster add supplemental log data (all) columns;
Step 6 : สร้าง Directory สำหรับเก็บ Sync Transaction Data
mkdir C:\app\Administrator\oradata\gcoop\gcoop
sqlplus sys/admin as sysdba
SQL> conn strmadmin/strmadmin@gcoop
SQL> create directory dir_gcoop as 'C:\app\Administrator\oradata\gcoop\gcoop';
Step 7 : เพิ่มเติมในส่วนของ File C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\TNSNAMES.ORA
เพื่อให้สามารถเข้าถึง Services ของ Oracle ได้ ดังนี้
gcoop =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.235)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =gcoop )
)
)
gcoopdr =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = gcoopdr)
)
)
Step 8 : เปิด CMD แล้วพิมพ์คำสั่ง เพื่อกำหนดให้ Database เก็บ archivelog ก่อน ดังนี้
set oracle_sid=gcoopdr
sqlplus sys/admin as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog ;
SQL> alter database open;
Step 9 : สร้าง User STREAM เพื่อทำหน้าที่ Sync Data ระหว่าง 2 Database ดังนี้
SQL> conn sys/admin@gcoopdr as sysdba
SQL> create tablespace STREAM
datafile 'C:\app\Administrator\oradata\gcoopdr\stream01.dbf' size 25m
autoextend on;
SQL> create user STRMADMIN
identified by strmadmin;
SQL> grant DBA to strmadmin;
SQL> begin
dbms_streams_auth.grant_admin_privilege (
grantee =>'strmadmin',
grant_privileges => TRUE);
end;
/
Step 10 : สร้าง Database Link ที่ชี้ไปยัง Database ที่ต้องการ Sync ดังนี้
SQL> conn strmadmin/strmadmin@gcoopdr
SQL> create database link gcoop
connect to strmadmin
identified by strmadmin
using 'gcoop';
Step 11 : กำหนดค่าฐานข้อมูลให้ทำการเก็บ Log การเปลี่ยนแปลงด้วย
SQL> alter system set global_names=true scope=both;
กรณีที่ 1 ต้องการทำทั้ง Database
SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA ;
กรณีที่ 2 ต้องการทำบาง Table เท่านั้น
ให้ Drop กรณีที่ 1 ออกก่อน
SQL>ALTER DATABASE DROP SUPPLEMENTAL LOG DATA ;
แล้ว Add TABLE ที่ ต้องการทำ ตามลำดับ ในที่นี้ เช่น Schema = ifsct และ Table = mbmembmaster
SQL>alter table ifsct.mbmembmaster add supplemental log data (all) columns;
Step 12 : สร้าง Directory สำหรับเก็บ Sync Transaction Data
mkdir C:\app\Administrator\oradata\gcoopdr\gcoopdr
sqlplus sys/admin as sysdba
SQL> conn strmadmin/strmadmin@gcoopdr
SQL> create directory dir_gcoopdr as 'C:\app\Administrator\oradata\gcoopdr\gcoopdr';
Step 13 : ทำที่เครื่อง gcoop สร้าง Stream script โดยการ RUN PL/SQL
สำหรับตัวแปร
include_ddl =TRUE แสดงว่าให้แก้ไข Structure ด้วย
perform_actions =TRUE ให้ทำการ Sync ตรงเข้า ฐานข้อมูลทันที , FALSE = จะสร้างเป็น Script เก็บไว้ที่ Directory ที่สร้างไว้ใน Steps 6 และ 12
bi_directional = TRUE เป็นแบบ two-way sync , FALSE = one-way sync จาก source ไปยัง destination.
จะเห็นว่า หลังจาก Run สำเร็จจะมี File เกิดขึ้นที่ Directory ที่ สร้างใน Step 6 ที่ Server gcoop
จะเห็นว่า หลังจาก Run สำเร็จจะมี File เกิดขึ้นที่ Directory ที่ สร้างใน Step 12 ที่ Server gcoopdr
กรณีต้องการยกเลิกการ Sync ให้ Run คำสั่ง
sqlplus sys/admin@gcoop as sysdba
SQL>exec dbms_streams_adm.remove_streams_configuration;
หรือ กรณีต้องการแก้ไข สามารถ Run Step 13 ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น