Oracle RAC修改網路配置知識點彙總

dapolan發表於2022-03-08

本文參考:

1
2
3
4
How to Modify Public Network Information including VIP  in  Oracle Clusterware (文件 ID 276434.1)
How to Modify Private Network Information  in  Oracle Clusterware (文件 ID 283684.1)
How to Modify SCAN Setting or SCAN Listener Port after Installation (文件 ID 972500.1)
How to Update the IP Address of the SCAN VIP Resources (ora.scan{n}.vip) (文件 ID 952903.1)

1
2
3
4
5
6
7
8
9
10
場景一:修改public公共網路卡對應主機名
場景二:僅更改public公共IP或VIP(而不更改介面、子網或網路掩碼,或僅更改MAC地址而不更改任何其他內容)
場景三:更改public公共網路網路卡、子網或網路掩碼
場景四:更改VIP IP或 hostname
場景五:更改SCAN VIP配置及埠
場景六:修改私有網路卡主機名
場景七:僅更改私有IP(而不更改網路介面、子網和網路掩碼或者只更改專用IP MAC地址而不更改其他任何內容)
場景八:僅更改私有網路MTU
場景九:更改私有網路介面名稱、子網或網路掩碼
場景十:使用HAIP為11gR2及以上版本新增或刪除cluster_interconnect

場景一:修改公共網路卡對應主機名

公共主機名記錄在OCR中,在安裝階段輸入,安裝後很難對其進行修改。

修改公共主機名方法如下:

方法1:刪除節點,然後使用新主機名重新新增節點,或者重新安裝clusterware,或者按照克隆過程重新配置clusterware。

方法2:重新執行CRS的配置檔案rootconfig,重新格式化OCR和Voting disk,然後重新建立CRS的資源。

方法2來自:https://blog.csdn.net/xujinyang/article/details/6833717

(1)關閉crs

crsctl stop crs

(2)修改主機名

hostnamectl set-hostname <newname> 

(3)修改/etc/hosts和/etc/sysconfig/network等配置

(4)修改$ORA_CRS_HOME/install/rootconfig配置檔案

當我們安裝完Clusterware的時候,需要執行root.sh 指令碼,該指令碼就會呼叫$ORA_CRS_HOME/install/rootconfig。 

當我們修改了hostname時,也必須修改這個指令碼。 

(5)清空OCR 和 Voting Disks

dd if=/dev/zero of=/dev/raw/raw1 bs=1M count=200 ---危險操作,謹慎執行

(6)刪除配置資訊

rootconfig 指令碼會檢查Clusterware 是否已經配置,如果已經配置,就不會執行,所以在執行rootconfig之前,我們要寫刪除這個配置資訊。

在Linux 下,刪除檔案:/etc/oracle/ocr.loc,/etc/oracle/ocr.loc,

Unix下位置不一樣,HP-Unix 是:/var/opt/oracle/ocr.log

(7)執行 $ORA_CRS_HOME/install/rootconfig

用root 使用者分別在2個節點執行,一個節點一個節點順序執行,不要同時執行,在最後一個節點執行時,會配置VIPs。 

(8)驗證Clusterware

[root@rac1 bin]# ./crs_stat -t

(9)新增Listener Resource到CRS

呼叫netca命令,會把監聽的資訊註冊到OCR中。

(10)檢查修改listener.ora 和 tnsnames.ora 檔案

(11)新增其他資源到OCR

ASM

語法:srvctl add asm -n <node_name> -i <asm_instance_name> -o <oracle_home>

[oracle@racdb1 bin]$ srvctl add asm -n racdb1 -i ASM1 -o /u01/app/oracle/product/10.2.0/db_1

[oracle@racdb1 bin]$ srvctl add asm -n racdb2 -i ASM2 -o /u01/app/oracle/product/10.2.0/db_1


DATABASE

語法:srvctl add database -d <db_unique_name> -o <oracle_home>

[oracle@racdb1 bin]$ srvctl add database -d orcl -o /u01/app/oracle/product/10.2.0/db_1


INSTANCE

語法:srvctl add instance -d <db_unique_name> -i <instance_name> -n <node_name>

[oracle@racdb1 bin]$ srvctl add instance -d orcl -i orcl1 -n racdb1

