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ètresORACLE_HOME
,ORACLE_BASE
etORACLE_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 commandeclone.pl
. Vous noterez qu’il y a un bug sur HP-UX en 11.2.0.1 et qu’il faut toujours supprimerconfig.o
avant de lancer la commandeclone.pl