Vous êtes sur la page 1sur 34

Author – A.

Kishore
http:/www.appsdba.info

Upgrade database to 10g from 9i for Oracle Application 11.5.10.2

System Overview
Version 11.5.10.2
Oracle Applications Vision Instance
OS: Redhat Linux update 5
Type: Single Node instance
Applications OS User: applmgrupd
Installed directory: /d01/oracle/singlenode
Database 9i OS User : oracleupd
9i Database Home = /d01/oracle/singlenode/testdb/9.2.0
10g Database Home = /d01/oracle/singlenode/testdb/10.2.0

Instance SID: TEST


Host: linux1

Task – To Upgrade 9.2.0.6 to 10.2.0.3 for Oracle Applications


11.5.10.2

Let us split this activity into 3 steps


1> Pre Upgrade
2> Upgrade
3> Post Upgrade

Pre Upgrade Steps


a> Apply the patches - 5478710, 4676589, 4653225
b> Create a new home for Oracle 10g
c> Install Oracle Database 10g. (Software Only).
d> Install the companion CD.
e> Install 10.2.0.3 patch set
f> Create nls/data/9idata directory
g> Install 10g Listener

Upgrade Steps
a> Use dbua to upgrade the db from 9.2.0.6 to 10.2.0.3

Post Upgrade Steps


a> Copy the .env file present in 9i Oracle Home to 10g oracle home
b> Change all the 9.2.0 reference to 10.2.0 reference
c> Restart the database again
d> On the application tier run the below command to generate
appsutil.zip file
e> Copy the appsutil.zip file generated on application tier to the
database tier inside 10g Oracle Home
f> create a context file on database tier
g> run autoconfig
Author – A.Kishore
http:/www.appsdba.info

Pre Upgrade Steps


a> Patches Required – 5478710, 4676589, 4653225
5478710 - TXK (FND & ADX) AUTOCONFIG ROLLUP PATCH O (December 2006)
4676589 - ATG Roll up 4
4653225 - 11.5.10 INTEROP PATCH FOR 10GR2

Note - If your Developer patch set level is earlier then patch set 17, you should apply the latest
certified patch. Check - OracleMetalink Note:125767.1

To know the version -

Navigate to help -> About Oracle Applications in any forms session window.
Look for: Oracle Forms Version : 6.0.8.XX.X

6.0.8.24.x -> patchset 15


6.0.8.25.x -> patchset 16
6.0.8.26.x -> patchset 17

1> Apply patch 5478710 - TXK (FND & ADX) AUTOCONFIG ROLLUP PATCH O
(December 2006)
su - applmgrupd
cd patch_top
unzip 5478710
cd 5478710
cd fnd/patch/115/bin
./txkprepatchcheck.pl -script=ValidateRollup -
outfile=$APPLTMP/txkValidateRollup.html -appspass=apps

adpatch
Please enter the name of your AutoPatch driver file: u5478710.drv
# Takes 20 minutes

# After applying the patch

su - applmgrupd
$ADPERLPRG $AD_TOP/bin/admkappsutil.pl

# This will create appsutil.zip in $APPL_TOP/admin/out


su - oracleupd
# Copy or FTP the appsutil.zip file to the <RDBMS ORACLE_HOME>
cd $ORACLE_HOME
cp /d01/oracle/singlenode/testappl/admin/out/appsutil.zip .
unzip -o appsutil.zip
cd $ORACLE_HOME/appsutil/scripts/TEST_linux1
sh adautocfg.sh
Author – A.Kishore
http:/www.appsdba.info

2> Apply ATG Roll up 4 – 4676589

-- Takes around 4 hours

su - applmgrupd
cd patch_top
unzip 4676589

cd 4676589
adpatch
u4676589.drv

3> Apply 11.5.10 INTEROP PATCH FOR 10GR2 - 4653225

-- Takes longtime because compiles all the object (utlrp.sql)


10 minutes

su - applmgrupd
cd patch_top
unzip p4653225_11i_LINUX.zip
cd 4653225
-- Apply the patch in non interactive mode
adpatch workers=4
defaultsfile=$APPL_TOP/admin/$TWO_TASK/adalldefaults.txt
logfile=4653225.log patchtop=$PATCH_TOP/4653225 driver=u4653225.drv

b> Create a new home for Oracle 10g


su – oracleupd
mkdir –p /d01/oracle/singlenode/testdb/10.2.0

c> Install Oracle Database 10g. (Software Only).

# To enable graphics for oracleupd user


su - root
vi /etc/X11/gdm/gdm.conf
DisallowTCP=false
init 6