[oracle@racdb1 bin]$ srvctl add instance -d orcl -i orcl2 -n racdb2


SERVICE

語法:srvctl add service -d <db_unique_name> -s <service_name> -r <preferred_list> -P <TAF_policy>

       -r preferred_list 是首先使用的例項的列表,還可是用-a 表示備用例項

       TAF_policy可設定為NONE,BASIC,PRECONNECT

[oracle@racdb1 bin]$ srvctl add service -d orcl -s oltp -r orcl1,orcl2 -P BASIC


場景二:僅更改公共IP或VIP(而不更改網路卡名、子網或網路掩碼,或僅更改MAC地址而不更改任何其他內容)

如果更改僅為公共IP或VIP地址,且新地址仍在同一子網、同一介面中,或者如果更改僅為公共IP MAC地址、IP/介面/子網/網路掩碼均保持不變,則無需在clusterware層執行任何操作,所有更改都需要在OS層執行以反映更改。

1.停止CRS

crsctl stop crs

2.修改網路層的IP地址、DNS和/etc/hosts檔案以反映更改或修改網路層的MAC地址

3.啟動CRS

crsctl start crs


注意:上述更改可以滾動方式完成,例如:一次一個節點順序執行。


場景三:更改公共網路網路卡、子網或網路掩碼


如果更改涉及不同的子網(網路掩碼)或介面,請從OCR中刪除現有介面資訊,並使用正確的資訊重新新增。

在此示例中,透過兩個單獨的命令將子網從10.2.156.0更改為10.2.166.0,首先執行"delif",然後執行"setif":

% $CRS_HOME/bin/oifcfg/oifcfg delif -global <if_name>[/<subnet>]

% $CRS_HOME/bin/oifcfg/oifcfg setif -global <if_name>/<subnet>:public


For example:

1.刪除介面資訊

% $CRS_HOME/bin/oifcfg delif -global eth0/10.X.156.0

2.新增介面ixnx

% $CRS_HOME/bin/oifcfg setif -global eth0/10.X.166.0:public

3.在作業系統層進行更改。

注意: 

(1)除非作業系統更改需要重新啟動節點,否則不需要重新啟動Oracle clusterware。

(2)這可以透過滾動方式完成。

(3)對於11gR2,上述命令要求clusterware在所有節點上執行,否則將報告PRIF-33和PRIF-32,即:

Note: for 11gR2, above command requires clusterware RUNNING on ALL nodes, otherwise PRIF-33 and PRIF-32 will be reported, i.e.

[grid@racnode1 bin]$ ./oifcfg delif -global <if_name>/192.168.1.0

PRIF-33: Failed to set or delete interface because hosts could not be discovered

CRS-02307: No GPnP services on requested remote hosts.

PRIF-32: Error in checking for profile availability for host <nodename>2

CRS-02306: GPnP service on host "<nodename>2" not found.


場景四:更改VIP IP或hostname

修改VIP地址或VIP HOSTNAME

注意:

1.一般來說,只有在10.2.0.3版本之前的版本中才需要完全停機。

2.從10.2.0.3開始,ASM/資料庫例項對VIP資源的依賴關係將被刪除,因此可以在不必關閉ASM/資料庫例項的情況下修改VIP,當VIP關閉時,只有到資料庫的客戶端連線將受到影響。

3.如果修改是特定於節點的,那麼在更改期間,只有與該節點的連線才會受到影響。


收集當前VIP配置

1.收集現有設定

對於10g和11gR1,作為Oracle Clusterware所有者:

$ srvctl config nodeapps -n <nodename> -a


eg:

$ srvctl config nodeapps -n <nodename>1 -a

VIP exists.: /<nodename>1-vip/101.XX.XX.184/255.255.254.0/<if_name>


對於11gR2,作為Oracle Clusterware所有者:

$ srvctl config nodeapps -a


eg:

$ srvctl config nodeapps -a

Network exists: 1/101.17.80.0/255.255.254.0/<if_name>, type static

VIP exists: /racnode1-vip/101.17.XX.184/101.17.80.0/255.255.254.0/<if_name>, hosting node <nodename>1

VIP exists: /racnode2-vip/101.17.XX.186/101.17.80.0/255.255.254.0/<if_name>, hosting node <nodename>2


2.驗證VIP狀態

10.2 and 11.1:

