Pour commencer cet article, je dirai que si possible, vous devez utiliser le DBCA pour ajouter une nouvelle instance à votre base de données RAC. La DBCA s'occupera de tous les détails pour vous. Il s'agit d'un simple assistant de 6 pages et votre nouvelle instance est opérationnelle sur votre nouveau nœud.
Récemment, j'ai été chargé d'ajouter une nouvelle instance pour nos bases de données de production exécutées sur notre cluster à 3 nœuds. J'ai pu créer la quatrième instance sur le quatrième nœud pour 2 des 3 bases de données exécutées sur ce cluster. Lorsque j'ai tenté d'étendre la troisième base de données au quatrième nœud, j'ai reçu une erreur m'informant que le répertoire $ORACLE_HOME n'était pas partagé sur tous les nœuds. Eh bien, pour commencer, le répertoire $ORACLE_HOME n'a pas besoin d'être partagé sur tous les nœuds. Et cela a fonctionné pour les deux autres bases de données dans le même répertoire personnel. Je n'ai pas encore compris pourquoi il y a un problème avec cette troisième base de données. Après deux semaines, ma demande de service pour résoudre le problème n'avait pratiquement aucun progrès. J'ai donc décidé d'ajouter manuellement les instances car Oracle Support ne fournit pas l'aide dont j'ai besoin. Dans mon esprit, je savais que l'ajout manuel des instances n'était pas si difficile, mais je n'ai pas trouvé beaucoup d'informations sur la façon de le faire. Cet article montre les étapes pour ajouter manuellement une nouvelle instance à votre base de données RAC.
1. Définissez des paramètres spécifiques à l'instance dans votre SPFILE. J'ai dû ajouter les paramètres suivants pour ma nouvelle instance :
alter system set instance_number=4 scope=spfile sid=’orcl4′ ;
alter system set local_listener='LISTENER_ORCL4′ scope=spfile sid='orcl4′ ;
alter system set log_archive_format='%t_%s_%r.dbf' scope=spfile sid='orcl4′;
alter system set log_archive_trace=0 scope=spfile sid=’orcl4′ ;
alter system set thread=4 scope=spfile sid=’orcl4′ ;
alter system set undo_tablespace='UNDOTBS4' scope=spfile sid='orcl4';
2. L'un des paramètres requiert l'entrée LISTENERS_ORCL4 dans le fichier TNSNAMES.ORA. Faites cette entrée dans le fichier et toutes les autres entrées dont vous avez besoin pour cette nouvelle instance.
3. Je place mon fichier spfile et mon fichier de mot de passe sur un stockage partagé. Sur le nouveau nœud, j'ai besoin d'un lien logiciel vers ceux-ci.
cd $ORACLE_HOME/dbs
ln -s /u01/app/oracle/oradata/orcl/data01/spfileorcl.ora spfileorcl4.ora
ln -s /u01/app/oracle/oradata/orcl/data01/orapworcl orapworcl4
4. Ajoutez des groupes de journaux redo en ligne.
alter database add logfile thread 4 group 40
( '/u01/app/oracle/oradata/smp/redo01/redo40a.log',
'/u01/app/oracle/oradata/smp/redo01/ redo40b.log') taille 52429312;
5. Ajoutez des fichiers de journalisation de secours.
alter database add standby logfile thread 4
‘/u01/app/oracle/oradata/smp/redo01/smp_4srl400.f’ size 52429312;
6. Étant donné que j'ai une base de données de secours, je dois également ajouter des journaux de rétablissement en ligne et des journaux de rétablissement de secours dans la base de données de secours. Voir mon post précédent.
7. Activez le fil de rétablissement.
modifier la base de données activer le thread 4 ;
8. Créez la nouvelle instance dans Grid Infrastructure
srvctl ajouter une instance -d orcl -i orcl4 -n monhôte04
9. Démarrez la nouvelle instance
srvctl start instance -d orcl -i orcl4
10. Sur le nouveau nœud, vérifiez que SMON est en cours d'exécution.
ps -ef|grep smon
11. Vérifiez que l'instance est ouverte.
select instance_number,instance_name,thread#,status from gv$instance ;
12. Modifiez /etc/oratab sur le nouveau nœud pour contenir l'entrée d'instance
orcl4:/u01/app/oracle/product/11.2.0.2:N
13. Sur le nouveau nœud, connectez-vous à l'instance avec SQL*Plus pour vous assurer que vous pouvez accéder à l'instance.
14. Vérifiez l'instance avec GI.
base de données d'état srvctl -d orcl
15. L'instance est maintenant opérationnelle sur le nouveau nœud. Il ne reste plus qu'à rendre tous les services de base de données disponibles ou préférés sur ce nouveau nœud et vos connexions peuvent commencer à utiliser la nouvelle instance.
srvctl modifier le service -d orcl -s orcl_svc -n -i orcl1,orcl2,orcl3,orcl4
srvctl démarrer le service -d orcl-s orcl_svc -i orcl4
service d'état srvctl -d orcl
C'est tout ce qu'il y a à faire !