سلام به همه دوستان


همین طور که میدونید ‌ما در Cluster اوراکل جندین نوع IP‌داریم اولین IP‌های که ما کار میکنیم برای اتصال به OS از طریق putty با استفاده از Public  IP‌ها هستن که این نوع IP‌های در اختیار و کنترل OS می  باشند

Virtual IP  یا به عبارتی VIP‌این  IP  ادرس ها در رنج public‌IP‌ ما هستند و تحت کنترل Oracle Cluster  هستن یه عبارتی زمنی که cluster ware  ما start می شه این Ip های روی کارت شبکه ما ایحاد میشن و زمانی که stop‌شد این Ip‌ها وجود خارجی نخواهند داشت خب مثلا ما وقتی cluster‌نود یک رو stop‌میکنیم این VIP به علت اینکه اورکل میخواهد application‌متوجه قطعی نود یک نگردد این IP‌را در نود دو بالا می اورد به عبارت بهتر روی کارت شبکه نود دو set  میکند.

در oracle 10g بیشتر مورد استفاده بود.


scanIP: در اواکل 11g معرفی گردید به عبارتی مانند VIP‌هست یعنی در رنج PUBLIC‌ IP هست و این دو نکته رو در نظر داشته باشید که وقتی به VIP‌وصل میشید یعنی به node  وصل شدید و وقتی با scan‌کار میکنید یعنی به cluster وصل شدید(این رو هم یادتون باشه که اگه کلاستر ۱۰ نود هم داشته باشید تنها ۳ تا IP Scan  نیاز دارید) این concept رو یادتون باشه .اوراکل با استفاده از internal algoritm های خودمتوحه میشه که هر نورد کلاستر وضعیت Load اون نود در چه وضعیتی هست . اوراکل تاکید داره که باید Ip scan‌های در DNS قرار داده باشه .فرض کنید که scan 1 , scan2 روی نود ۱  هستن و scan 3 روی نود ۲ خب شما برای اتصال نام scan رو توی connection string خودتون میزارید.خب وقتی درخواست IP‌میکنه DNS یک IP‌به شما میده حالا فرض کنید که scan 2 رو داد که گفته بودیم روی نود ۱ در حال سرویس دهی هست. خب وقتی به این scan‌وصل شدید scan listener  اوارکل چک میکنه که load کدوم نود کمتره و re-direct  می کنه به -vip - local listener‌ نودی که load کمتری داره.

برای این کار باید پارامتر remote_listener شما با مقدار scan name شما پر شده باشه

SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_listener string rac-scan:1521
خب در اینجا IP‌های scan‌من برابر مقدار زیر هستن
[oracle@atm01 ~]$ cat /etc/hosts
#SCAN (Single Client Access Name) create new host in dns server for rac-scan
10.0.1.130 rac-scan.oracle.net rac-scan
10.0.1.132 rac-scan.oracle.net rac-scan
10.0.1.131 rac-scan.oracle.net rac-scan

گاهی در سازمان ها اعلام میشه که IP‌های سرور رو عوض کنند من در این مقاله قصد عوض کردن IP‌های scan‌رو دارم 

 IP های قدیمی 10.0.1.130,10.0.1.131,10.0.1.132

ّIP های جدید:10.0.1.150,10.0.1.151,10.0.1.152

در اولین مرحله باید DNS‌خودمون رو تغییر بدیم به مقدار IP‌های جدید و سپس nslookup بگیریم تا مطمعن بشیم که سرور DNS‌ما resolve میکنه به IP‌های جدید.

[oracle@atm01 ~]$ nslookup rac-scan.oracle.net
Server: dns1.oracle.net
Address: 10.0.1.70#53
Address: 10.0.1.150
Name: rac-scan.oracle.net
Name: rac-scan.oracle.net
Address: 10.0.1.152
Address: 10.0.1.151
Name: rac-scan.oracle.net

خب حالا وضعیت فعلی رو چک میکنیم به صورت زیر

