top of page
Writer's pictureHanh Nguyen

How to Modify Public Network Information including VIP in Oracle Clusterware

Purpose

The purpose of this note is to illustrate how to change a public hostname, public IP, a Virtual IP Address (VIP), VIP hostname or other VIP attributes in an Oracle Clusterware/Grid Infrastructure environment.

Scope

Oracle Database 10g and 11g use VIPs (Virtual IP) in clustered environments for clients to connect to the database. These VIPs are static IP addresses associated with (virtual) hostnames and resolved through DNS (except when using 11gR2 GNS).

During the installation of the Oracle Clusterware users are prompted to enter a Virtual IP and Virtual hostname for each of the node in the cluster. These are stored within the OCR (Oracle Cluster Registry) and different components within the HA framework depend on these VIPs. If for some reason the need arises to change either the VIP, the VIP hostname, or the subnet, netmask etc, this procedure should be followed.

For changes assocaited with private network/cluster interconnect, please refer to Note 283684.1

Details

Case I.   Changing public hostname

Public hostname is recorded in OCR, it is entered during installation phase. It can not be modified after the installation. The only way to modify public hostname is by deleting the node, then add the node back with a new hostname, or reinstall the clusterware.

Case II.  Changing public IP only without changing interface, subnet or netmask

If the change is only public IP address and the new ones are still in the same subnet, nothing needs to be done on clusterware layer, all changes need to be done at OS layer to reflect the change.

  1. Shutdown Oracle Clustereware stack 2. Modify the IP address at network layer, DNS and /etc/hosts file to reflect the change 3. Restart Oracle Clusterware stack

Case III. Changing public network interface, subnet or netmask

If the change involves different subnet(netmask) or interface, delete the existing interface information from OCR and add it back with the correct information is required.  In the example here, the subnet is changed from 10.2.156.0  to 10.2.166.0 via two separate commands – first a ‘delif’  followed by a ‘setif’:

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

For example: % $CRS_HOME/bin/oifcfg delif -global eth0/10.2.156.0 % $CRS_HOME/bin/oifcfg setif -global eth0/10.2.166.0:public

Make the change at OS layer and restart Oracle Clusterware.

Once public network is changed, its associated VIP and SCAN VIP are also required to change, refer to CASE IV and CASE V.

Case IV. Changing VIPs associated with public network change

Planning for VIP changes

In general, a complete outage is only required for pre-10.2.0.3 release. From 10.2.0.3 onwards, the ASM/database instance dependency on the VIP resource is removed, so the VIP could be modified without having to take down the ASM/database instance, only client connections to the database will be affected when VIP is down. If the modification is a node specific, then only connection to that node will be affected during the time of change.

Please follow Case III to ensure public network changes are made first.

Gathering Current VIP Configuration

  1. Gather the existing setup for 10g and 11gR1, as Oracle Clusterware owner:

$ srvctl config nodeapps -n <node> -a

eg: $ srvctl config nodeapps -n racnode1 -a VIP exists.: /racnode1-vip/101.17.80.184/255.255.254.0/eth1 for 11gR2, as Grid Infrastructure owner:

$ srvctl config nodeapps -a

eg: $ srvctl config nodeapps -a Network exists: 1/101.17.80.0/255.255.254.0/eth1, type static VIP exists: /racnode1-vip/101.17.80.184/101.17.80.0/255.255.254.0/eth1, hosting node racnode1 VIP exists: /racnode2-vip/101.17.80.186/101.17.80.0/255.255.254.0/eth1, hosting node racnode2

  1. Verify VIP status

10.2 and 11.1: $ crs_stat -t

11.2: $ crsctl stat res -t – it should show VIPs are ONLINE

$ ifconfig -a (netstat -in for HP and ipconfig /all for Windows) – VIP logical interface is bound to the public network interface

