close
Unix, Linux & Tips

Les tribulations d'un admin sys

Travail

Clonage & renommage rapide d’une BDD

Image par Andrew Martin de Pixabay

Dans le cadre du travail d’un administrateur de base de données, il est parfois utile de savoir cloner/renommer une base de données. En effet, cette opération peut être exécutée dans le cadre de tests de certaines instances, notamment sur la même machine sans pour autant arrêter la base déjà présente, pour permettre notamment aux développeurs d’accéder à une base de production fonctionnelle. Cette méthode peut s’apparenter à un clonage rapide de la base de données sans passer par l’outil RMAN. Nous verrons la méthode de clonage via RMAN au cours d’un autre article.

Principe de fonctionnement

Cette procédure de clonage rapide peut être utilisée pour migrer une base de données d’un serveur UNIX à un autre. En effet, le fait d’utiliser cette méthode est la méthode la plus rapide pour copier une base de données Oracle. Dans le cas présent, nous considérerons que nous effectuons le renommage sur la même machine.

Détail des étapes

  • ETAPE 1

Sur notre système source, se connecter sur une session SQL*PLUS en tant que sysdba, et effectuer la requête suivante dans le but de créer un fichier sql de génération de la base de données, lisible et interprétable pour un être humain.

Remarque :
Dans ce cas précis, la clause REUSE n’a de sens que si le fichier existe déjà et n’est absolument pas obligatoire. Toutefois, si effectivement, le fichier est présent, alors la directive de création sortira en erreur, et le fichier ne sera pas généré.
Remarque bis:
Si la commande AS ‘/tmp/backup_controlfile.sql’ n’est pas précisée, ce sera le chemin renseigné dans le paramètre user_dump_dest du fichier init<SID>.ora qui sera utilisé.

Le fichier généré doit ressembler à ceci :

Remarque :
Il est important de noter que le fichier généré, propose deux méthodes de création, avec RESETLOGS et sans RESETLOGS. Dans le cas présent, nous utiliserons le cas RESETLOGS.

  • ETAPE 2

Pour cette étape, rappelons que nous sommes sur la même machine, d’où l’arrêt de la base de données. Si vous êtes sur une machine différente, alors vous n’avez pas besoin d’arrêter la base de données source. Se connecter sur une session SQL*PLUS en tant que sysdba, et arrêter la base de données.

  • ETAPE 3

Cette étape consiste au déplacement des fichiers vers les nouveaux répertoires du serveur; vous pouvez également effectuer un renommage des fichiers si vous le souhaitez.

Remarque :
Lors de la copie des fichiers, les controlfiles ne doivent pas l’être. En effet, le script SQL généré gère automatiquement la recréation de ces fichiers.

  • ETAPE 4

Le déplacement des fichiers physique est maintenant terminé, nous devons mettre à jour le fichier généré lors de l’étape 1. Editez donc le fichier et changez le nom de l’ancienne base, par le nouveau nom d’instance dans toutes les occurrences du fichier.

  • ETAPE 5

Supprimer ensuite les instructions suivantes RECOVER DATABASE et ALTER DATABASE OPEN du fichier, et remplacer ALTER DATABASE OPEN par ALTER DATABASE OPEN RESETLOGS

  • ETAPE 6

Créer les répertoires nécessaires à la nouvelle base de données : bdump, cdump, udump.

  • ETAPE 7

Réaliser la copie de l’ancien fichier init.ora de la base de données vers le répertoire nouvellement crée.

  • ETAPE 8

Exécuter le script que nous avons modifié tout au long des différentes étape, ce qui aura pour effet de démarrer la base de données, puis de créer les controlfiles associés et ensuite démarrer la base de données.

N’oubliez pas de basculer la base de données en mode archivelog à la fin de la restauration (si cela est nécessaire).

Conclusion

Nous avons vu lors de cet article, la méthode la plus facile pour créer / cloner une base de données. Le clonage peut être réalisé de différentes manières, mais celle-ci constitue la plus rapide et la moins fastidieuse. Nous verrons lors de prochains articles comment cloner une base de données via l’outil RMAN. Ce qui nécessite moins d’opérations en termes de copies de fichiers et de manipulations de fichier, mais qui oblige à configurer les plateformes pour effectuer la copie.

Tags : databaseoraclerenommage
Emmanuel V.

The author Emmanuel V.

Leave a Response

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.