close
Unix, Linux & Tips

Les tribulations d'un admin sys

Travail

Clonage d’une base de données

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 une base de données. En effet, cette opération peut être exécutée notamment sur des machines différentes, pour permettre notamment aux développeurs d’accéder à une base de production fonctionnelle. Le but de cet article sera donc d’expliquer une des méthodes pour effectuer un clonage rapide d’une base de données. Cette méthode peut être exécutée dans le cadre de tests de certaines instances, pour permettre la restauration d’une instance sur un autre serveur sans effectuer de renommage (une procédure d’exemple de renommage est détaillée sur la page suivante : Renommage).

Remarque :
Nous pouvons également effectuer un clonage de la base de données sur le même serveur, mais il faudrait procéder dans tous les cas à un renommage de l’instance, on parlera alors de duplication de la base de données. Cette méthode sera détaillée dans un futur article.

Pré-requis

Vérification de l’arborescence

Sur le système cible qui va servir de réception au clonage, il faut s’assurer que l’ensemble des répertoires nécessaire au bon fonctionnement de la base de données sont bien présents.

Remarque : Dans le cadre de notre exemple, nous considérerons ici l’arborescence suivante :

  • $ORACLE_HOME = /logiciels/oracle/oradb/11.2.0.m/ora
  • $HOME = /home/oracle
  • Les fichiers de la base de données seront stockés dans l’arborescence suivante : /appli/oracle/<SID>
  • Des liens seront crées depuis les fichiers init<SID>.ora, spfile<SID>.ora, etc. car ils ne seront pas situés dans $ORACLE_HOME.

Remarque :
Il faudra créer autant de dossiers oradataXX que sur la base source.

Copie des fichiers de configuration

Sur le 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 pfile récent se basant sur les informations contenues dans le spfile de la base de données,

Suite à la création de ce fichier, il faut l’éditer pour supprimer certains paramètres qui ont été rajoutés automatiquement par la base de données. Comme cela est précisé dans l’exemple ci-dessous, il faut supprimer les lignes de type <SID>.__xxxx, une fois cette suppression effectuée, copier le fichier init<SID>bis.ora vers le serveur cible.

Déplacer ensuite le fichier init<SID>bis.ora dans le répertoire adéquat (ici : /home/oracle/admin/<SID>/dbs) et le renommer en init<SID>.ora. Une fois, ces opérations effectuées, copier les fichiers .profile<SID> et orapw<SID> du serveur source vers le serveur cible et les positionner également dans l’arborescence suivante : /home/oracle/admin/<SID>/dbs. Ne pas oublier de faire pointer les liens depuis $ORACLE_HOME/dbs.

Remarque : Attention, parfois la directive local_listener est renseignée, il faut alors s’assurer que le machine est bien le serveur cible et non le serveur source.

Configuration du tnsnames.ora & listener.ora

Nous devons maintenant rajouter les informations des bases de données dans le fichier tnsnames.ora de nos deux environnements. Dans notre exemple, nous nommerons la base source : SOURCE et la base cible : CIBLE. Les informations doivent être identiques dans les deux fichiers.

Sur le serveur cible, il faut également renseigner le fichier listener.ora avec les informations de la base que nous allons cloner.

Pour terminer cette phase de pré-requis, nous devons recharger le listener sur les deux environnements :

Préparation du clonage

Maintenant que le paramétrage des fichiers de configuration de la base est effectué, nous allons vérifier les configuration RMAN de celle-ci, et préparer la base pour le clonage.

Configuration RMAN

Sous l’utilisateur oracle, effectuer les commandes suivantes, pour s’assurer que la configuration RMAN est conforme :

Remarque : Si la commande autobackup est à OFF, il faut activer l’option via les commandes suivantes :

Effectuer une sauvegarde du fichier de contrôle, via la commande suivante :

Normalisation des backups & archivelog

Sous l’utilisateur oracle, effectuer les commandes suivantes, pour supprimer les vieilles occurrences d’archivelog :

Exécution du clonage

Sous l’utilisateur oracle, exécuter les commandes suivantes, une fois que toutes les étapes de pré-requis ont été respectées.

La base de données cible est démarrée, nous pouvons lancer le clonage de la base source.

Contrôles

Vérification de la base de données

Le clonage ayant été effectué, nous devons maintenant vérifier que la nouvelle base de données est fonctionnelle. Pour se faire, se connecter avec l’utilisateur oracle, et effectuer les commandes suivantes :

Résultat : La base doit être en statut ouverte, démarrée, marquée comme instance primaire.

Résultat : La base doit être en mode archivelog, en lecture/ecriture, marquée comme instance primaire.

La requête précédente, précisant que la base de données est en mode achivelog, nous allons maintenant vérifier que le mode archivelog est fonctionnel via les commandes suivantes :

Nous forçons le changement de séquences, pour vérifier que le base effectue bien le changement.

Résultat : La base a bien incrémenté ses numéros de séquences, et a bien généré des fichiers d’archive dans le répertoire de destination.

Nous vérifions maintenant que les fichiers de trace (alert<SID>.log) sont dans le bon répertoire.

Recréation des fichiers de configuration

Bien que les fichiers de configurations aient été copiés lors du clonage, pour plus de sécurité, nous recréons le spfile<SID>.ora, ainsi que les liens nécessaires depuis $ORACLE_HOME.

Vérification des fichiers de données

La dernière étape de notre clonage, consiste à vérifier que les fichiers de données, ont bien été crées. Pour se faire, se connecter avec l’utilisateur oracle, puis effectuer les commandes suivantes :

Les opérations de vérifications sont terminées, la base de données cible a bien été clonée et, est dès à présent fonctionnelle.

Exécution des statistiques

Suite au clonage de la base de données, il s’avère important de passer le calcul des statistiques sur la base. Pour se faire, se connecter avec l’utilisateur oracle, puis effectuer les commandes suivantes :

Tags : clonedatabaseoracle
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.