Manual Upgradation From Oracle 9i to 10g
Upgradation
is the process of replacing our existing software with a newer
version of the same product . For example, replacing oracle 9i
release to oracle 10g release . Upgrading our applications usually
does not require special tools. Our existing reports should look and
behave the same in both products. However, sometimes minor changes may
be seen in product .Upgradation is done at Software level .
There are generally four method to Upgrade the Oracle database .
I received a mail from a reader regarding the upgradation of
database . He wants to upgrade his database from 9i to 10g . Here,
i will like advice that it's better to upgrade our database
from 9i to 11g as compare to 9i to 10g because Oracle extended
support for 10gR2 will ends on 31-Jul-2013 and also there are more
features available in Oracle 11g . We can directly upgrade to oracle
11g, if our curent database is 9.2.0.4 or newer then its supports direct
upgrades to versions 9.2.0.4, 10.1 and 10.2 . We can upgrade the version as
- 7.3.3 -> 7.3.4 -> 9.2.0.8 -> 11.1
- 8.0.5 -> 8.0.6 -> 9.2.0.8 -> 11.1
- 8.1.7 -> 8.1.7.4 -> 9.2.0.8 -> 11.1
- 9.0.1.3-> 9.0.1.4 -> 9.2.0.8 -> 11.1
- 9.2.0.3 (or lower) -> 9.2.0.8 -> 11.1
1.) Manual Upgradation :
2.) Upgradation Using the DBUA .
3.) export/import
4.) Data Copying
Let's have a look on manual upgradation .
Manual Upgradation : A
manual upgrade consists of running SQL scripts and utilities
from a command line to upgrade a database to the new Oracle
Database 10g release. While a manual upgrade gives us finer
control over the upgrade process, it is more susceptible to error if
any of the upgrade or pre-upgrade steps are either not followed or
are performed out of order. Below are the steps
1.) Install Oracle 10g software : For Upgradation , Invoke the .exe or rumInstaller ad select "Install software only" to Install the Oracle S/w .
2.) Take Full Backup Database : Take full database backup of database which is to be upgraded .
3.) Check the invalid Objects : Check the invalid objects by running ultrp.sql scripts as
SQL> @ORACLE_HOME/rdbms/admin/utlrp.sql
4.) Login into 9i home and run the utlu102i.sql : This script is in oracle 10g home .
SQL> spool pre_upgrd.sql
SQL> @<ORACLE_10G_HOME>/rdbms/admin/utlu102i.sql
SQL> spool off
The above scripts checks a number of areas to make sure the instance is suitable for upgrade including
- Database version
- Log file sizes
- Tablespace sizes
- Server options
- Initialization parameters (updated, depercated and obsolete)
- Database components
- Miscellaneous Warnings
- SYSAUX tablespace present
- Cluster information
The issues indicated by this
script should be resolved before a manual upgrade is attempted.
Once we have resolved the above warning , then re-run the above
script once more to cross-check .
5.) Check for the timestamp with timezone Datatype : The
time zone files that are supplied with Oracle Database 10g have
been updated from version 1 to version 2 to reflect changes in
transition rules for some time zone regions. The changes may
affect existing data of TIMESTAMP WITH TIME ZONE datatype. To
preserve this TIMESTAMP data for updating according to the new
time zone transition rules, we must run the utltzuv2.sql
script on the database before upgrading. This script analyzes our
database for TIMESTAMP WITH TIME ZONE columns that a re affected by
the updated time zone transition rules.
SQL> @ORACLE_10G_HOME/rdbms/admin/utltzuv2.sqlSQL> select * from sys.sys_tzuv2_temptab;
If the utltzuv2.sql script
identifies columns with time zone data affected by a
database upgrade, then back up the data in character format
before we upgrade the database. After the upgrade, we must
update the tables to ensure that the data is stored based on
the new rules. If we export the tables before upgrading and
import them after the upgrade, the conversion will happen
automatically during the import.
6.) Shutdown the database :
shut down the database and copy the spfile(or pfile) and password file from 9i home to 10g home .
7.) Upgrade Database : Set following environment for 10g and login using "SYS" user . It takes roughly half an hour to complete. Spool the output to a file so that you can review it afterward.
ORACLE_SID=<sid>ORACLE_HOME=<10g home>
PATH=<10g path>
sqlplus / as sysdba
SQL> startup upgrade
SQL>spool upgrd_log.sql
SQL>@catupgrd.sql
SQL> spool off
8.) Recompile any invalid objects : Compare the number of invalid objects with the number noted in step 4 . It should hopefully be the same or less.
SQL>@ORACLE_HOME/rdbms/admin/utlrp.sql
9.) Check the status of the upgrade :
SQL> @ORACLE_HOME/rdbms/admin/utlu102s.sql
The above script queries the
DBA_SERVER_REGISTRY to determine upgrade status and provides information
about invalid or incorrect component upgrades. It also provides names
of scripts to rerun to fix the errors.
10.) Edit the spfile : Create a pfile from spfile as
SQL>create pfile from spfile ;
Open the pfile and set the compatible parameter to 10.2.0.0.0 . Shutdown the database and create the new modified spfile .
SQL>shut immediateSQL> create spfile from pfile ;
11.) Start the database normally
SQL> startup
and finally configure the Oracle net and drop the old Oracle database software i.e, 9i using the OUI .
Reference :: http://docs.oracle.com/cd/B19306_01/server.102/b14238/upgrade.htm
No comments:
Post a Comment