Oracle
 sql >> Base de données >  >> RDS >> Oracle

Installation de RAC pour une base de données avec des fichiers de données

Il n'y a pas si longtemps, j'avais besoin de mettre à niveau Oracle Clusterware et RDBMS de 11.1.0.7 à 11.2.0.2. J'ai des tonnes d'expérience avec le logiciel Oracle RDBMS, mais je soupçonne que je suis comme la plupart des DBA en ce sens que mon expérience Clusterware n'est pas au même niveau que mon expérience RDBMS. Ainsi, alors que je n'avais aucune crainte à propos de la mise à niveau du logiciel RDBMS, j'ai abordé la mise à niveau du Clusterware avec une certaine nervosité. Certes, ce malaise est né d'un moindre degré d'expérience avec le produit. Donc, avant d'essayer en production, j'ai testé, testé et testé autant que possible.
La mise à niveau de Clusterware s'est déroulée sans problème grâce à de nombreuses planifications et tests.

Après la mise à niveau, je réfléchissais à ce qui s'était bien passé et à ce qui s'était mal passé, et à ce que je pourrais faire différemment à l'avenir. Il m'est venu à l'esprit que j'aurais pu totalement gâcher la mise à niveau de Clusterware, anéantir le logiciel Clusterware et pouvoir encore installer Clusterware à partir de zéro et pouvoir faire fonctionner ma base de données RAC. Cet article montrera les étapes que j'ai suivies dans un environnement de test pour effectuer cette tâche. Donc, si vous vous retrouvez avec une mise à niveau ou une installation de Clusterware totalement foutue, il n'y a aucune crainte car tant que vous avez toujours vos fichiers de base de données, vous pourrez faire fonctionner les choses. Si votre mise à niveau de Clusterware a échoué, vous devrez corriger la cause première de l'échec avant de continuer. Donc, si vous aviez une mauvaise configuration d'interconnexion de cluster ou un stockage non valide pour vos disques de vote, vous devrez résoudre ces problèmes, puis vous pourrez suivre ces étapes.

J'ai une base de données valide avec tous mes fichiers de données dans un stockage partagé accessible par tous les nœuds du cluster. Mon test a deux nœuds pour le cluster. Il est également supposé que la base de données a été fermée proprement. Ce document suppose que le nom de la base de données est ORCL.

Remarque :Si votre base de données que vous ajoutez à RAC faisait déjà partie de RAC, vous pouvez ignorer les étapes 9 à 11 ci-dessous. Les étapes 9 à 11 sont requises si vous convertissez également la base de données d'une base de données à instance unique en une base de données Oracle RAC tout en l'ajoutant à Clusterware.

