Zu Beginn dieses Beitrags möchte ich sagen, dass Sie nach Möglichkeit DBCA verwenden sollten, um Ihrer RAC-Datenbank eine neue Instanz hinzuzufügen. Die DBCA regelt alle Details für Sie. Es ist ein einfacher 6-seitiger Assistent und Ihre neue Instanz ist auf Ihrem neuen Knoten betriebsbereit.
Kürzlich wurde ich damit beauftragt, eine neue Instanz für unsere Produktionsdatenbanken hinzuzufügen, die auf unserem 3-Knoten-Cluster ausgeführt werden. Ich konnte die vierte Instanz auf dem vierten Knoten für 2 der 3 Datenbanken erstellen, die auf diesem Cluster ausgeführt werden. Als ich versuchte, die dritte Datenbank auf den vierten Knoten zu erweitern, erhielt ich eine Fehlermeldung, die mich darüber informierte, dass das Verzeichnis $ORACLE_HOME nicht auf allen Knoten gemeinsam genutzt wurde. Zunächst einmal muss das Verzeichnis $ORACLE_HOME nicht auf allen Knoten gemeinsam genutzt werden. Und dies funktionierte für die anderen beiden Datenbanken im selben Home-Verzeichnis. Ich muss noch herausfinden, warum es ein Problem mit dieser dritten Datenbank gibt. Nach zwei Wochen hatte meine Serviceanfrage zur Lösung des Problems praktisch keinen Fortschritt. Daher habe ich mich entschieden, die Instanzen manuell hinzuzufügen, da der Oracle-Support nicht die Hilfe bietet, die ich benötige. In meinem Kopf wusste ich, dass das manuelle Hinzufügen der Instanzen nicht so schwierig war, aber ich konnte nicht viele Informationen darüber finden, wie man es tatsächlich macht. Dieser Beitrag zeigt die Schritte zum manuellen Hinzufügen einer neuen Instanz zu Ihrer RAC-Datenbank.
1. Legen Sie instanzspezifische Parameter für Ihre SPFILE fest. Ich musste die folgenden Parameter für meine neue Instanz hinzufügen:
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. Einer der Parameter erfordert den Eintrag LISTENERS_ORCL4 in der Datei TNSNAMES.ORA. Machen Sie diesen Eintrag in der Datei und alle anderen Einträge, die Sie für diese neue Instanz benötigen.
3. Ich habe meine Spfile- und Passwortdatei in den gemeinsamen Speicher gestellt. Auf dem neuen Knoten muss ich einen Softlink zu diesen erstellen.
cd $ORACLE_HOME/dbs
ln -s /u01/app/oracle/oradata/orcl/data01/spfileorcl.ora spfileorcl4.ora
ln -s /u01/app/oracle/oradata/orcl/data01/orapwork orapwork4
4. Fügen Sie Online-Redo-Log-Gruppen hinzu.
Datenbank ändern Protokolldatei hinzufügen Thread 4 Gruppe 40
( '/u01/app/oracle/oradata/smp/redo01/redo40a.log',
'/u01/app/oracle/oradata/smp/redo01/ redo40b.log') Größe 52429312;
5. Fügen Sie Standby-Redo-Log-Dateien hinzu.
alter database add standby logfile thread 4
‘/u01/app/oracle/oradata/smp/redo01/smp_4srl400.f’ size 52429312;
6. Da ich eine Standby-Datenbank habe, muss ich Online-Redo-Logs und Standby-Redo-Logs auch in der Standby-Datenbank hinzufügen. Siehe meinen vorherigen Post.
7. Redo-Thread aktivieren.
alter database enable thread 4;
8. Erstellen Sie die neue Instanz in Grid Infrastructure
srvctl Instanz hinzufügen -d orcl -i orcl4 -n myhost04
9. Starten Sie die neue Instanz
srvctl start instance -d orcl -i orcl4
10. Überprüfen Sie auf dem neuen Knoten, ob SMON ausgeführt wird.
ps -ef|grep smon
11. Vergewissern Sie sich, dass die Instanz geöffnet ist.
select instance_number,instance_name,thread#,status from gv$instance;
12. Ändern Sie /etc/oratab auf dem neuen Knoten, um den Instanzeintrag zu enthalten
orcl4:/u01/app/oracle/product/11.2.0.2:N
13. Melden Sie sich auf dem neuen Knoten mit SQL*Plus bei der Instanz an, um sicherzustellen, dass Sie auf die Instanz zugreifen können.
14. Instanz mit GI überprüfen.
srvctl status database -d orcl
15. Die Instanz läuft jetzt auf dem neuen Knoten. Es bleibt nur noch, alle Datenbankdienste auf diesem neuen Knoten verfügbar oder bevorzugt zu machen, und Ihre Verbindungen können mit der Verwendung der neuen Instanz beginnen.
srvctl modify service -d orcl -s orcl_svc -n -i orcl1,orcl2,orcl3,orcl4
srvctl start service -d orcl-s orcl_svc -i orcl4
srvctl status service -d orcl
Das ist alles!