J'ai eu à migrer une bases de données 10.2.0.3 à 10.2.0.4.
La façon préconisée a été d'installer un nouveau "ORACLE_HOME" et tant qu'à faire, j'en ai profité pour déployer le CPU d'Oracle (Critical Patch Update Jan2009).
Installation1. Installer le logiciel "Oracle Database 10.2.0.1"
2. Installer le patchset "Oracle Database 10.2.0.4"
3. Installer le "CPU January 2009"
Migration1. Arrêt de la base de données
$ sqlplus / as sysdbaSQL> shutdown immediate2. Création d'un fichier de paramètres PFILE à partir du SPFILE
$ sqlplus / as sysdbaSQL> create pfile='ORACLE_HOME/dbs/initORCL.ora' from spfile;$ cd ORACLE_HOME/dbs$ cp initORCL.ora NOUV_ORACLE_HOME/dbs/initORCL.ora3. Editer le PFILE et modifier les paramètres dont ceux qui pointent dans l'ancien ORACLE_HOME ( compatible, optimizer_features_enable, etc...)
$ cd NOUV_ORACLE_HOME/dbs$ vi initORCL.ora4. Modifier le fichier ORATAB
Changer l'ORACLE_HOME correspondant à la base de données
$vi oratabORCL:NOUV_ORACLE_HOME:Y5. Modifier le fichier de configuration du listener
(SID_DESC =(GLOBAL_DBNAME = ORCL.world)(ORACLE_HOME = NOUV_ORACLE_HOME)(ENVS = 'LD_LIBRARY_PATH=NOUV_ORACLE_HOME/lib')(SID_NAME = ORCL)6. Redémarrer le listener
$ lsnrctl reload lsnr10207. Création des liens pour des fichiers (optionel)
Si vous n'utilisez pas les emplacements par défaut de certains fichiers (c'est mon cas!) alors vous devez créer des liens symboliques sous Unix.
Il suffit de se positionner dans le répertoire par défaut puis d'exécuter la commande:
- Pour l' ALERTSID.LOG
cd NOUV_ORACLE_HOME/rdbms/logln -s REPERTOIRE_DE_DESTN/alert_ORCL.log alert_ORCL.log- Pour les fichiers de configuration (PFILE, SPFILE)
cd NOUV_ORACLE_HOME/dbsln –s REPERTOIRE_DE_DESTN/initORCL.ora initORCL.oraln –s REPERTOIRE_DE_DESTN/spfileORCL.ora spfileORCL.ora8. Créer le fichier de mot de passe
$ orapwd file=NOUV_ORACLE_HOME/dbs/orapwORCL password= entries=209. Démarrer la base de données sous le nouveau ORACLE_HOME
$ sqlplus / as sysdbaSQL> create spfile from pfile='NOUV_ORACLE_HOME/dbs/initORCL.ora';10. Démarrer la migration de la base de données
SQL> startup upgradeSQL> SPOOL upgrade_info.log SQL> @?/rdbms/admin/utlu102i.sql
SQL> SPOOL OFF-- Vérifier le log précédent pour tout problème
SQL> SPOOL patch.logSQL> @?/rdbms/admin/catupgrd.sqlSQL> SPOOL OFF-- Vérifier le log précédent pour tout problème
11. Redémarrer la base de données en mode normal
SQL> SHUTDOWN IMMEDIATESQL> STARTUP12. Recompiler les objets invalides
SQL> @?/rdbms/admin/utlrp.sql
13. Vérifier le statut des composantes de la base de données
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;Cette façon permet de réinstaller proprement le logiciel de la base de données. Aussi, l'avantage de celle-ci est que si votre ORACLE_HOME actuel est partagé par plusieurs bases de données, vous pourrez migrer une base de données sans impacter les autres. Cette méthode peut aussi être utilisé pour déplacer une base de données vers un autre ORACLE_HOME.