How to change IP of Oracle Exadata in Oracle Linux

Oracle Exadata Troubleshooting

In this post the changing of IP addresses on an Oracle Exadata Database Machine system. The most common use case for this procedure is when a system is moved, so this document was written with that case in mind. Importantly, system hostnames and domain name changes are not handled by this procedure.


  • The grid infrastructure is installed in ORACLE_HOME=/u01/app/
  • The eth0 interface on all systems is used for the management network.
  • The Client Access network on the database nodes uses a bonded interface named bondeth0 (older systems may call this bond1).
  • The grid infrastructure owner and the database owner are the same users, oracle.
  • The following documentation IP addresses are used (see RFC 5737).  For the Management network (192.x.2.0/23) and the Client network (198.xx.100.0/23).
  • That user equivalence is properly configured for both the root and oracle users.

1- All database will be closed

srvctl stop database -d

2- dbfs will close if mount point exists

crsctl stop resource dbfs_mount

3- cluster services will be shut down

crsctl stop cluster -all

4- We check if crs is automatically opened

dcli -g dbs_ib_group -l root /u01/app/ config crs

If is enabled, the cluster will be opened directly.
-dm01db01-priv: CRS-4622: Oracle High Availability Services autostart is enabled. —>

-dm01db02-priv: CRS-4622: Oracle High Availability Services autostart is enabled.

5- With this command we prevent the reboot cluster from opening automatically.

dcli -g dbs_ib_group -l root /u01/app/ disable crs

6- We check again

dcli -g dbs_ib_group -l root /u01/app/ config crs

7- All nodes will be shut down

Shutdown -h now

8/9 – New IP addresses will be entered in Dns

10- Dns check and check that you have untied it from the short, long and rope correctly.

11- Exadata opens. We make sure that Cluserter and databases are not opened.

12- We turn off the network service

service network stop

13- With this command, we change the gatway ips in the network file

vi / etc / sysconfig / network

14- Dns, ntp or time zone change, we do it at this step.

15- To calculate the ropes to be given

ipcalc -bnm (based on the given yarn)

16- We stop eth0 to change threads

ifdown eth0

17- Back up Eth0

cp / etc / sysconfig / network-scripts / ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0_bck

18- eth0 ip, gatwaye and Netmask information.

vi / etc / sysconfig / network-scripts / ifcfg-eth0

19- We define according to new ip

vi / etc / sysconfig / network-scripts / route-eth0
from table 220
to table 220

20- Edit rule-eth0

vi / etc / sysconfig / network-scripts / rule-eth0 dev eth0 table 220
default via dev eth0 table 220

21- We organize the definitions on etc according to new threads

vi / etc / host

22- After changes, we open the network service

service network start

23- We are start up the Eth0

ifup eth0

24- Reboot the server

reboot -n

25/26- Edit the ssh config file according to the new ip

vi / etc / ssh / sshd_config
ListenAddress -> management
ListenAddress -> priv1
ListenAddress -> priv2
We do dns and ip settings by doing ssh to 26-ilom.
set / SP / clients / dns nameserver =
cd / SP / network
set pendingipaddress =
set pendingipgateway =
set pendingipnetmask =
set pendingipdiscovery = static
set commitpending = true

27- We do İlom dns and ip control

show / SP / clients / dns
show / SP / network

28 – We provide new Cell smtpserver information

dcli -g cell_group -l root “cellcli -e alter cell smtpserver = \ ‘ \'”

29- We stop the services on all cells

dcli -g cell_ib_group -l root cellcli -e alter cell shutdown services all

30 – We move the cellconf file under / root for new threads

dcli -g cell_ib_group -l root cp /opt/oracle.cellos/cell.conf /root/new.cell.conf

31- We run it to save the changes made.

/opt/oracle.cellos/ipconf -force -newconf /root/new.cell.conf -reboot

32- We check for changes

/opt/oracle.cellos/ipconf -verify -conf /root/new.cell.conf -verbose

33- We check if the cell works correctly

(root) # dcli -g cell_ib_group -l root cellcli –e list cell detail

34- We are changing the infiniband swicth’s ip, dns and ntp.
35- Cisco swicth ip, dns and ntp change
36- We are doing Pdu’s thread change.
37- We extract the ip list for client network settings

(root) # ipcalc -bnm


38- We open the Cluster

dcli -g dbs_group -l root /u01/app/ start crs

39- We check

crsctl stat res -t

40- Currently we are checking the client threads

oracle $ oif getif
oracle $ srvctl config scan
oracle $ srvctl config nodeapps
oracle $ oifcfg getif
root $ ifconfig

41- We stop the service and client network

(oracle) $ srvctl stop listener -node {node name}
(oracle) $ srvctl stop scan_listener
(oracle) $ srvctl stop vip -n {node name}
(oracle) $ srvctl stop scan

42- We delete the client network without configuring it – it will work on one node

(oracle) $ oifcfg delif -global bondeth0

43- We stop bondeth0 for change

(root) # ifdown bondeth0

44- we copy ifcfg-bond

cp / etc / sysconfig / network-scripts / ifcfg-bond

45- We make changes according to the new thread

vi / etc / sysconfig / network-scripts / ifcfg-bondeth0

46 – We set our redirects to the new thread

cd / etc / sysconfig / network-scripts /

(root) # cat rule-bondeth0
from table 220
to table 220
(root) # cat route-bondeth0 giant bondeth0 table 220
default via giant bondeth0 table 220

47- We edit etc according to our new client threads

vi / etc / hosts

48- After the changes, we restart the service to define the threads

service network restart

49- We add the card defined according to the new threads to the configuration

(oracle) $ oifcfg setif -global bondeth0 / public

50- We check

(oracle) oifcfg getif

51- We add the subnet to the configuration

(root) srvctl modify network –netnum 1 –subnet

(root) # srvctl modify scan –netnum 1 –scanname

52- I check scan threads

(oracle) $ srvctl config scan

53- Vip and listeners are start

(oracle) $ srvctl start vip -node {node name}
(oracle) $ srvctl start listener
(oracle) $ srvctl start scan
(oracle) $ srvctl start scan_listener

54-We check the listeners

(oracle) $ srvctl status nodeapps
(oracle) $ srvctl status scan_listener

55-We close the cluster and it start again

(root) # /u01/app/ stop cluster -all
(root) # /u01/app/ start cluster -all

56- We enable Cluster to be started automatically

(root) # dcli -g dbs_group -l root /u01/app/ enable crs

57- We start the databases

srvctl start database

58- Starting CRS dbfs_mount

(oracle) $ crsctl start res dbfs_mount


Also you can check out my other post: Infiniband Switch Ports Status Showing AutomaticHighErrorRate Message

Have a nice day.