Tuesday, July 3, 2012



Change IP OR Host-Name/Domain OR Ports on Oracle EBS/Apps R12

We recently came across the situation of migrating the networking infrastructure for EBS R12 hosting. The issue was with IP Address and host-names and ports are same. I tried looking a bit on MOS and over net but couldn't find one single consolidated post containing all relevant info with detailed HOW-TOs. So that resulted in this post.
The Net Services Topology Data Model stores the entire topological information about a single Oracle Application instance. The data model stores information about each node in the Oracle Applications instance which is then used to generate the Net Service configuration files (for example tnsnames.ora). AutoConfig seeds the data model with relevant data.

The Net Services Topology Data Model stores the following information:
On the database tier: Hostname, Database SID, Database Name, Instance Name, TNS Descriptors.....
On the application tier: Hostname, FNDFS and FNDSM alias descriptors.........

Oracle E-Business Suite is not dependent on IP address, so one can easily change the IP address of nodes without any effect on E-Business Suite.
But Hostname, Domain and Ports are not like that, Oracle E-Business Suite is dependent to these entries. So, we couldn’t change these values without co-ordination of E-Business Suite itself.

Primary idea was to just change the IP Address but I will also describe how to change host-name and port as well.
There are two methods from which one can choose
     1. Use Auto-Config
     2. Cloning

On DB Tier: 
1. De-register the current database server (Required)

As the database hostname and domain will be changed, the current database server node needs to be de-registered. To deregister the current database server node, run the following command as the owner of the Oracle RDBMS file system and current database instance :

SQL> select NAME, SERVER_TYPE from FND_APP_SERVERS, FND_NODES 
where FND_APP_SERVERS.NODE_ID = FND_NODES.NODE_ID and SERVER_TYPE='DB' and FND_NODES.NODE_NAME=UPPER('ie_dbnode');

NAME            SERVER_TYPE
--------------- -----------
ie_dbnode        DB

# cd $ORACLE_HOME/appsutil
# perl ./bin/adgentns.pl appspass=apps contextfile=./visr12_ie_dbnode.xml -removeserver

SQL> select NAME, SERVER_TYPE from FND_APP_SERVERS, FND_NODES
where FND_APP_SERVERS.NODE_ID = FND_NODES.NODE_ID and SERVER_TYPE='DB' and FND_NODES.NODE_NAME=UPPER(' ie_dbnode');
no rows selected

2. Create a new Context file

# cd $ORACLE_HOME/appsutil
# perl ./bin/adclonectx.pl contextfile=./visr12_ie_dbnode.xml
<Enter the corresponding values for the prompts>
The new database context file has been created :
/u01/app/oracle/visr12/db/tech_st/11.1.0/appsutil/visr12_dbnode.xml

Note: The command above will create a new Context file of the format sid_hostname.xml in the current working directory.

On APPS Tier: 
1. De-register the current Applications server

As the Applications hostname and domain will be changed, the current Applications server node needs to be de-registered. To deregister the current Applications server node, run the following command as the owner of the Oracle Applications file system and current database instance:

SQL> select NAME, SERVER_TYPE from FND_APP_SERVERS, FND_NODES
where FND_APP_SERVERS.NODE_ID = FND_NODES.NODE_ID and
SERVER_TYPE='APPS' and FND_NODES.NODE_NAME=UPPER('ie_appsnode');
NAME              SERVER_TYPE
----------------- ----------
ie_appsnode     APPS

# cd $APPL_TOP/admin
# perl $AD_TOP/bin/adgentns.pl appspass=apps contextfile=./visr12_ie_appsnode .xml -removeserver

SQL> select NAME, SERVER_TYPE from FND_APP_SERVERS, FND_NODES
where FND_APP_SERVERS.NODE_ID = FND_NODES.NODE_ID and
SERVER_TYPE='APPS' and FND_NODES.NODE_NAME=UPPER('ie_appsnode ');

no rows selected

2. Create a new Context file
# cd $APPL_TOP/admin
# perl $AD_TOP/bin/adclonectx.pl contextfile=./visr12_ie_appsnode.xml
Provide the values required for creation of the new APPL_TOP Context file.

     <Enter the corresponding values for the prompts>
The new context file has been created :
/u01/app/oracle/visr12/apps/apps_st/appl/visr12_appsnode.xml

Note: The command above will create a new Context file of the format ie_appsnode.xml in the current working directory.

3. Shutdown the Application Tier Services
# adstpall.sh apps/apps

4. Change the hostname and domain
Change the hostname and domain at OS level.
# edit /etc/hosts as follow:
OLD: 192.168.1.117    ie_dbnode.localdomain     ie_dbnode
NEW: 172.168.0.85     appsdbnode.localdomain     appsdbnode
OLD: 192.168.1.118    ie_appsnode.localdomain     ie_appsnode
NEW: 172.168.0.84     appsnode.localdomain     appsnode

-- change the current host-name as follows on all corresponding hosts
# hostname <new_host_name>

Check the following files for correct values on all nodes 
/etc/sysconfig/network (for host-name change)
- /etc/sysconfig/network-scripts/ifcfg-eth0 (for IP-Address change)
If the ip address is changed then restart the network services (as root user) on all nodes
#service network restart

On DB Tier: Reseed the Net Services Topology Model
# cd $ORACLE_HOME/appsutil
# ./bin/adconfig.sh contextfile=./visr12_appsdbnode.xml

On APPS Tier: Reseed the Net Services Topology Model
The Net Services Topology Model is automatically updated by running AutoConfig.
# $AD_TOP/bin/adconfig.sh contextfile=$APPL_TOP/admin/visr12_appsnode.xml appspass=apps

On DB Tier: Shutdown the database and listener
# $ORACLE_HOME/appsutil/scripts/visr12_ie_dbnode/addbctl.sh stop
# $ORACLE_HOME/appsutil/scripts/visr12_ie_dbnode/addlnctl.sh stop visr12

-- Start the listener and database
# $ORACLE_HOME/appsutil/scripts/visr12_appsdbnode/addlnctl.sh start visr12
# $ORACLE_HOME/appsutil/scripts/visr12_appsdbnode/addbctl.sh start 

On APPS Tier: Start the Application Tier Services
# $COMMON_TOP/admin/scripts/visr12_appsnode/adstrtal.sh apps/apps

Check the apps url to see if you can access the applications using new host:port combination.

Troubleshooting - 
Sometimes you will encounter the following errors when you start the listener?
Error listening on: (ADDRESS=(PROTOCOL=TCP)(Host=appsdbnode)(Port=1521))
TNS-12532: TNS:invalid argument
TNS-12560: TNS:protocol adapter error
TNS-00502: Invalid argument

Please check $ORACLE_HOME/network/admin/visr12_appsnode/sqlnet.ora to insure it is using new values:
OLD: tcp.invited_nodes=( ie_dbnode , appsdbnode)
NEW: tcp.invited_nodes=(appsdbnode.localdomain)


Reference - 
For changing hostname, domain and ports of a multinode Oracle E-Business Suite, please refere metalink note: 341322.1 - 
How to change the hostname of an Applications Tier using AutoConfig, metalink note: 338003.1 - 
How to change the hostname and/or port of the Database Tier using AutoConfig
How to get a clean Autoconfig Environment - Note: 391406.1 

No comments:

Post a Comment