Cloner un logiciel de base de données 11g Release 2 en Cluster

Vous trouverez, parmi mes articles, des syntaxes de clone.pl pour des bases de données non-RAC en 10g et 11gR2 et la syntaxe pour une base de données 10g en RAC. La version 11g Release 2 offre de nouvelles options pour changer les groupes DBA, OPER et ASMDBA. Dans cet article, vous trouverez un exemple d’utilisation de cette nouvelle syntaxe.

Si vous ne changez aucun des groupes, la procédure clone.pl ne nécessite toujours que les paramètres ORACLE_HOME, ORACLE_BASE et ORACLE_HOME_NAME ou -defaultHomeName. Pour en savoir plus, reportez-vous à la section « 8 Cloning Oracle RAC to Nodes in a New Cluster » de la documentation

Préparer groupes et utilisateur

On supposera que les groupes asmdba et oinstall sont déjà créés pour un autre ORACLE_HOME qu’on veut cloner sur le même serveur; pour commencer, voici un exemple de commandes pour créer un nouveau groupe et utilisateur sous linux :

groupadd clonedba
useradd -g oinstall -G clonedba,asmdba
-s /bin/bash -d /home/oraclone -m oraclone
passwd oraclone

Pour une installation RAC sur plusieurs noeuds, vous devrez créer une équivalence SSH; dans ce cas, vous devez positionner un mot de passe sur l’utilisateur pour autoriser les connexions.

Copier le ORACLE_HOME

Voici un script pour copier un ORACLE_HOME existant depuis un autre utilisateur :

mkdir -p /u01/app/oraclone/product/11.2.0
chown oraclone:clonedba /u01/app/oraclone
chmod 770 /u01/app/oraclone
cp -pR /u01/product/oracle/product/11.2.0/db_1
/u01/product/oraclone/product/11.2.0/db_1
chown -R oraclone:oinstall /u01/product/oraclone/product

Lancer la commande clone.pl en cluster

Il ne vous reste plus qu’à lancer la commande clone.pl comme ci-dessous :

su - oraclone
export ORACLE_BASE=/u01/app/oraclone
export ORACLE_HOME=/u01/app/oraclone/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH

cd $ORACLE_HOME/clone/bin
export THISNODE=`hostname`
echo $THISNODE

perl clone.pl ORACLE_HOME=$ORACLE_HOME
ORACLE_BASE=$ORACLE_BASE ORACLE_HOME_NAME=ORA112CLONE_Home1
OSDBA_GROUP=clonedba OSOPER_GROUP=clonedba OSASM_GROUP=asmdba
-O'CLUSTER_NODES={$THISNODE}' -O'LOCAL_NODE=$THISNODE'

Si vous voulez cloner le ORACLE_HOME sur plusieurs serveurs, changez le contenu de CLUSTER_NODES par la liste des noeuds du cluster. Il ne vous reste plus ensuite qu’à lancer la commande root.sh

Note:
Pour arriver au même résultat en 10.2 ou 11.1, il faut supprimer $ORACLE_HOME/rdbms/lib/config.o et modifier le contenu de $ORACLE_HOME/rdbms/lib/config.c avant de lancer la commande clone.pl. Vous noterez qu’il y a un bug sur HP-UX en 11.2.0.1 et qu’il faut toujours supprimer config.o avant de lancer la commande clone.pl