J'ai envie de partager avec vous, l'une de mes expériences de migration ORACLE. L'objectif étant de migrer une base oracle de Windows vers linux.
Cas d'étude :
Cas d'étude :
Système cible : Linux 5u3 32bit
Système source : Win 2003 32bit
Avant de commencer, vérifier le format Endian de votre système source.
Prochaine étape, récupérer le nom et le type de la plateforme cible.
Avant de vous lancez dans l'aventure, vérifier la possibilité de migration de la base à l’aide du package dbms_tdb.check_db.
Si le package renvoi la valeur False, la base de données ne peut être transportée et dans ce cas vous devez utiliser une autre méthode (e.g. TRANSPORTABLE TABLESPACE) à la place de la conversion de base moyennant RMAN.
Ensuite, vérifier l’existence et le format des tables externs, directory et BFILE, en utilisant le package dbms_tdb.check_external.
cette ensemble de données externes seront à recréer après migration, car rman ne sais pas les transporter.
cette ensemble de données externes seront à recréer après migration, car rman ne sais pas les transporter.
Notre que le script transport.sql, servira plus tard pour lancer la création de la base au niveau du système cible.
Générer le fichier d’initialisation de la base.
$dir c:\converted
Puis, transférer les fichiers vers le système cible via les outils système (cp, ntfs, ftp …)
Créer un dossier au niveau de serveur cible "linux", pour y mettre l’ensemble des fichiers générés.
Créer les dossiers d’administration oracle, dumps et flash_recovery. Nécessaires pour la création de la base cible.
cd $ORACLE_HOME
mkdir admin
cd admin
mkdir lindb
cd lindb
mkdir adump bdump cdump udump
cd ../../
mkdir flash_recovery_area
mkdir oradata
mkdir lindb
copier l’ensemble des fichiers de données “*.dbf”, vers le dossier créé.
cp c:\converted\*.dbf $ORACLE_HOME/oradata/lindb/
Il ne vous reste plusn qu’à adapter le fichier d’initialisation pfile.ora ainsi que le script transport.sql à votre nouvel environnement pour refléter la structure de la nouvelle arborescence.
Amusez-vous !!!
Lancer le script transport.sql depuis une session sqlplus
$export ORACLE_SID=lindb
Sqlplus / as sysdba
SQL>@c:\coverted\transport.sql
une fois la création terminée, fait une vérification final
SQL>select COUNT(*) "ERRORS DURING RECOMPILATION" from utl_recomp_errors;
ERRORS DURING RECOMPILATION
---------------------------
0
Et voilà,
SQL> select name, open_mode from v$database;
NAME OPEN_MODE
--------- ----------
LINDB READ WRITE
Enjoy !!!
A suivre, opérations d'après migration (cas linux vers windows)....
Aucun commentaire:
Enregistrer un commentaire