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

ORA-01618

Dies ist mein 100. Beitrag in diesem Blog!!!

Ich versuche, ein Problem zu duplizieren, bei dem ich die Threads 4, 5 und 6 in meiner primären und meine Standby-Threads 1 und 2 hat. Als ich umschaltete, war alles in Ordnung, aber ich konnte nicht zurückwechseln, weil die alte primäre, Jetzt erwartet der Standby-Modus eine Wiederholung von Thread 4, der in meinem neuen primären, dem alten Standby-Modus nicht vorhanden ist. Für meine Tests habe ich einen primären 2-Knoten-RAC und einen 2-Knoten-RAC-Standby. Wie vorauszusehen war, haben beide die Threads 1 und 2. Also habe ich versucht, den primären Thread auf die Threads 3 und 4 umzustellen, indem ich einfach den THREADS-Parameter in der SPFILE geändert habe. Aber beim Start erhielt ich:

PRCR-1079 : Failed to start resource ora.resp.db
CRS-5017: The resource action "ora.resp.db start" encountered the following error:
ORA-01618: redo thread 3 is not enabled - cannot mount
. For details refer to "(:CLSN00107:)" in "/u01/app/crs11.2.0.3/log/myhost01/agent/crsd/oraagent_oracle/oraagent_oracle.log".
CRS-2674: Start of 'ora.resp.db' on 'myhost01' failed
CRS-2632: There are no more servers to try to place resource 'ora.resp.db' on that would satisfy its placement policy
CRS-5017: The resource action "ora.resp.db start" encountered the following error:
ORA-01618: redo thread 4 is not enabled - cannot mount
. For details refer to "(:CLSN00107:)" in "/u01/app/crs11.2.0.3/log/myhost02/agent/crsd/oraagent_oracle/oraagent_oracle.log".
CRS-2674: Start of 'ora.resp.db' on 'myhost02' failed

Dies ist keine einfache Parameteränderung. Um dies zu umgehen, müssen wir zuerst Online-Redo-Logs erstellen, um die neuen Threads zu unterstützen:

SQL> alter database add logfile thread 3 group 30
  2  '/oracle_data/oradata/resp/redo30.log' size 52429312;
Database altered.
SQL> alter database add logfile thread 3 group 31
  2  '/oracle_data/oradata/resp/redo31.log' size 52429312;
Database altered.
SQL> alter database add logfile thread 4 group 40
  2  '/oracle_data/oradata/resp/redo40.log' size 52429312;
Database altered.
SQL> alter database add logfile thread 4 group 41
  2  '/oracle_data/oradata/resp/redo41.log' size 52429312;
Database altered.

Als nächstes aktivieren wir die Threads.

SQL> alter database enable public thread 3;
Database altered.
SQL> alter database enable public thread 4;
Database altered.

Lastly, we change the initialization parameters and bounce the instance:
SQL> alter system set thread=3 sid='resp1' scope=spfile;

System altered.

SQL> alter system set thread=4 sid='resp2' scope=spfile;

System altered.
Bouncen Sie dann die Instanzen mit srvctl. Nachdem alles gesichert war, habe ich die Threads 1 und 2 deaktiviert.
SQL> alter database disable thread 1;
Database altered.
SQL> alter database disable thread 2;
Database altered.