$ crs_stat -t


11.2:

$ crsctl stat res -t

-它應該顯示VIPs線上


$ ifconfig -a

(netstat -in for HP and ipconfig /all for Windows)

-VIP邏輯介面繫結到公共網路介面


停止資源

3.停止nodeapps資源(以及所有從屬資源ASM/DB,僅在需要時):


10g and 11gR1, as Oracle Clusterware owner:


$ srvctl stop instance -d <db_name> -i <inst_name>   (optional for 10.2.0.3+)

$ srvctl stop asm -n <node_name>                     (optional for 10.2.0.3+)

$ srvctl stop nodeapps -n <node_name>


eg,

$ srvctl stop instance -d <DBNAME> -i <INSTANCENAME>

$ srvctl stop asm -n <nodename>1

$ srvctl stop nodeapps -n <nodename>1


11gR2, as Grid Infrastructure owner:


$ srvctl stop instance -d <db_name> -n <node_name>    (optional)

$ srvctl stop vip -n <node_name> -f


eg,

$ srvctl stop instance -d <DBNAME> -n <nodename>1

$ srvctl stop vip -n <nodename>1 -f



注1:11gR2需要-f選項來停止偵聽器資源,否則將發生以下錯誤:

Note 1: The -f option is required for 11gR2 to stop listener resource, otherwise following error will occur:

PRCR-1014 : Failed to stop resource ora.<nodename>1.vip

PRCR-1065 : Failed to stop resource ora.<nodename>1.vip

CRS-2529: Unable to act on 'ora.<nodename>1.vip' because that would require stopping or relocating 'ora.LISTENER.lsnr', but the force option was not specified

...


4.驗證VIP現在處於離線狀態,並且該介面不再繫結到公共網路介面

$ crs_stat -t (or $ crsctl stat res -t for 11gR2)


$ ifconfig -a

(netstat -in for HP and ipconfig /all for windows)


修改VIP及其關聯屬性

5.確定新的VIP IP/子網/網路掩碼或VIP主機名,首先在作業系統上更改網路,

確保新VIP已在DNS中註冊或在/etc/hosts(對於Unix/Linux)和\WINDOWS\System32\drivers\etc\hosts檔案(對於WINDOWS)中修改。

如果網路介面已更改,請確保新介面在伺服器上可用,然後再繼續修改。

For example:

New VIP is: 110.XX.XX.11 <nodename>1-nvip

new subnet is 110.11.70.0

new netmask is 255.255.255.0

new interface is <if_name>


6.以root使用者身份修改VIP資源:

# srvctl modify nodeapps -n <node> -A <new_vip_address or new_vip_hostname>/<netmask>/<[if1[if2...]]>

eg:

# srvctl modify nodeapps -n <nodename>1 -A <nodename>1-nvip/255.255.255.0/<if_name>


注1:從11.2開始,VIP取決於網路資源(ora.net1.network),OCR僅記錄VIP主機名或與VIP資源關聯的IP地址。

網路屬性(子網/網路掩碼/介面)與網路資源一起記錄。 

修改nodeapps資源時,網路資源(ora.net1.network)屬性也會隱式修改。


從11.2.0.2開始,如果只需要更改子網/網路掩碼/介面,則可以透過srvctl modify網路命令直接修改網路資源。

From 11.2.0.2 onwards, if only subnet/netmask/interface change is required, network resource can be modified directly via srvctl modify network command.

as root user:

# srvctl modify network -k <network_number>] [-S <subnet>/<netmask>[/if1[|if2...]]

eg:

# srvctl modify network -k 1 -S 110.XX.XX.0/255.255.255.0/<if_name>


如果其他屬性未更改,則無需修改VIP或SCAN。


注2:對於12.1.0.1版本,由於未釋出的BUG 16608577-無法在ORACLE 12.1中新增第二個公共介面,srvctl modify網路命令失敗,原因是:

# srvctl modify network -k 1 -S 110.XX.XX.0/255.255.255.0/<if_name>

PRCT-1305 : The specified interface name "<if_name>2" does not match the existing network interface name "<if_name>1"


解決方法是使用空介面名稱修改網路資源,然後使用所需的介面名稱再次修改它,例如:

Workaround is to modify network resource with an empty interface name, then modify it again with the desired interface name, eg:

