PART II: Oracle Database Upgrade & ASM Upgrade
I don’t have separate ASM home. I’m keeping ASM in ORACLE_HOME itself; So Now going to continue my database & asm upgrade.
1. From oracle user you need to exeucte “runInstaller” then you will get below screen shot.
2. Please make sure your ORACLE_HOME in your path.
3. Please check any listener running from all nodes; (Else it’s will create problem)
4. Please check any database/asm instance running (If yes; pls shutdown those instance)
For example:
[oracle@linux1 bin]$ ps -ef | grep pmon
oracle 11993 22392 0 13:16 pts/2 00:00:00 grep pmon
[oracle@linux1 bin]$ ps -ef | grep lsn
oracle 5155 1 0 11:06 ? 00:00:08
/u01/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_LINUX1 -inherit
oracle 12000 22392 0 13:16 pts/2 00:00:00 grep lsn
[oracle@linux1 bin]$ lsnrctl stop LISTENER_LINUX1
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-JUL-2009 13:16:42
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1-vip.gen.com)(PORT=1521)(IP=FIRST)))
The command completed successfully
[oracle@linux2 bin]$ ps -ef | grep LISTENER_LINUX2
oracle 12726 1 0 13:29 ? 00:00:01
/u01/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_LINUX2 -inherit
oracle 14894 8929 0 13:36 pts/1 00:00:00 grep LISTENER_LINUX2
[oracle@linux2 bin]$ lsnrctl stop LISTENER_LINUX2
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-JUL-2009 13:36:35
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux2-vip.gen.com)(PORT=1521)(IP=FIRST)))
The command completed successfully
[oracle@linux2 bin]$ ps -ef | grep pmon
oracle 14993 8929 9 13:36 pts/1 00:00:00 grep pmon
[oracle@linux2 bin]$ ps -ef | grep lsn
oracle 15002 8929 0 13:36 pts/1 00:00:00 grep lsn
Before upgrade cluster status & Listener status
[root@linux1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application OFFLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....db1.srv application OFFLINE OFFLINE
ora....db2.srv application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE linux1
ora....X1.lsnr application ONLINE ONLINE linux1
ora.linux1.gsd application ONLINE ONLINE linux1
ora.linux1.ons application ONLINE ONLINE linux1
ora.linux1.vip application ONLINE ONLINE linux1
ora....SM2.asm application ONLINE ONLINE linux2
ora....X2.lsnr application ONLINE ONLINE linux2
ora.linux2.gsd application ONLINE ONLINE linux2
ora.linux2.ons application ONLINE ONLINE linux2
ora.linux2.vip application ONLINE ONLINE linux2
[oracle@linux1 bin]$ ps -ef | grep lsn
oracle 8117 1 0 03:17 ? 00:00:02
/u01/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_LINUX1 -inherit
oracle 12039 10732 0 03:28 pts/3 00:00:00 grep lsn
[oracle@linux1 bin]$ lsnrctl stop LISTENER_LINUX1
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 25-JUL-2009 03:28:18
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1-vip.gen.com)(PORT=1521)(IP=FIRST)))
The command completed successfully
[oracle@linux1 bin]$ ps -ef | grep lsn
oracle 12085 10732 0 03:28 pts/3 00:00:00 grep lsn
[oracle@linux1 bin]$ ps -ef | grep pmon
oracle 8024 1 0 03:17 ? 00:00:03 asm_pmon_+ASM1
oracle 12162 10732 0 03:28 pts/3 00:00:00 grep pmon
[oracle@linux2 ~]$ cd /u01/oracle/product/10.2.0/crs/bin/
[oracle@linux2 bin]$ ps -ef | grep lsn
oracle 7134 1 0 03:19 ? 00:00:01
/u01/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_LINUX2 -inherit
oracle 10678 10552 0 03:29 pts/2 00:00:00 grep lsn
[oracle@linux2 bin]$ lsnrctl stop LISTENER_LINUX2
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 25-JUL-2009 03:29:45
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux2-vip.gen.com)(PORT=1521)(IP=FIRST)))
The command completed successfully
[oracle@linux2 bin]$ ps -ef | grep pmon
oracle 10784 1 21 03:29 ? 00:00:00 asm_pmon_+ASM2
oracle 10806 10552 0 03:30 pts/2 00:00:00 grep pmon
Step 2:This is TWO Nodes cluster; that’s why you will get your cluster nodes names list.
Step 3:If you want register you CSI Nr then you can otherwise ignore this slide
Step 4:This is pre-request checking steps; in case any thing wrong here you will come to know all the details.
Step 5:Once successfully completed your pre-request then continue the patch installation on cluster.
Step 6:Now you need to execute below script for all nodes (Using root user)
/u01/oracle/product/10.2.0/db_1/root.sh
[root@linux1 bin]# /u01/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/oracle/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
[root@linux2 bin]# /u01/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/oracle/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
[oracle@linux1 bin]$ . oraenv
ORACLE_SID = [devdb1] ? devdb
[oracle@linux1 bin]$ export ORACLE_SID=devdb1
[oracle@linux1 bin]$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jul 25 03:38:20 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1267044 bytes
Variable Size 100666012 bytes
Database Buffers 176160768 bytes
Redo Buffers 7118848 bytes
SQL>
SQL> show parameter clus
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
cluster_interconnects string
SQL> alter system set cluster_database=FALSE scope=spfile;
System altered.
SQL> shutdown
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
[oracle@linux1 bin]$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jul 25 03:40:20 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup upgrade
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1267044 bytes
Variable Size 100666012 bytes
Database Buffers 176160768 bytes
Redo Buffers 7118848 bytes
Database mounted.
Database opened.
SQL>
SQL> show parameter cluster
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean FALSE
cluster_database_instances integer 1
cluster_interconnects string
SQL> spool /u01/patch.log
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql
...
..
......
No errors.
No errors.
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP RUL 2009-07-25 11:54:47
DBUA_TIMESTAMP RUL VALID 2009-07-25 11:54:47
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UPGRD_END 2009-07-25 11:54:50
.
Oracle Database 10.2 Upgrade Status Utility 07-25-2009 11:54:50
.
Component Status Version HH:MM:SS
Oracle Database Server VALID 10.2.0.4.0 01:23:50
JServer JAVA Virtual Machine VALID 10.2.0.4.0 00:15:05
Oracle XDK VALID 10.2.0.4.0 00:02:21
Oracle Database Java Packages VALID 10.2.0.4.0 00:02:39
Oracle Text VALID 10.2.0.4.0 00:01:48
Oracle XML Database VALID 10.2.0.4.0 00:11:57
Oracle Real Application Clusters VALID 10.2.0.4.0 00:00:22
Oracle Workspace Manager VALID 10.2.0.4.3 00:04:23
Oracle Data Mining VALID 10.2.0.4.0 00:03:23
OLAP Analytic Workspace VALID 10.2.0.4.0 00:03:25
OLAP Catalog VALID 10.2.0.4.0 00:08:07
Oracle OLAP API VALID 10.2.0.4.0 00:06:20
Oracle interMedia VALID 10.2.0.4.0 00:31:09
Spatial VALID 10.2.0.4.0 00:13:33
Oracle Expression Filter VALID 10.2.0.4.0 00:02:04
Oracle Enterprise Manager VALID 10.2.0.4.0 00:12:57
Oracle Rule Manager VALID 10.2.0.4.0 00:01:11
.
Total Upgrade Time: 03:24:44
DOC>#######################################################################
DOC>#######################################################################
DOC>
DOC> The above PL/SQL lists the SERVER components in the upgraded
DOC> database, along with their current version and status.
DOC>
DOC> Please review the status and version columns and look for
DOC> any errors in the spool log file. If there are errors in the spool
DOC> file, or any components are not VALID or not the current version,
DOC> consult the Oracle Database Upgrade Guide for troubleshooting
DOC> recommendations.
DOC>
DOC> Next shutdown immediate, restart for normal operation, and then
DOC> run utlrp.sql to recompile any invalid application objects.
DOC>
DOC>#######################################################################
DOC>#######################################################################
DOC>#
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1267044 bytes
Variable Size 146803356 bytes
Database Buffers 130023424 bytes
Redo Buffers 7118848 bytes
Database mounted.
Database opened.
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2009-07-25 12:12:32
DOC> The following PL/SQL block invokes UTL_RECOMP to recompile invalid
.
...
.......
ERRORS DURING RECOMPILATION
---------------------------
0
PL/SQL procedure successfully completed.
SQL> show parameter cluster
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean FALSE
cluster_database_instances integer 1
cluster_interconnects string
SQL>
SQL> alter system set cluster_database=TRUE scope=spfile;
System altered.
SQL> alter system set cluster_database=TRUE scope=spfile;
System altered.
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1267044 bytes
Variable Size 163580572 bytes
Database Buffers 113246208 bytes
Redo Buffers 7118848 bytes
Database mounted.
Database opened.
SQL>
SQL> show parameter cluster
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
cluster_interconnects string
[oracle@linux1 bin]$ ./srvctl start instance -d devdb -i devdb1
[oracle@linux1 bin]$ ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application ONLINE ONLINE linux2
ora....b1.inst application ONLINE ONLINE linux1
ora....b2.inst application ONLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....db1.srv application OFFLINE OFFLINE
ora....db2.srv application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE linux1
ora....X1.lsnr application ONLINE ONLINE linux1
ora.linux1.gsd application ONLINE ONLINE linux1
ora.linux1.ons application ONLINE ONLINE linux1
ora.linux1.vip application ONLINE ONLINE linux1
ora....SM2.asm application ONLINE ONLINE linux2
ora....X2.lsnr application ONLINE ONLINE linux2
ora.linux2.gsd application ONLINE ONLINE linux2
ora.linux2.ons application ONLINE ONLINE linux2
ora.linux2.vip application ONLINE ONLINE linux2
[oracle@linux2 bin]$ ./srvctl start instance -d devdb -i devdb2
[oracle@linux1 bin]$ ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application ONLINE ONLINE linux2
ora....b1.inst application ONLINE ONLINE linux1
ora....b2.inst application ONLINE ONLINE linux2
ora...._taf.cs application OFFLINE OFFLINE
ora....db1.srv application OFFLINE OFFLINE
ora....db2.srv application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE linux1
ora....X1.lsnr application ONLINE ONLINE linux1
ora.linux1.gsd application ONLINE ONLINE linux1
ora.linux1.ons application ONLINE ONLINE linux1
ora.linux1.vip application ONLINE ONLINE linux1
ora....SM2.asm application ONLINE ONLINE linux2
ora....X2.lsnr application ONLINE ONLINE linux2
ora.linux2.gsd application ONLINE ONLINE linux2
ora.linux2.ons application ONLINE ONLINE linux2
ora.linux2.vip application ONLINE ONLINE linux2
[oracle@linux2 bin]$ . oraenv
ORACLE_SID = [devdb] ?
[oracle@linux2 bin]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jul 25 12:45:02 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> conn sys@devdb1 as sysdba
Enter password:
Connected.
SQL>
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
SQL> conn sys@devdb2 as sysdba
Enter password:
Connected.
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod