Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Installieren von RAC für eine Datenbank mit Datendateien

Vor nicht allzu langer Zeit musste ich Oracle Clusterware und RDBMS von 11.1.0.7 auf 11.2.0.2 aktualisieren. Ich habe jede Menge Erfahrung mit der Oracle RDBMS-Software, aber ich vermute, dass ich wie die meisten DBAs darin bin, dass meine Clusterware-Erfahrung nicht auf dem gleichen Niveau ist wie meine RDBMS-Erfahrung. Während ich also keine Bedenken hatte, die RDBMS-Software zu aktualisieren, ging ich das Clusterware-Upgrade mit einer gewissen Nervosität an. Zugegebenermaßen entstand dieses Unbehagen aus einer geringeren Erfahrung mit dem Produkt. Bevor ich mich also an die Produktion machte, testete, testete und testete ich so viel ich konnte.
Das Upgrade von Clusterware verlief dank vieler Planungen und Tests reibungslos.

Nach dem Upgrade habe ich darüber nachgedacht, was richtig und was falsch gelaufen ist und was ich in Zukunft anders machen könnte. Mir kam der Gedanke, dass ich das Clusterware-Upgrade völlig vermasseln, die Clusterware-Software wegblasen und trotzdem Clusterware von Grund auf neu installieren und meine RAC-Datenbank hätte zum Laufen bringen können. Dieser Beitrag zeigt die Schritte, die ich in einer Testumgebung unternommen habe, um diese Aufgabe auszuführen. Wenn Sie sich also mit einem völlig vermasselten Upgrade oder einer Installation von Clusterware wiederfinden, brauchen Sie sich keine Sorgen zu machen, denn solange Sie noch Ihre Datenbankdateien haben, können Sie die Dinge zum Laufen bringen. Wenn Ihr Clusterware-Upgrade fehlgeschlagen ist, müssen Sie die Grundursache des Fehlers beheben, bevor Sie fortfahren können. Wenn Sie also eine fehlerhafte Cluster-Interconnect-Konfiguration oder ungültigen Speicherplatz für Ihre Stimmdatenträger hatten, müssen Sie diese Probleme beheben und können dann diesen Schritten folgen.

Ich habe eine gültige Datenbank mit allen meinen Datendateien im gemeinsam genutzten Speicher, auf die alle Knoten im Cluster zugreifen können. Mein Test hat zwei Knoten für den Cluster. Es wird auch davon ausgegangen, dass die Datenbank sauber heruntergefahren wurde. In diesem Dokument wird davon ausgegangen, dass der Datenbankname ORCL ist.

Hinweis:Wenn Ihre Datenbank, die Sie zu RAC hinzufügen, bereits Teil von RAC war, können Sie die Schritte 9-11 unten überspringen. Die Schritte 9-11 sind erforderlich, wenn Sie die Datenbank auch von einer Einzelinstanz-Datenbank in eine Oracle RAC-Datenbank konvertieren, während Sie sie zu Clusterware hinzufügen.