# srvctl modify network -k 1 -S 110.XX.XX.0/255.255.255.0

# srvctl modify network -k 1 -S 110.XX.XX.0/255.255.255.0/<if_name>2

該錯誤已在12.1.0.2及更高版本中修復。

The bug has been fixed in 12.1.0.2 and above.


*11gR2僅修改VIP主機名而不更改IP地址的特殊情況。

* A special case for 11gR2 modifying the VIP hostname only without changing the IP address.


例如:只有VIP主機名從<nodename>1-VIP更改為<nodename>1-nvip,IP和其他屬性保持不變。

For example: only VIP hostname changes from <nodename>1-vip to <nodename>1-nvip, IP and other attributes remain the same.


如果IP地址未更改,上述修改命令將不會更改“crsctl stat res ORA.<nodename>.VIP-p”輸出中的USR_ORA_VIP值。

請使用以下命令:

# crsctl modify res ora.<nodename>.vip -attr USR_ORA_VIP=<nodename>1-nvip


驗證USR_ORA_VIP欄位的更改:

# crsctl stat res ora.<nodename>1.vip -p |grep USR_ORA_VIP


注意:對於Windows平臺,如果中間有空格,則介面名稱需要在引號(")中,例如:

作為管理員使用者或軟體安裝使用者:

> srvctl modify nodeapps -n <nodename> -A 110.XX.XX.11/255.255.255.0/"Local Area Connection 1"


7.驗證更改

$ srvctl config nodeapps -n <node> -a (10g and 11gR1)

$ srvctl config nodeapps -a (11gR2)

eg:

$ srvctl config nodeapps -n <nodename>1 -a

VIP exists.: /<nodename>1-nvip/110.11.70.11/255.255.255.0/<if_name>2


重啟資源

8.啟動nodeapps和其他資源

10g and 11gR1, as Oracle Clusterware owner:


$ srvctl start nodeapps -n <node_name>      

$ srvctl start asm -n <node_name>               (optional for 10.2.0.3+)

$ srvctl start instance -d <dbanme> -i <inst>   (optional for 10.2.0.3+)


eg:

$ srvctl start nodeapps -n <nodename>1

$ srvctl start asm -n <nodename>1

$ srvctl start instance -d <DBNAME> -i <INSTANCENAME>1


11gR2, as Grid Infrastructure owner:


$ srvctl start vip -n <node_name>

$ srvctl start listener -n <node_name>

$ srvctl start instance -d <db_name> -n <node_name>      (optional)


eg,

$ srvctl start vip -n <nodename>1

$ srvctl start listener -n <nodename>1

$ srvctl start instance -d <DBNAME> -n <nodename>1

注意:如果更改了網路屬性,即更改了網路掩碼,請重新啟動nodeapps


9.驗證新VIP是否線上並繫結到公共網路介面

$ crs_stat -t (or $ crsctl stat res -t for 11gR2)


$ ifconfig -a

(netstat -in for HP or ipconfig /all for windows)


10.僅當需要進行類似更改時,才對群集中的rest節點重複相同的步驟。


其他

11.如有必要,修改listener.ora,  tnsnames.ora and LOCAL_LISTENER/REMOTE_LISTENER引數以反映VIP更改。

注意,ASM和DB的LOCAL_LISTENER由Grid Infrastructure自動設定。

LOCAL_LISTENER中的VIP更改應自動生效。

由於Bug 22824602,在某些條件下,ASM例項的LOCAL_LISTENER可能無法反映VIP更改。

解決方法是在受影響的節點上重新啟動Clusterware。


場景五:更改SCAN VIP配置及埠

在Grid Infrastructure 11gR2中,為客戶端連線引入了SCAN和SACN VIP。要修改SCAN VIP,請參閱:

Note 952903.1 How to update the IP address of the SCAN VIP resources (ora.scan<n>.vip)

Note 972500.1 How to Modify SCAN Setting or SCAN Listener Port after Installation


在更改SCAN VIP之前,需要使用新的IP地址更新域名伺服器(DNS)上的scan name條目。

這通常由網路管理員完成。要檢查當前設定,可以使用以下命令:

nslookup <scan_name>


要檢查SCAN VIP的當前IP地址,請以root使用者身份執行以下命令:

$GRID_HOME/bin/srvctl config scan


停止SCAN listeners和SCAN

$GRID_HOME/bin/srvctl stop scan_listener

$GRID_HOME/bin/srvctl stop scan


接下來使用DNS條目中的新IP地址重新整理SCAN VIP:

$GRID_HOME/bin/srvctl modify scan -n <scan_name>


要檢查SCAN VIP是否已更改,請執行以下命令,它現在應顯示新的IP地址。

$GRID_HOME/bin/srvctl config scan

重新啟動SCAN和SCAN listener

$GRID_HOME/bin/srvctl start scan

$GRID_HOME/bin/srvctl start scan_listener

 

如果SCAN VIPs的數量已更改,則需要更新SCAN listener:

$GRID_HOME/bin/srvctl modify scan_listener -u


下面是使用以下配置的示例:

1.SCAN的名稱為sales-SCAN.example.com

2.公網子網為10.XXX.XXX.0

3.公網子網掩碼為255.XXX.XXX.0

4.public介面名稱為eth1

5.舊IP addresses: 10.XXX.XXX.81, 10.XXX.XXX.82 & 10.XXX.XXX.83

6.新IP addresses: 10.XXX.XXX.121, 10.XXX.XXX.122 & 10.XXX.XXX.123


停止和啟動SCAN VIPs/listeners可以由grid使用者完成,但是"srvctl modify SCAN"命令必須由root使用者執行,因此作為root使用者執行所有步驟是可行的。


DNS伺服器上的SCAN查詢顯示條目已使用新IP地址更新:

$ nslookup sales-scan.example.com 

Server:         dns1.example.com

Address:        10.XXX.XXX.70#53


Name:   sales-scan.example.com

Address: 10.XXX.XXX.123

Name:   sales-scan.example.com

Address: 10.XXX.XXX.122

Name:   sales-scan.example.com

Address: 10.XXX.XXX.121


停止SCAN listener 和 the SCAN VIP 資源:

# $GRID_HOME/bin/srvctl stop scan_listener

# $GRID_HOME/bin/srvctl stop scan

# $GRID_HOME/bin/srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is not running

SCAN VIP scan2 is enabled

SCAN VIP scan2 is not running

SCAN VIP scan3 is enabled

SCAN VIP scan3 is not running

# $GRID_HOME/bin/srvctl status scan_listener

SCAN Listener LISTENER_SCAN1 is enabled

SCAN listener LISTENER_SCAN1 is not running

SCAN Listener LISTENER_SCAN2 is enabled

SCAN listener LISTENER_SCAN2 is not running

SCAN Listener LISTENER_SCAN3 is enabled

SCAN listener LISTENER_SCAN3 is not running


SCAN VIP resources仍然顯示舊的地址

# $GRID_HOME/bin/srvctl config scan

SCAN name: sales-scan, Network: 1/10.XXX.XXX.0/255.XXX.XXX.0/eth1

SCAN VIP name: scan1, IP: /sales-scan.example.com/10.XXX.XXX.81

SCAN VIP name: scan2, IP: /sales-scan.example.com/10.XXX.XXX.82

SCAN VIP name: scan3, IP: /sales-scan.example.com/10.XXX.XXX.83


現在通知CRS更新SCAN VIP resources

# $GRID_HOME/bin/srvctl modify scan -n sales-scan.example.com


驗證更改已成功,再次檢查SCAN配置:

# $GRID_HOME/bin/srvctl config scan

SCAN name: sales-scan, Network: 1/10.XXX.XXX.0/255.XXX.XXX.0/eth1

SCAN VIP name: scan1, IP: /sales-scan.example.com/10.XXX.XXX.121

SCAN VIP name: scan2, IP: /sales-scan.example.com/10.XXX.XXX.122

SCAN VIP name: scan3, IP: /sales-scan.example.com/10.XXX.XXX.123


啟動SCAN和SCAN監聽:

# $GRID_HOME/bin/srvctl start scan

# $GRID_HOME/bin/srvctl start scan_listener


注意:如果需要回滾更改,請重複已執行的命令,用原始值替換新值以恢復原始配置。


B.修改SCAN監聽埠


grid使用者執行:

1.修改SCAN監聽埠

$GRID_HOME/bin/srvctl modify scan_listener -p <new-SCAN-port>


更新11gR2資料庫init.ora引數:

alter system set remote_listener='<SCAN-name>:<new-port-number>' scope=both;


2.重啟SCAN listener,使得新埠生效

$GRID_HOME/bin/srvctl stop scan_listener

$GRID_HOME/bin/srvctl start scan_listener


3.確認更改

$GRID_HOME/bin/srvctl config scan_listener


場景六:修改心跳網路卡主機名

在11.2之前的Oracle Clusterware中,心跳主機名記錄在OCR中,無法更新。通常,不需要更改心跳主機名。

更改私有主機名的唯一方法是刪除/新增節點,或重新安裝Oracle Clusterware。

在11.2 Grid Infrastructure中,心跳主機名不再記錄在OCR中,並且不依賴於心跳主機名。

它可以在/etc/hosts中自由更改。


場景七:僅更改私有IP(而不更改網路介面、子網和網路掩碼或者只更改專用IP MAC地址而不更改其他任何內容)

例如,私有IP從192.XXX.X.10更改為192.XXX.X.21,網路介面名稱和子網保持不變,或者MAC地址更改,專用IP地址/介面名稱/子網/網路都保持不變。

1.在需要更改的節點上關閉Oracle Clusterware堆疊。

crsctl stop crs

2.根據需要在作業系統層(例如:/etc/hosts、作業系統網路配置等)對私有網路進行IP或MAC修改。

3.重新啟動Oracle Clusterware堆疊即可完成任務。

crsctl start crs


場景八:僅更改私有網路MTU

例如,私有網路MTU從1500更改為9000(啟用巨型幀),網路介面名稱和子網保持不變。


1.關閉所有節點上的Oracle Clusterware堆疊

crsctl stop crs

2.在作業系統網路層對MTU大小進行所需的網路更改,確保心跳網路具有所需的MTU大小,在所有群集節點上使用所需的MTU大小進行ping

3.在所有節點上重新啟動Oracle Clusterware堆疊

crsctl start crs


場景九:更改私有網路介面名稱、子網或網路掩碼


注意:更改網路掩碼,但子網ID不變時,例如:

網路掩碼從255.255.0.0更改為255.255.255.0,心跳IP為192.168.0.x,子網ID與192.168.0.0相同,網路介面名稱不變。

(1)在需要更改的所有群集節點上關閉Oracle Clusterware堆疊

(2)在作業系統層(例如:作業系統網路配置等)對心跳網路進行IP修改

(3)在所有節點上重新啟動Oracle Clusterware堆疊將完成任務。


請注意,此更改不能以滾動方式進行。

更改網路掩碼時,關聯的子網ID通常會更改。

Oracle僅在OCR中儲存網路介面名稱和子網ID,而不是網路掩碼。

Oifcfg命令可用於此類更改,Oifcfg命令只需要在叢集節點的1個節點上執行,而不需要在所有節點上執行。 


A.對於11gR2之前的Oracle Clusterware

1.使用oifcfg新增新的專用網路資訊,刪除舊的專用網路資訊:

% $ORA_CRS_HOME/bin/oifcfg/oifcfg setif -global <if_name>/<subnet>:cluster_interconnect

% $ORA_CRS_HOME/bin/oifcfg/oifcfg delif -global <if_name>[/<subnet>]]


