Opgraderingen i nedenstående er fra 8.1.7.4.0 til 10.2.0.3.0 på en Sun Solaris 10. Nu er der jo mange anbefalinger derude, på hvordan og hvorledes, og mange starter da også med at kopiere sin version 8 init fil over i 10.2.0.3 software træet under $ORACLE_HOME/dbs.

Personligt gennemgår jeg features etc. for hver major version, og laver en 8,9,10 og 11er "standard". I dette tilfælde lader jeg således 8er init filen blive hvor den er. Jeg gennemgår den dog lige for noget specielt, men ellers er den glemt og jeg benytter min 10er standard istedet.
 
"SID i det nedenstående er lille program der svarer til en oraenv, som sætter environment for ORACLE_SID, LD_LIBRARY_PATH, PATH, TNS_ADMIN osv."

[workday::/home1/usr/oracle] sid XOS
 
[workday:XOS:/usr/oracle] cd /opt/oracle/10.2.0.3.0/dbs
 
Nendenfor kopieres fra hvor "standarden" nu ligger, til ORACLE_HOME/dbs.

[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] cp $def/crdb/oracle10G/init.ora initXOS.ora
 
[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] vi initXOS.ora
 
Tilret "standard" init filen med det nye oplysninger ORACLE_SID, controlfiles deres lokalisation, archive informationer, aq_tm_processes m.fl. Følgende krav er dog et minimum for en migrering.
 
1. sga_target skal være mindst 96M
2. compatible skal være > 10 f.eks 10.2.0.3
3. pga_aggregate_target skal mindst være 24M
4. large_pool_size skal mindst være 8M
5. java_pool_size skal mindst være 48M
 
Husk også nedenstående, ellers medfører startup upgrade en ORA-30012, hvor formatet i RBS ikke genkendes! Ligeledes fjern "havelågerne" når vi er helt færdige.
 
6. #undo_management=AUTO
7. #undo_tablespace=RBS
 
8. Check controlfiles (antal og path til), og dobbelt check fil lokalisationer m.fl. 
 
Eksisterer f.eks password fil på det gamle, skal man også sørge for at kopiere det med over i det nye $ORACLE_HOME/dbs. Således lukkes og slukkes for 8.1.7.4.0 databasen.
 
[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] sqlplus "/ as sysdba"
 
SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 14 10:18:12 2008
 
(c) Copyright 2000 Oracle Corporation.  All rights reserved.
 
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production
 
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
 
Nu sættes følgende variable ORACLE_HOME, PATH, ORA_NLS33, og LD_ LIBRARY_PATH til at reflektere det nye software træ. I dette tilfælde gøres følgende
 
[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] vi /var/opt/oracle/oratab og ret
 
fra XOS:/opt/oracle/8.1.7.4.0:Y til XOS:/opt/oracle/10.2.0.3.0:Y
 
[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] sid % <--- nulstiller mit environment
 
[workday::/opt/oracle/10.2.0.3.0/dbs] sid XOS
 
[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] env
 
og check nu at alt peger som det skal, dvs. PATH og andet peger på det nye software træ.
 
[workday:XOS:/opt/oracle/10.2.0.3.0/dbs] cd $oh/rdbms/admin
 
[workday:XOS:/opt/oracle/10.2.0.3.0/rdbms/admin] sqlplus / as sysdba
 
SQL*Plus: Release 10.2.0.3.0 - Production on Tue Oct 14 10:26:28 2008
 
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
 
Connected to an idle instance.
 
SQL> startup upgrade
ORACLE instance started.
 
Total System Global Area  671088640 bytes
Fixed Size                  2327392 bytes
Variable Size             225115296 bytes
Database Buffers          440401920 bytes
Redo Buffers                3244032 bytes
Database mounted.
Database opened.

Start lige med at se hvilke objekter der er invalide, således at når vi checker igen efter vi er færdige, er det de samme.

SQL> select distinct substr(object_name,1,20), object_type from DBA_OBJECTS where status = 'INVALID';

no rows selected

SQL> spool $HOME/kbirch/upgrade_XOS.txt
 
Vi starter med at lave et SYSAUX tablespace. Der er nogle betingelser for denne oprettelse, nemlig at det er;

online, permanent, read write, extent management local, samt segment space management auto

som f.eks
 
SQL> create tablespace SYSAUX
         datafile '/[mount_point]/databases/XOS/sysaux_01.dbf'
         size 500M reuse
         extent management local
         segment space management auto
         online;
 
Tablespace created.
 
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql <--- og det tager så et stykke tid.

SQL> shutdown
 
SQL> startup
 
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql    <--- Kompiler invalide objekter
 
SQL> spool off                              <--- Efterfølgende løber vi lige filen igennem for fejl

SQL>!vi $HOME/kbirch/upgrade_XOS.txt
 
SQL> @$ORACLE_HOME/rdbms/admin/utlu102s.sql <--- Giver en status på hvad der er opgraderet
 
SQL> select distinct substr(object_name,1,20), object_type from DBA_OBJECTS where status = 'INVALID';

Luk nu databasen og tag en backup. Du er nu færdig! Din database kører nu 10.2.0.3.0, god fornøjelse.

SQL> shutdown immediate

SQL> exit

[workday:XOS:/opt/oracle/10.2.0.3.0/rdbms/admin] vi $ORACLE_HOME/dbs/initXOS.ora

Vi fjerner lige "havelågerne"

undo_management=AUTO
undo_tablespace=RBS

Gem init filen og startup.