sql >> Database >  >> RDS >> Oracle

ORA-01618

Dit is mijn 100e bericht op deze blog!!!

Ik probeer een probleem te dupliceren waarbij ik threads 4, 5 en 6 heb in mijn primaire en mijn standby heeft threads 1 en 2. Toen ik overschakelde, was alles in orde, maar ik kon niet terugschakelen omdat de oude primaire, nu verwacht de standby opnieuw van thread 4 die niet bestaat in mijn nieuwe primaire, de oude standby. Voor mijn testen heb ik een primaire RAC met 2 knooppunten en een RAC-standby met 2 knooppunten. Zoals te verwachten is, hebben deze beide threads 1 en 2. Dus probeerde ik de primaire naar thread 3 en 4 te schakelen door simpelweg de THREADS-parameter in de SPFILE te wijzigen. Maar bij het opstarten ontving ik:

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

Dit is geen eenvoudige parameterwijziging. Om dit te omzeilen, moeten we eerst online redo-logs maken om de nieuwe threads te ondersteunen:

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.

Vervolgens schakelen we de threads in.

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.
Bounce vervolgens de instanties met srvctl. Toen alles weer up-to-date was, heb ik threads 1 en 2 uitgeschakeld.
SQL> alter database disable thread 1;
Database altered.
SQL> alter database disable thread 2;
Database altered.

  1. Oracle vindt een beperking

  2. Kan ik een weergave maken met een parameter in MySQL?

  3. Ruby gem mysql2 installatie mislukt

  4. Verbinding maken met Postgres via Node.js