For example:

% $ORA_CRS_HOME/bin/oifcfg setif -global <interfacename>3/192.168.2.0:cluster_interconnect

% $ORA_CRS_HOME/bin/oifcfg delif -global <interfacename>1/192.168.1.0


驗證更改

% $ORA_CRS_HOME/bin/oifcfg getif  

eth0 10.X.XXX.0 global public

eth3 192.XXX.2.0 global cluster_interconnect


2.關閉Oracle Clusterware堆疊

As root user: # crsctl stop crs


3.在作業系統級別進行所需的網路更改,應在所有節點上修改/etc/hosts檔案以反映更改。

確保新網路在所有群集節點上可用:

% ping <private hostname/IP>

% ifconfig -a  on Unix/Linux

or

% ipconfig /all on windows


4.重啟Oracle Clusterware堆疊

As root user: # crsctl start crs


注意:如果在Linux上執行OCFS2,可能還需要更改OCFS2用於與其他節點通訊的心跳IP地址。 

有關更多資訊,請參閱Note 604958.1 


B.適用於不帶Flex ASM的11gR2 Oracle Clusterware和12c群集

從11.2 Grid Infrastructure,心跳網路配置不僅儲存在OCR中,還儲存在gpnp profile檔案中。

如果心跳網路不可用或其定義不正確,CRSD過程將不會啟動,OCR的任何後續更改將不可能進行。

