Tuesday, March 20, 2012


How to change IP address for Oracle E-business EBS 11i/R12 server:

- Make sure that your EBS instance services are cleanly down.

1- Change the IP at the OS level

2- Ping the server name and ensure you are pinging the new IP

ping <server_name>  (it should show the new IP) => Otherwise make sure that your entries in /etc/hosts file matches the new IP

3- Start the DB listener

lsnrctl start $ORACLE_SID

4- Start the DB

SQL> startup

select NODE_NAME, STATUS, NODE_MODE, NODE_ID,SERVER_ADDRESS, HOST, DOMAIN, WEBHOST, VIRTUAL_IP from fnd_nodes where node_name = upper('hostname');

eg.

SQL> select NODE_NAME, STATUS, NODE_MODE, NODE_ID,SERVER_ADDRESS, HOST, DOMAIN, WEBHOST, VIRTUAL_IP from apps.fnd_nodes where node_name = upper('erptestdb02');

NODE_NAME     S N    NODE_ID SERVER_ADDRES HOST     DOMAIN         WEBHOST               VIRTUAL_IP
------------- - - ---------- ------------- ------------ ---------------- ----------------------------- ---------------
ERPTESTDB02   Y O    8120 10.30.10.176  erptestdb02    rsteel.com erptestdb02.rsteel.com  erptestdb02


5- De-register the server which has the new IP:

Run the following command to remove the old IP address from Oracle Applications tables:

a- As the OS owner on the affected node run:

perl $AD_TOP/bin/adgentns.pl appspass=apps contextfile=$CONTEXT_FILE -removeserver

Then,

b- connect to sqlplus as apps user
c- Locate the System Name :
    The System name is the database name

select DB_NAME from FND_DATABASES;
        

d- Locate the server name corresponding to the tier in question :

    Query on the server :

        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('hostname');
 eg.
col name for a30
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('erptestdb02');
        
SQL>

NAME                   SERVER_TYPE
------------------------------ ------------------------------
erptestdb02_STAGE8_DB           DB

SQL>

e- Run the following PL/SQL block :

begin
   FND_NET_SERVICES.remove_server('<SYSTEM_NAME>','<SERVER_NAME>');
end;
/
       
commit;

eg.

SQL> begin
FND_NET_SERVICES.remove_server('STAGE8','ERPTESTDB02_STAGE8_APPS');
end;
/

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

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

no rows selected

SQL>


6- Run autoconfig to populate the new IP Address


a- Ensure you can connect as apps/apps from the affected node.
b- Run AC as the DB file owner - oruser.
    $ORACLE_HOME/appsutil/bin/adconfig.sh
c- Run AC as the MT file owner - apuser.
    $AD_TOP/bin/adconfig.sh
d- Source your newly updated environment files inside your shell terminal. 
    - DB-Tier Environment. ($ORACLE_HOME/$CONTEXT_NAME.env)
    - MT-Tier Environment. ($APPL_TOP/APPS$CONTEXT_NAME.env)

7- Confirm the IP address has been changed to the new value changed in step 1:


select NODE_NAME, STATUS, NODE_MODE, NODE_ID,SERVER_ADDRESS, HOST, DOMAIN, WEBHOST, VIRTUAL_IP from apps.fnd_nodes where node_name = upper('erptestdb02');

eg.

SQL> select NODE_NAME, STATUS, NODE_MODE, NODE_ID,SERVER_ADDRESS, HOST, DOMAIN, WEBHOST, VIRTUAL_IP from apps.fnd_nodes where node_name = upper('erptestdb02');

NODE_NAME     S N    NODE_ID SERVER_ADDRES HOST     DOMAIN         WEBHOST               VIRTUAL_IP
------------- - - ---------- ------------- ------------ ---------------- ----------------------------- ---------------
ERPTESTDB02   Y O    8120 10.30.11.176  erptestdb02    rsteel.com erptestdb02.rsteel.com  erptestdb02

SQL>

8- Start MT services and do your health check.

            

- Issues you may face:

> Autoconfig may fail with the following error:
 ...
Updating s_tnsmode to 'generateTNS'
UpdateContext exited with status: 0
AC-50480: Internal error occurred: java.lang.Exception: Error while generating listener.ora.
Error generating tnsnames.ora from the database, temporary tnsnames.ora will be generated using
templates
Instantiating Tools tnsnames.ora
Tools tnsnames.ora instantiated
Web tnsnames.ora instantiated

adgentns.pl exiting with status 512
ERRORCODE = 512 ERRORCODE_END

...

Solution


1. Open a new shell and source the APPS Environment. ($APPL_TOP/APPS<SID>_<HOST>.env)

2. Start "sqlplus" and execute following commands :
$ sqlplus apps/<Password>
SQL> exec fnd_conc_clone.setup_clean

3. Open a new terminal or shell and source the DB-Tier Environment. ($ORACLE_HOME/$CONTEXT_NAME.env)

4. Execute Autoconfig on the DB Tier. ($ORACLE_HOME/appsutil/bin/adconfig.sh)

5. Switch back to the APPS environment or start a new shell and source the APPS environment. ($APPL_TOP/APPS$CONTEXT_NAME.env)

6. Execute Autoconfig at the Apps Tier. ($AD_TOP/bin/adconfig.sh)

7. Check the Autoconfig log for any errors and ensure that the services start correctly.

Regards,
Mohamed






No comments:

Post a Comment