Je me suis rendu compte il y a quelques jours qu’il ne restait que quelques Go de disponible dans le disque de ma machine virtuelle Oracle Linux et que j’allais avoir besoin de plus d’espace pour stocker des données supplémentaires. J’ai donc décidé d’ajouter un nouveau disque à la machine virtuelle (cliquez sur le lien pour voir comment je l’ai fait) et de déplacer les fichiers de la base de données Oracle sur le nouveau disque. Voyons donc comment je l’ai fait dans ce nouveau tutoriel.

J’ai d’abord exécuté la commande “select name from v$datafile;” pour identifier les noms et les emplacements des fichiers de la base de données. Comme vous pouvez le voir dans la capture d’écran suivante, la plupart des fichiers se trouvaient dans le répertoire “/opt/oracle/oradata/ORCLCDB/” mais certains d’entre eux se trouvaient dans le répertoire “/opt/oracle/product/19c/dbhome_1/dbs/“.

L’idée était de déplacer ces fichiers vers le nouveau disque virtuel. Je devais donc arrêter l’instance Oracle afin de pouvoir déplacer les fichiers. J’ai utilisé la commande “shutdown immediate” pour fermer et démonter la base de données.

Pour simplifier, je voulais avoir tous les fichiers de base de données au même endroit, j’ai donc déplacé les deux fichiers qui se trouvaient initialement dans le répertoire “/opt/oracle/product/19c/dbhome_1/dbs/” vers le répertoire “/opt/oracle/oradata/ORCLCDB/” à l’aide de la commande shell “mv“.

Tous les fichiers de données se trouvaient maintenant dans le répertoire “/opt/oracle/oradata/ORCLCDB/“. J’ai donc utilisé la commande shell “rsync -a /opt/oracle/oradata/ /mnt/data/oradata/” pour copier le contenu du répertoire “/opt/oracle/oradata/” sur le nouveau disque monté en tant que “/mnt/data/“.

J’ai décidé de renommer le répertoire d’origine “/opt/oracle/oradata” en “/opt/oracle/oradata.old” afin d’avoir temporairement une copie de sauvegarde des fichiers de la base de données en cas de problème.

J’ai créé un nouveau lien symbolique à partir du répertoire “/mnt/data/oradata” vers “/opt/oracle/oradata” à l’aide de la commande shell “ln -s /mnt/data/oradata /opt/oracle/oradata“. Cela permettrait de ne pas avoir à changer les noms de la plupart des fichiers de données de la base de données. J’ai vérifié le résultat avec la commande shell “ls -l /opt/oracle”.

Je suis retourné à l’interface de ligne de commande sqlplus et j’ai redémarré l’instance oracle à l’aide de la commande “startup mount”.

J’ai renommé les deux fichiers qui se trouvaient à l’origine dans le répertoire “/opt/oracle/product/19c/dbhome_1/dbs/” afin d’utiliser leur nouvel emplacement à l’aide de la commande sqlplus “alter database rename file“.

Puis j’ai ouvert la base de données à l’aide de la commande sqlplus “alter database open”.

J’ai décidé de tester si tout allait bien en exécutant une instruction SELECT pour l’une des tables créées lors de la configuration d’OAS (stockée dans le fichier de données BI_biplatform.dbf) :

Et tout s’est bien passé. Je pouvais donc supprimer la copie de sauvegarde “/opt/oracle/oradata.old” à l’aide de la commande shell “rm -rf /opt/oracle/oradata.old/”.

Après cela, j’ai examiné l’espace disponible sur les disques virtuels à l’aide de la commande shell “df -m“.

Le disque d’origine disposait désormais d’un peu moins de 8 Go tandis que le nouveau disque disposait de plus de 31 Go. J’avais dorénavant beaucoup d’espace pour stocker mes données BI !
Clause de non-responsabilité
Cette page Comment déplacer les fichiers de base de données Oracle vers un nouvel emplacement a été initialement publiée sur MyBIJourney