# connect as root
xhost localhost

# connect as oracleupd
su - oracleupd
export ORACLE_HOME=/d01/oracle/singlenode/testdb/10.2.0
export DISPLAY=localhost:0.0

Make the below changes in sysctl.conf


vi /etc/sysctl.conf
# Default setting in bytes of the socket receive buffer
net.core.rmem_default=262144
Author – A.Kishore
http:/www.appsdba.info

# Default setting in bytes of the socket send buffer


net.core.wmem_default=262144

# Maximum socket receive buffer size which may be set by using


# the SO_RCVBUF socket option
net.core.rmem_max=262144

# Maximum socket send buffer size which may be set by using


# the SO_SNDBUF socket option
net.core.wmem_max=262144

net.ipv4.ip_local_port_range = 1024 65000

sysctl –p will make the changes effective immediately

Unzip installation file - 10201_database_linux32.zip


cd database
Execute runInstaller with oracleupd user

Home Details:
Name: OraDB10g_home
Path: /d01/oracle/singlenode/testdb/10.2.0
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info

As root user
/d01/oracle/singlenode/testdb/10.2.0/root.sh
Author – A.Kishore
http:/www.appsdba.info

d> Install Oracle Database products from Oracle 10g Companion CD

Unzip installation file - 10201_companion_linux32.zip

Connect as oracleupd user


su – oracleupd
export ORACLE_HOME=/d01/oracle/singlenode/testdb/10.2.0
./runInstaller
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info

e> Install 10.2.0.3 patch set


c. unzip installation file - p5337014_10203_LINUX.zip
d. cd Disk1
e. Execute runInstaller with oracleupd user

su - oracleupd
export ORACLE_HOME=/d01/oracle/singlenode/testdb/10.2.0
export ORACLE_SID=TEST

Name and Path like in database installation


Name: OraDB10g_home
Path: /d01/oracle/singlenode/testdb/10.2.0

Click on Install
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info

Run root.sh
/d01/oracle/singlenode/testdb/10.2.0/root.sh
Exit Installation

f) Create nls/data/9idata directory

export ORACLE_HOME=/d01/oracle/singlenode/testdb/10.2.0
perl $ORACLE_HOME/nls/data/old/cr9idata.pl
Author – A.Kishore
http:/www.appsdba.info

Check whether files exist in $ORACLE_HOME/nls/data/9idata


else copy the files