Stopping Resources

  1. Stop the nodeapps resources (and all dependent resources ASM/DB only if required):

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 RACDB -i RACDB1 $ srvctl stop asm -n racnode1 $ srvctl stop nodeapps -n racnode1 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 RACDB -n racnode1 $ srvctl stop vip -n racnode1 -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.racnode1.vip PRCR-1065 : Failed to stop resource ora.racnode1.vip CRS-2529: Unable to act on ‘ora.racnode1.vip’ because that would require stopping or relocating ‘ora.LISTENER.lsnr’, but the force option was not specified

  1. Verify VIP is now OFFLINE and the interface is no longer bound to the public network interface

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

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

Modifying VIP and Its Associated Attributes

  1. Determine the new VIP IP/subnet/netmask or VIP hostname, make the network change on OS first, ensure the new VIP is registered in DNS or modified in /etc/hosts (for Unix/Linux) and WINDOWSSystem32driversetchosts file (for Windows). If the network interface is changed, ensure the new interface is available on the server before proceeding with the modification.

For example: New VIP is: 110.11.70.11 racnode1-nvip new subnet is 110.11.70.0 new netmask is 255.255.255.0 new interface is eth2

  1. Modify the VIP resource, as root user:

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

eg: # srvctl modify nodeapps -n racnode1 -A racnode1-nvip/255.255.255.0/eth2 * A special case for 11gR2 modifying the VIP hostname only without changing the IP address.

For example: only VIP hostname changes from racnode1-vip to racnode1-nvip, IP and other attributes remain same.

If IP address is not changed, above modify command will not change the USR_ORA_VIP value in ‘crsctl stat res ora.racnode1.vip -p’ output. To workaround:

1. modify VIP to use another valid hostname, for example node2 VIP host: # srvctl modify nodeapps -n racnode1 -A racnode2-vip/255.255.255.0/eth2

2. modify VIP again to use the new VIP hostname # srvctl modify nodeapps -n racnode1 -A racnode1-nvip/255.255.255.0/eth2

3. Verify the changes for USR_ORA_VIP field: # crsctl stat res ora.racnode1.vip -p

Note 1: For Windows platform, the interface name needs to be in quote (“) if there is a space in between, eg: As administrator user or software install user: > srvctl modify nodeapps -n racnode1 -A 110.11.70.11/255.255.255.0/”Local Area Connection 1”

Note 2: Starting with 11.2, the VIP depends on network resource (ora.net1.network), the OCR only records the VIP hostname or the IP address associated with the VIP resource. The network attributes (subnet/netmask) is recorded with the network resource.

From 11.2.0.2 onwards, if only subnet/netmask 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.11.70.0/255.255.255.0/eth2

There is no need to modify VIP or SCAN if other attributes are not changed.

  1. Verify the change

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

eg: $ srvctl config nodeapps -n racnode1 -a VIP exists.: /racnode1-nvip/110.11.70.11/255.255.255.0/eth2

Restarting Resources

  1. Start the nodeapps and the other resources

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 racnode1 $ srvctl start asm -n racnode1 $ srvctl start instance -d RACDB -i RACDB1

11gR2, as Grid Infrastructure owner:

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

eg, $ srvctl start vip -n racnode1 $ srvctl start instance -d RACDB -n racnode1

  1. Verify the new VIP is ONLINE and bind to the public network interface

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

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

  1. Repeat the same steps for the rest nodes in the cluster only if the similar change is required.

Others

  1. Modify listener.ora,  tnsnames.ora and LOCAL_LISTENER/REMOTE_LISTENER parameter to reflect the VIP change if necessary.

0 views0 comments

Recent Posts

See All

12c Grid Infrastructure Quick Reference

This is a 12c Grid Infrastructure quick reference DETAILS “crsctl stat res -t” output example This example is from a 12c GI Flex Cluster...

OCR – Vote disk Maintenace

Prepare the disks For OCR or voting disk addition or replacement, new disks need to be prepared. Please refer to Clusteware/Gird...

Commentaires


bottom of page