วันจันทร์ที่ 24 สิงหาคม พ.ศ. 2558

How to change public ip , vip , scan

เปลี่ยน Public IP ก่อน
1. ปิด database และ nodeapps
srvctl stop database -d dbname
srvctl stop nodeapps -n node1
srvctl stop nodeapps -n node2

2. เปลี่ยน Public Interface
oifcfg getif
eth0  192.168.16.0  global  cluster_interconnect,asm
eth1  172.16.4.0  global  public
oifcfg delif -global eth1
oifcfg setif -global eth1/172.16.21.0:public

เช็คอีกที
oifcfg getif
eth0  192.168.16.0  global  cluster_interconnect,asm
eth1  172.16.21.0  global  public

* แก้อีก node นึงด้วย

3. แก้ไข VIP Interface
srvctl modify nodeapps -n node1 -A 172.16.21.107/255.255.255.0/eth1
srvctl modify nodeapps -n node2 -A 172.16.21.108/255.255.255.0/eth1

* ถ้าแก้ไม่ได้ให้แก้ network ก่อนเพราะอาจใช้ subnet คนละวง

4. Stop CRS ทั้ง 2 nodes
crsctl stop crs

5. แก้ไข IP Address ที่ OS (/etc/hosts ด้วยก็ได้)
vi /etc/sysconfig/network-scripts/ifcfg-eth1

6. Reboot all nodes
7. หลังจาก reboot แล้ว database ควรจะ start ขึ้นมาได้ปกติ เราสามารถใช้คำสั่งเช็คได้เช่น
crsctl stat res -t
srvctl status database -d dbname
srvctl status listener

8. แก้ไข scan
srvctl stop scan
srvctl stop scan_listener
srvctl modify scan
srvctl start scan
srvctl start scan_listener

* มันจะปรับค่าให้โดยอ่านจาก VIP ให้เอง

เราสามารถเช็คค่าใหม่ได้ด้วย
srvctl config scan



วันอังคารที่ 11 สิงหาคม พ.ศ. 2558

วิธีสร้าง TAF session failover แบบ SELECT โดยใช้ server side service

สมมุติว่าเราพึ่งสร้าง 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 ธรรมดามันจะย้ายไปให้เลย