Étapes
1. Effectuez une sauvegarde à froid des fichiers de données de votre base de données. En cas de problème, vous pouvez toujours restaurer à partir de la sauvegarde en copiant simplement les fichiers à partir du support.
2. Assurez-vous que les nœuds sont nettoyés depuis l'installation/la mise à niveau de Clusterware. Reportez-vous à la note Metalink 239998.1 pour des instructions détaillées si nécessaire.
3. Installez correctement Oracle Clusterware. Vous devriez avoir résolu les problèmes à l'origine de l'échec de cette étape.
a. Vérifiez que le cluster est opérationnel.
i. $CRS_HOME/bin/crsctl status server
1. Tous les nœuds du cluster doivent être EN LIGNE.
4. Installez Oracle RDBMS sur le cluster.
a. L'OUI doit détecter le Clusterware et proposer d'effectuer une installation RAC.
5. Lancez le DBCA pour créer une base de données shell. Nous utiliserons la DBCA pour tout configurer dans CRS pour nous.
a. Choisissez les options pour créer une base de données RAC.
b. Utilisez le même nom que votre base de données existante.
c. Créez la base de données shell sur tous les nœuds du cluster.
d. Utilisez un emplacement commun pour les fichiers de base de données, mais n'écrasez pas vos fichiers de données existants.
6. Arrêtez la base de données shell
a. srvctl stop database –d orcl
7. Configurez votre SPFILE
a. Si vous avez le SPFILE de votre ancienne base de données :
i. Placez le fichier sur un disque partagé.
ii. Mettez à jour $ORACLE_HOME/dbs/initorcl.ora pour pointer vers l'emplacement SPFILE correct. Faites ceci sur tous les nœuds
b. Si vous n'avez pas de SPFILE, créez un PFILE à partir de zéro, puis utilisez la commande CREATE SPFILE FROM PFILE pour créer un SPFILE.
i. Assurez-vous que le paramètre CONTROL_FILES pointe vers l'emplacement correct, et non vers les fichiers de contrôle de la base de données shell.
c. (Facultatif) Si vous disposez d'un fichier de mots de passe, copiez-le dans le stockage partagé, puis mettez à jour le lien symbolique dans $ORACLE_HOME/dbs (sur tous les nœuds) pour qu'il pointe vers le fichier de mots de passe. Si vous n'avez pas de fichier de mots de passe, vous pouvez en créer un ultérieurement si vous le souhaitez.
8. Mettre à jour le CRS avec l'emplacement SPFILE (en tant que racine)
a. cd $CRS_HOME/bin
b. ./srvctl config database –d orcl
i. La sortie doit vous indiquer que le SPFILE se trouve à l'emplacement de la base de données shell
c. ./srvctl modifier la base de données –d orcl –p /chemin_correct/spfileorcl.ora
i. Effectuez l'étape 8b pour vérifier que le changement a eu lieu.
ii. Vérifiez également la modification sur l'autre nœud. Vous ne devriez avoir besoin d'exécuter cette commande de modification qu'une seule fois pour tous les nœuds.
9. Modifier le contenu du SPFILE.
a. sqlplus /nolog
b. connecter / en tant que sysdba
c. créer pfile='/home/oracle/pfile.txt' à partir de spfile='/path_to_spfile/spfileorcl.ora';
d. Ouvrez le pfile dans un éditeur de texte et apportez les modifications suivantes :
i. Ajouter :
1. *.cluster_database=true
2. *.cluster_database_instances=2
3. orcl1.instance_number=1
4. orcl2.instance_number=2
5. orcl1.thread=1
6. orcl2.thread=2
ii. Remplacez le paramètre *.undo_tablespace par orcl1.undo_tablespace
e. Utilisez le pfile pour changer le spfile
i. créer spfile=’/path_to_spfile/spfileorcl.ora’ à partir de pfile=’/home/oracle/pfile.txt’ ;
10. Créez un nouveau tablespace UNDO pour l'autre instance.
a. exporter ORACLE_SID=orcl1
b. sqlplus / as sysdba
c. démarrage
d. créer undo tablespace undotbs2 datafile '/path/undotbs02.dbf' taille 30m ;
e. alter system set undo_tablespace=undotbs2 scope=spfile sid=’orcl2′ ;
11. Créer des journaux redo pour le nouveau thread
a. alter database add logfile thread 2 group 10 '/path/redo10.log' size 50m;
b. alter database add logfile thread 2 group 11 '/path/redo11.log' size 50m;
c. alter database add logfile thread 2 group 12 '/path/redo12.log' size 50m;
d. alter database enable public thread 2 ;
12. srvctl démarrer la base de données –d orcl

À ce stade, vous avez maintenant installé Clusterware à partir de rien et y avez ajouté une base de données existante. Maintenant que j'ai une méthode éprouvée pour prendre n'importe quel ensemble de fichiers de base de données et les ajouter à n'importe quelle installation de clusterware, j'ai réduit mon niveau de nervosité lors de l'exécution de mises à niveau de Clusterware sur des systèmes de production. Même si je fais un gâchis total, je peux supprimer Clusterware, le réinstaller, puis ajouter la base de données à Clusterware et faire en sorte que ma base de données RAC soit opérationnelle en un rien de temps.