$ cd $ORACLE_HOME/nls/data/9idata
$ cp $ORACLE_HOME/nls/data/*.nlb .
$ cp $ORACLE_HOME/nls/data/old/*.nlb .
cd $ORACLE_HOME/nls/data/9idata
ls – check whether files exist

Note:371885.1 Ora-12705: Cannot Access Nls Data Files Or Invalid Environment


Specified Ora-127
export ORA_NLS10=$ORACLE_HOME/nls/data/9idata

g) Install 10g Listener –


a. Stop 9i listener
su - oracleupd
lsnrctl stop TEST

export ORACLE_HOME=/d01/oracle/singlenode/testdb/10.2.0
export ORA_NLS10=$ORACLE_HOME/nls/data/9idata

cd $ORACLE_HOME/bin
./netca
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info

Listener Name - TEST


Author – A.Kishore
http:/www.appsdba.info

Change the port number as it was in 9i database


Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info

2) Database Upgrade Steps

-- Takes nearly 12~20 hours for a normally vision instance


su - oracleupd
export ORACLE_HOME=/d01/oracle/singlenode/testdb/10.2.0

# connect to 9i database
cp /d01/oracle/singlenode/testdb/10.2.0/rdbms/admin/utlu102i.sql /tmp
cd /tmp
sqlplus "/as sysdba"
spool info.log
@utlu102i.sql
spool off

See Appendix A for the output at the end of the document

# Execute the Database Upgrade Assistant - $ORACLE_HOME/bin/dbua


cp the existing initTEST.ora to $ORACLE_HOME/dbs/initTEST.ora

cp /d01/oracle/singlenode/testdb/9.2.0/initTEST.ora
/d01/oracle/singlenode/testdb/10.2.0/initTEST.ora

# Shutdown all the middle tier process on application tier, if they are started

# Shutdown the 9i listener and 9i database.

# connect to database using 10g Oracle Home

# Please do take a backup of database before running dbua

# At this point in time all the services are down only 10 listener is up

# Make the below changes in initTEST.ora

#optimizer_max_permutations
#row_locking
#undo_suppress_errors
#max_enabled_roles
#enqueue_resources
#sql_trace
streams_pool_size=50331648
large_pool_size = 8388608
session_max_open_files=20
optimizer_features_enable=10.2.0.3
compatible=10.2.0
Author – A.Kishore
http:/www.appsdba.info

Follow Metalink note 216205.1 - Database Initialization Parameters for Oracle Applications 11i.

Note: Check that 9i environment file is not running

export ORACLE_SID=TEST
PATH=$PATH:$ORACLE_HOME/bin
cd $ORACLE_HOME/bin
dbua &

Note: If database is not visible, make entries in /etc/oratab as


follows

TEST:/d01/oracle/singlenode/testdb/9.2.0:N
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info
Author – A.Kishore
http:/www.appsdba.info

Post Upgrade Steps:

a) Copy the .env file present in 9i Oracle Home to 10g oracle home.

cp /d01/oracle/singlenode/testdb/9.2.0/TEST_linux1.env
/d01/oracle/singlenode/testdb/10.2.0

cd /d01/oracle/singlenode/testdb/10.2.0

b> Change all the 9.2.0 reference to 10.2.0 reference

Also, Make the below change in TEST_linux1.env


export ORA_NLS10=/d01/oracle/singlenode/testdb/10.2.0/nls/data/9idata

cat TEST_linux1.env >> /home/oracle/.bash_profile

Source the .env file.

c) Restart the database again.

sqlplus “/as sysdba”


shutdown immediate
startup

@/d01/oracle/singlenode/testdb/10.2.0/rdbms/admin/utlrp.sql

Some more fixes

i) Fix Korean lexers


a. Connect to sqlplus as sysdba
b. execute $ORACLE_HOME/ctx/sample/script/drkorean.sql

ii) Run adgrants.sql


a. Connect to sqlplus as sysdba
b. Execute @$APPL_TOP/admin/adgrants.sql APPLSYS

iii) Grant create procedure privilege on CTXSYS


a. Connect to sqlplus with apps
b. Execute @$AD_TOP/patch/115/sql/adctxprv manager CTXSYS
manager is the SYSTEM password

d) On the application tier run the below command to generate


appsutil.zip file.

perl /d01/oracle/singlenode/testappl/ad/11.5.0/bin/admkappsutil.pl

e) Copy the appsutil.zip file generated on application tier to the


database tier inside 10g Oracle Home.
su - oracleupd
cd $ORACLE_HOME
Author – A.Kishore
http:/www.appsdba.info

cp /d01/oracle/singlenode/testappl/admin/out/appsutil.zip .
unzip appsutil.zip

copy the tnsnames.ora and listener.ora


cd $ORACLE_HOME/network/admin
mkdir TEST_linux1
cp tnsnames.ora TEST_linux1
cp listener.ora TEST_linux1

f) Next step is to create a context file on database tier. Run the


below commands with appropriate values. This will generate context file
on database tier.

cd $ORACLE_HOME/appsutil/bin
perl adbldxml.pl tier=db appsuser=apps appspasswd=apps

g) Once the context file is created on db tier, run autoconfig.

cd $ORACLE_HOME/appsutil/bin
./adconfig.sh
contextfile=/d01/oracle/singlenode/testdb/10.2.0/appsutil/TEST_linux1.x
ml appspass=apps

AutoConfig completed successfully.


The log file for this session is located at:
/d01/oracle/singlenode/testdb/10.2.0/appsutil/log/TEST_linux1/12130604/
adconfig.log
Author – A.Kishore
http:/www.appsdba.info

Added few steps

i) Gather Statistics for SYS schema


a. sqlplus “/as sysdba”
b. shutdown immediate
c. startup restrict
d. @/oracle/tst10appl/admin/adstats.sql
e. shutdown
f. startup

ii) Recreate grants and synonym for apps


a. Log in to server with applmgr user
b. Execute adadmin
c. Choose -> Maintain Applications Database Entities menu
d. Choose -> Re-create grants and synonyms for APPS schema
Author – A.Kishore
http:/www.appsdba.info

Issues and solutions

1> while applying ATG Roll up 4 patch – 4676589

Completed: file afwf.odf on worker 3 for product fnd username


APPLSYS.

ATTENTION: All workers either have failed or are waiting:

FAILED: file afcmgr.odf on worker 2.

Solution:
adctrl
Enter 1

Control
Worker Code Context Filename Status
------ -------- ---------------------- -------------------- -------
-------
1 Run AutoPatch R115 Wait
2 Run AutoPatch R115 afcmgr.odf FAILED
3 Run AutoPatch R115 Wait
4 Run AutoPatch R115 Wait

Go the below directory


cd $APPL_TOP/admin/VIS/log
vi adwork002.log

Found the below problem.

CREATE INDEX APPLSYS.FND_CONCURRENT_REQUESTS_N10 ON


APPLSYS.FND_CONCURRENT_REQUESTS (CD_ID) LOGGING PCTFREE 10 INITRANS
11
MAXTRANS 255 COMPUTE STATISTICS TABLESPACE APPS_TS_TX_IDX

AD Worker error:
The following ORACLE error:

ORA-00054: resource busy and acquire with NOWAIT specified

Ran the below script as system user

select s.sid SID, s.serial# SRL, s.username userName,


s.osuser, ob1.name Table_name,
decode(loc.lmode,1,'NULL', 2,'RowShare', 3,'RowExcl',
4,'Share', 5,'ShareRowExcl',
6,'Exclusive','None') lockmode,
nvl(s.terminal,s.machine) terminal,
decode(s.lockwait,null,'NO','YES') Wstat
from v$session s, v$lock loc, sys.obj$ ob1
where s.sid = loc.sid and loc.id1 = ob1.obj#
and table_name ='FND_CONCURRENT_REQUESTS' and username='APPS'
Author – A.Kishore
http:/www.appsdba.info

alter sytem kill session 'sid,serial#'

adctrl
2. Tell worker to restart a failed job

Enter your choice [1] : 2

Enter the worker number(s)/range(s) or 'all' for all workers,


or press [Return] to go back to the menu : 2

2) Next step is to create a context file on database tier. Run the


below commands with appropriate values. This will generate context file
on database tier.

cd $ORACLE_HOME/appsutil/bin
perl adbldxml.pl tier=db appsuser=apps appspasswd=apps
-----------------------------------
Error
--------------------------------------
Enter Hostname of Database server: linux1.com

Enter Port of Database server: 1521

Enter SID of Database server: VIS

Could not Connect to the Database : Io exception: The Network Adapter


could not establish the connection

Could not Connect to the Database with the above parameters, Please
answer the Questions below

Solution – check whether 10g listener is up or not

-- In the second attempt I got a different error

Starting context file generation for db tier..


Using JVM from /d01/oracle/visdb/10.2.0/jre/1.4.2/bin/java to execute
java programs..

The log file for this adbldxml session is located at:


/d01/oracle/visdb/10.2.0/appsutil/log/adbldxml_12130539.log
AC-20010: Error: File - listener.ora could not be found at the
location:
/d01/oracle/visdb/10.2.0/network/admin/VIS_linux1/listener.ora
indicated by TNS_ADMIN. Context file can not be generated.

Solution - created the listener


Author – A.Kishore
http:/www.appsdba.info

3) Once the context file is created on db tier, run autoconfig.

cd $ORACLE_HOME/appsutil/bin
./adconfig.sh
contextfile=/d01/oracle/visdb/10.2.0/appsutil/VIS_linux1.xml
appspass=apps

got error -
ERROR:
ORA-12705: Cannot access NLS data files or invalid environment
specified

cd /d01/oracle/visdb/10.2.0/nls/data/9idata/
[oracle@linux1 9idata]$ ls
[oracle@linux1 9idata]$ perl $ORACLE_HOME/nls/data/old/cr9idata.pl
Directory /d01/oracle/visdb/10.2.0/nls/data/9idata already exist.
Overwriting...
Copying files to /d01/oracle/visdb/10.2.0/nls/data/9idata...
Copy finished.
Please reset environment variable ORA_NLS10 to
/d01/oracle/visdb/10.2.0/nls/data/9idata!
[oracle@linux1 9idata]$ cd /d01/oracle/visdb/10.2.0/nls/data/9idata/
[oracle@linux1 9idata]$ ls
lx00001.nlb lx1000c.nlb lx1004e6.nlb lx20052.nlb lx200e6.nlb
lx20348.nlb lx30024.nlb

export ORA_NLS10=/d01/oracle/visdb/10.2.0/nls/data/9idata

cd $ORACLE_HOME/appsutil/bin
./adconfig.sh
contextfile=/d01/oracle/visdb/10.2.0/appsutil/VIS_linux1.xml
appspass=apps

AutoConfig completed successfully.


The log file for this session is located at:
/d01/oracle/visdb/10.2.0/appsutil/log/VIS_linux1/12130604/adconfig.log

Make the below changes in the environment file


export ORA_NLS10=/d01/oracle/visdb/10.2.0/nls/data/9idata
Author – A.Kishore
http:/www.appsdba.info

Appendix A

Vous aimerez peut-être aussi