因此,在修改心跳網路的配置時需要小心。

以正確的順序執行更改非常重要。

還請注意,不支援手動修改gpnp profile檔案。


在繼續之前,請在所有群集節點上備份profile.xml,已grid使用者執行:

$ cd $GRID_HOME/gpnp/<hostname>/profiles/peer/

$ cp -p profile.xml profile.xml.bk


1.確保Oracle Clusterware正在群集中的所有群集節點上執行

2.已grid使用者執行:

獲取現有資訊。例如:

$ oifcfg getif

<interfacename>1 100.17.10.0 global public

<interfacename>0 192.168.0.0 global cluster_interconnect

新增新的cluster_interconnect資訊:

$ oifcfg setif -global <interface>/<subnet>:cluster_interconnect


For example:

A.新增具有相同子網的新介面bond0

$ oifcfg setif -global bond0/192.168.0.0:cluster_interconnect

B.新增具有相同介面名稱但不同子網或新介面名稱的新子網

$ oifcfg setif -global eth0/192.65.0.0:cluster_interconnect

or

$ oifcfg setif -global eth3/192.168.1.96:cluster_interconnect


1.即使介面還不可用,也可以使用-global選項完成此操作,但如果介面不可用,則無法使用-node選項完成此操作,這將導致節點逐出。

