Full upgrade 11g -> 19c après transfert des fichiers
https://ocptechnology.com/how-to-upgrade-11g-to-19c-manually/
https://www.oracle.com/africa/a/tech/docs/twp-upgrade-oracle-database-19c.pdf
La migration va se faire d'un serveur SRVORA11G avec Oracle 11g vers un nouveau serveur SRVORA19C avec Oracle 19c.
Le chemin des fichiers Oracle reste le même entre les deux serveurs, il n'y a donc pas de renommage à faire. Dans le cas contraire, se reporter à la procédure avec changement des chemins des fichiers.
Toutes les commandes ci-dessous seront réalisées sous l'utilisateur linux "oracle" avec lequel sont installé les binaires 11g et 19c.
Sur les 2 serveurs :
mkdir /oracle/preupgrade/
Sur SRVORA19C, créer une base vide afin de préparer l'arborescence des fichiers et de l'environnement. Stopper la base après création.
Sur SRVORA11G
transfert du script preugrade de la 19c sur le serveur 11g, et lancement
scp SRVORA19C:/oracle/ora19c/dbhome/rdbms/admin/preupgrade.jar /oracle/preupgrade/
export ORACLE_SID=ORCL
/oracle/ora11g/dbhome/jdk/bin/java -jar /oracle/preupgrade/preupgrade.jar FILE DIR /oracle/preupgrade/
Préparation de la base 11g
sqlplus / as sysdba
SQL> SELECT version FROM v$timezone_file;
SQL> purge dba_recyclebin;
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
SQL> create pfile from spfile;
SQL> shutdown immediate;
Copie des 2 fichiers SQL générés par le script preupgrade, et de l'init.ora, vers SRVORA19C
scp /oracle/preupgrade/*upgrade_fixups.sql SRVORA19C:/oracle/preupgrade/
scp /oracle/ora11g/dbhome/dbs/initORCL.ora SRVORA19C:/oracle/ora19c/dbhome/dbs
Puis copie des fichiers de la base 11g vers SRVORA19C
rsync -av --progress /u01/orcl/* SRVORA19C:/u01/orcl/
rsync -av --progress /u01/redo1/* SRVORA19C:/u01/redo1/
rsync -av --progress /u01/redo2/* SRVORA19C:/u01/redo2/
Sur SRVORA19C
modifier initORCL.ora (enlever les paramètres dynamiques, modifier *.compatible='19.0.0'), créer le SPFILE
SQL> create spfile from pfile;
NOTE : si nécessaire, ajouter un peu de RAM (paramètres memory_max_target et memory_target) à la base car la 19 est plus gourmande.
Démarrer la base en mode UPGRADE et lancer le premier script généré par preupgrade
SQL> startup upgrade
[...]
SQL>@/oracle/preupgrade/preupgrade_fixups.sql
ERROR:
ORA-04023: L'objet SYS.STANDARD n'a pas pu etre valide ou autorise
NOTE : cette erreur peut être ignorée depuis la 12c si on utilise le script en ligne de commande, plutôt que l'upgrade par le script catupd.sql.
Lancer l'upgrade
cd $ORACLE_HOME/bin
./dbupgrade
[...]
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
SQL> startup
SQL> @catuppst.sql
SQL> @utlrp.sql
Valider les statistiques et lancer le second script postupgrade
SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
SQL>@/oracle/preupgrade/postupgrade_fixups.sql
Relancer la base en mode normal
SQL> shutdown immediate;
SQL> startup