สมมุติว่าเราพึ่งสร้าง RAC database ขึ้นมาใหม่และเราอยากให้ขณะ SELECT อยู่แล้วหาก Current instance หลุดไป Session ของเราจะไป SELECT ต่อที่อีก Instance นึงเราต้องสร้าง Service ขึ้นมาเป็นแบบ SELECT type
ตัวอย่าง
1. สร้าง service ขึ้นมา 1 ตัวชื่อ TAF เป็นแบบ SELECT type
srvctl add service -d cubprod -s TAF -r "cubprod1,cubprod2" -e SELECT -m BASIC -P BASIC -z 5 -w 10
2. ตรวจสอบ config service ของเรา
srvctl config service -d cubprod -s TAF
Service name: TAF
Service is enabled
Server pool: cubprod_TAF
Cardinality: 2
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 5
TAF failover delay: 10
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: cubprod1,cubprod2
Available instances:
3. Start the service
srvctl start service -d cubprod -s TAF
4. ลองเช็คด้วย lsnrctl status จะมี TAF service ขึ้นมาทั้ง 2 node
5. ทดลองใช้งานโดยเข้า Service TAF แล้วขณะ SELECT อยู่ให้ลอง kill -9 pmon ของ current instance ดูจะพบว่า Session ได้ถูกย้ายไปอีก Instance นึงโดยอัตโนมัติ
สามารถเช็คได้ด้วย Query
select host_name,instance_name from v$instance;
ปล. ถ้าเป็น SYS user จะขึ้น ORA-03113: end-of-file on communication channel ทีนึงก่อนแล้วมันจะไป connect ใหม่ให้ แต่ถ้าเป็น user ธรรมดามันจะย้ายไปให้เลย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น