Schritte
1. Erstellen Sie eine Cold-Sicherung Ihrer Datenbankdatendateien. Falls etwas passiert, können Sie jederzeit von der Sicherung wiederherstellen, indem Sie einfach die Dateien vom Medium kopieren.
2. Stellen Sie sicher, dass die Knoten von der Clusterware-Installation/-Aktualisierung bereinigt wurden. Detaillierte Anweisungen finden Sie bei Bedarf im Metalink-Hinweis 239998.1.
3. Installieren Sie Oracle Clusterware korrekt. Sie sollten die Probleme behoben haben, die dazu geführt haben, dass dieser Schritt überhaupt fehlgeschlagen ist.
a. Stellen Sie sicher, dass der Cluster betriebsbereit ist.
i. $CRS_HOME/bin/crsctl status server
1. Alle Knoten im Cluster sollten ONLINE sein.
4. Installieren Sie Oracle RDBMS auf dem Cluster.
a. Die OUI sollte die Clusterware erkennen und anbieten, eine RAC-Installation durchzuführen.
5. Starten Sie den DBCA, um eine Shell-Datenbank zu erstellen. Wir verwenden die DBCA, um alles in CRS für uns einzurichten.
a. Wählen Sie die Optionen zum Erstellen einer RAC-Datenbank.
b. Verwenden Sie den gleichen Namen wie Ihre bestehende Datenbank.
c. Erstellen Sie die Shell-Datenbank auf allen Knoten im Cluster.
d. Verwenden Sie einen gemeinsamen Speicherort für die Datenbankdateien, aber überschreiben Sie nicht Ihre vorhandenen Datendateien.
6. Beenden Sie die Shell-Datenbank
a. srvctl stop database –d orcl
7. Richten Sie Ihr SPFILE ein
a. Wenn Sie die SPFILE Ihrer alten Datenbank haben:
i. Platzieren Sie die Datei auf einem freigegebenen Datenträger.
ii. Aktualisieren Sie $ORACLE_HOME/dbs/initorcl.ora so, dass es auf den richtigen SPFILE-Speicherort verweist. Tun Sie dies auf allen Knoten
b. Wenn Sie keine SPFILE haben, erstellen Sie eine neue PFILE und verwenden Sie dann den Befehl CREATE SPFILE FROM PFILE, um eine SPFILE zu erstellen.
i. Stellen Sie sicher, dass der Parameter CONTROL_FILES auf den richtigen Speicherort zeigt, nicht auf die Steuerdateien der Shell-Datenbank.
c. (Optional) Wenn Sie eine Kennwortdatei haben, kopieren Sie sie in den gemeinsam genutzten Speicher und aktualisieren Sie dann den Softlink in $ORACLE_HOME/dbs (auf allen Knoten), sodass er auf die Kennwortdatei verweist. Wenn Sie keine Passwortdatei haben, können Sie bei Bedarf später eine erstellen.
8. CRS mit SPFILE-Speicherort aktualisieren (als root)
a. cd $CRS_HOME/bin
b. ./srvctl Konfigurationsdatenbank –d orcl
i. Die Ausgabe sollte Ihnen mitteilen, dass sich die SPFILE am Speicherort der Shell-Datenbank befindet
c. ./srvctl Datenbank ändern –d orcl –p /korrekter_Pfad/spfileorcl.ora
i. Führen Sie Schritt 8b aus, um zu überprüfen, ob die Änderung stattgefunden hat.
ii. Überprüfen Sie die Änderung auch auf dem anderen Knoten. Sie sollten diesen Änderungsbefehl nur einmal für alle Knoten ausführen müssen.
9. Ändern Sie den Inhalt der SPFILE.
a. sqlplus /nolog
b. verbinden / als sysdba
c. pfile=’/home/oracle/pfile.txt’ aus spfile=’/path_to_spfile/spfileorcl.ora’ erstellen;
d. Öffnen Sie die P-Datei in einem Texteditor und nehmen Sie die folgenden Änderungen vor:
i. Hinzufügen:
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. Ändern Sie den Parameter *.undo_tablespace in orcl1.undo_tablespace
e. Verwenden Sie das pfile, um das spfile zu ändern
i. erstelle spfile=’/path_to_spfile/spfileorcl.ora’ aus pfile=’/home/oracle/pfile.txt’;
10. Erstellen Sie einen neuen UNDO-Tablespace für die andere Instanz.
a. export ORACLE_SID=orcl1
b. sqlplus / als sysdba
c. Start
d. Undo Tablespace erstellen undotbs2 Datendatei ‘/path/undotbs02.dbf’ Größe 30m;
e. alter system set undo_tablespace=undotbs2 scope=spfile sid=’orcl2′;
11. Redo-Logs für den neuen Thread erstellen
a. Datenbank ändern Protokolldatei hinzufügen Thread 2 Gruppe 10 ‘/path/redo10.log’ Größe 50m;
b. Datenbank ändern Protokolldatei hinzufügen Thread 2 Gruppe 11 ‘/path/redo11.log’ Größe 50m;
c. Datenbank ändern Protokolldatei hinzufügen Thread 2 Gruppe 12 ‘/path/redo12.log’ Größe 50m;
d. alter database enable öffentlichen Thread 2;
12. srvctl start database –d orcl

An dieser Stelle haben Sie Clusterware nun von Grund auf neu installiert und eine vorhandene Datenbank hinzugefügt. Jetzt, da ich eine bewährte Methode habe, beliebige Sätze von Datenbankdateien zu jeder Clusterware-Installation hinzuzufügen, habe ich meine Nervosität gesenkt, wenn ich Clusterware-Upgrades auf Produktionssystemen durchführe. Selbst wenn ich alles durcheinander bringe, kann ich Clusterware wegblasen, neu installieren und dann die Datenbank zu Clusterware hinzufügen und meine RAC-Datenbank im Handumdrehen zum Laufen bringen.