2.如果伺服器上有介面,子網地址可以透過命令識別:

$ oifcfg iflist


它列出了網路介面及其子網地址。

即使Oracle Clusterware未執行,也可以執行此命令。

請注意,子網地址的格式可能不是x.y.z.0,它可以是x.y.z.24、x.y.z.64或x.y.z.128等。例如,

$ oifcfg iflist

lan1 18.1.2.0

lan2 10.2.3.64        << this is the private network subnet address associated with private network IP: 10.2.3.XX


3.如果是為了新增第二個專用網路,而不是替換現有的專用網路,請確保兩個介面的MTU大小相同,否則例項啟動會報告錯誤:

ORA-27504: IPC error creating OSD context

ORA-27300: OS system dependent operation:if MTU failed with status: 0

ORA-27301: OS failure message: Error 0

ORA-27302: failure occurred at: skgxpcini2

ORA-27303: additional information: requested interface lan1:801 has a different MTU (1500) than lan3:801 (9000), which is not supported. Check output from ifconfig command


4.對於11gR2及更高版本,不建議在ASM或資料庫spfile或pfile中設定cluster_interconnects。

如果出於任何原因設定了此引數,則需要在clusterware關閉之前將其更改為spfile或pfile中的新私有IP,否則會由於互連不匹配而導致重新啟動期間出現故障。


驗證更改:

Verify the change:

$ oifcfg getif


3.關閉所有節點上的Oracle Clusterware並用root使用者禁用Oracle Clusterware自動啟動:

# crsctl stop crs

# crsctl disable crs


4.根據需要在作業系統級別更改網路配置,確保更改後所有節點都可以使用新介面。

$ ifconfig -a

$ ping <private hostname>


5.啟用Oracle Clusterware自啟動並以root使用者身份在所有節點上重新啟動Oracle Clusterware:

# crsctl enable crs

# crsctl start crs


6.如果需要,移除舊介面:

$ oifcfg delif -global <interfacename>[/<subnet>]

eg:

$ oifcfg delif -global eth0/192.168.0.0


C.適用於帶Flex ASM的12c和18c Oracle Clusterware

C. For 12c and 18c Oracle Clusterware with Flex ASM

請複習以上B部分,注意備註部分,備份如下:


在繼續之前,請在所有群集節點上備份profile.xml,已grid使用者執行:

$ cd $GRID_HOME/gpnp/<hostname>/profiles/peer/

$ cp -p profile.xml profile.xml.bk



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014851/viewspace-2867418/,如需轉載,請註明出處,否則將追究法律責任。

相關文章