[root@atm01 ~]# srvctl config scan
SCAN name: rac-scan, Network: 1
Subnet IPv4: 10.0.1.0/255.255.255.0/ens33, static
Subnet IPv6:
SCAN 1 IPv4 VIP: 10.0.1.130
SCAN VIP is enabled.
SCAN VIP is individually disabled on nodes:
SCAN VIP is individually enabled on nodes:
SCAN 2 IPv4 VIP: 10.0.1.131
SCAN 3 IPv4 VIP: 10.0.1.132
SCAN VIP is enabled.
SCAN VIP is individually enabled on nodes:
SCAN VIP is individually disabled on nodes:
SCAN VIP is enabled.
SCAN VIP is individually disabled on nodes:
SCAN VIP is individually enabled on nodes:
خب حالا برای شروع کار باید resource های scan listener و scan رو ابتدا stop کنیم خب باید یادمون باشه که application رو حتما stop کنیم
[root@atm01 ~]# srvctl stop scan_listener

و سپس scan‌رو میاریم پایین

[root@atm01 ~]# srvctl stop scan
خب حالا با هم بررسی میکنیم وضعیت  scan ها و همجنین scan_listener‌ها رو 
[root@atm01 ~]# srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan2 is enabled
SCAN VIP scan1 is not running
SCAN VIP scan3 is not running
SCAN VIP scan2 is not running
SCAN VIP scan3 is enabled

[root@atm01 ~]# srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN1 is not running
SCAN listener LISTENER_SCAN3 is not running
SCAN listener LISTENER_SCAN2 is not running
SCAN Listener LISTENER_SCAN3 is enabled

خب حالا تغییراتی که داردیم رو با option  modify در cluster خودمون رجیستر میکنیم در مقابل -n ما باید scan name رو قرار بدیم که scan name من rac-scan می باشد
[root@atm01 ~]# srvctl modify scan -n rac-scan
حالا اگه ما config بگیریم scan رو به ما IP‌های جدید رو نمایش میده 

[root@atm01 ~]# srvctl modify scan -n rac-scan
[root@atm01 ~]# srvctl config scan
Subnet IPv4: 10.0.1.0/255.255.255.0/ens33, static
SCAN name: rac-scan, Network: 1
Subnet IPv6:
SCAN VIP is individually enabled on nodes:
SCAN 1 IPv4 VIP: 10.0.1.150
SCAN VIP is enabled.
SCAN VIP is enabled.
SCAN VIP is individually disabled on nodes:
SCAN 2 IPv4 VIP: 10.0.1.151
SCAN 3 IPv4 VIP: 10.0.1.152
SCAN VIP is individually enabled on nodes:
SCAN VIP is individually disabled on nodes:
SCAN VIP is enabled.
SCAN VIP is individually disabled on nodes:
SCAN VIP is individually enabled on nodes:


‌خب حالا ما resource scan رو start‌میکنیم

[root@atm01 ~]# srvctl  start scan
وسپس scan_listener‌رو 

[root@atm01 ~]# srvctl  start scan_listener
حالا چون ip ها تغییر کرده باید حتما ما scan_listener رو هم به روز رسانی کنیم
[root@atm01 ~]# srvctl modify scan_listener -u
وضعیت این resource‌ها رو با هم ببینیم
[root@atm01 ~]# srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node atm01
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node atm01
[root@atm01 ~]# srvctl status scan
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node atm02
SCAN VIP scan1 is enabled
SCAN VIP scan3 is running on node atm02
SCAN VIP scan1 is running on node atm01
SCAN VIP scan2 is enabled
SCAN VIP scan3 is enabled
SCAN VIP scan2 is running on node atm01

خب تغییر IP‌انجام شد و  application رو میتونیم start‌کنیم

در اینجا ما subnet‌رو تغییر ندادیم در مقاله بعدی subnet ها رو هم در cluster تغییر میدیم

موفق باشید