sql >> Databasteknik >  >> RDS >> Oracle

hur man återställer standby-databas från en saknad arkivlogg

En fysisk standby-databas är beroende av den kontinuerliga tillämpningen av arkivloggar från en primär databas för att vara synkroniserad med den. I Oracle Database-versioner före 10g i händelse av att en arkivlogg försvann eller korrupt, var du tvungen att bygga om standby-databasen från början. Från 10g kan du använda en inkrementell säkerhetskopia från SCN och återställa standby-läget med densamma för att kompensera för de saknade arkivloggarna. I detta kommer vi att se hur man återställer standby-databasen från en saknad arkivlogg

Så här är stegen för hur man återställer standby-databas från en saknad arkivlogg

Steg 1:

Kontrollera aktuell SCN

i standbydatabasen
sqlplus "/ as sysdba"SQL>ställ numwidth 30;SQL>välj aktuell_scn från v$databasen;CURRENT_SCN------6746747647647

Steg 2 :

På den primära databasen skapa den nödvändiga inkrementella säkerhetskopian från ovanstående SCN

rman target /RMAN> {allocate channel c1 type disk; 

Vi kan använda parallella arbetare för att påskynda säkerhetskopieringen om databasen har genererat många förändringar

kör{allokera kanal d1 typ disk; allokera kanal d2 typ disk; allokera kanal d3 typ disk; allokera kanal d4 typ disk; allokera kanal d5 typ disk; allokera kanal d6 typ disk; allokera kanal d7 typ disk; allokera kanal d8 typ disk; allokera kanal d9 typ disk; allokera kanal d10 typ disk; BACKUP INCREMENTAL FRÅN SCN 6746747647647 DATABASFORMAT /tmp/inc_standby_%U';}

Steg 3:

Avbryt hanterad återställning i standbydatabasen

sqlplus "/ as sysdba"SQL>alter databas återställning hanterad standby databas avbryt; Media återställning slutförd.

Steg 4:

  • scp säkerhetskopieringsfilerna till standby-servern till /tmp-mappen.
  • Katalogisera de inkrementella säkerhetskopieringsfilerna i standbydatabasen
rman target /RMAN> KATALOG BÖRJA MED '/tmp/'; söker efter alla filer som matchar mönstret /tmp/Lista med filer som är okända för databasen====================================……Vill du verkligen katalogisera filerna ovan (skriv JA eller NEJ)? JA katalogisering av filer ... katalogisering klar

Steg 5:

Applicera den inkrementella säkerhetskopian på Standby-databasen

rman target /RMAN>ÅTERSTÄLL DATABAS NOREDO;

Steg 6:

Sätt tillbaka standbydatabasen till hanterat återställningsläge.

sqlplus "/ as sysdba"SQL>återställ hanterad standby-databas frånkoppling; Mediaåterställning slutförd.

Från alert.log kommer du att märka att standbydatabasen fortfarande letar efter de gamla loggfilerna

FAL[klient]:Det gick inte att begära gap sequenceGAP - tråd 1-sekvens ….

Detta beror på att kontrollfilen inte har uppdaterats. Därför måste standby-kontrollfilen återskapas

Steg 7:

På den primära skapa en ny standby-kontrollfil

sqlplus "/ as sysdba"SQL> ändra databas skapa väntelägeskontrollfil som '/tmp/standby01.ctl';Systemet ändrat.

Steg 8:

Fånga datafilinformation i STANDBY-databasen.
Standby-kontrollfilen måste uppdateras från säkerhetskopian som togs vid steg #7. Eftersom datafilnamnen sannolikt skiljer sig från primära, spara namnen på dina standby-datafilnamn för referens efter att ha återställt kontrollfilen från den primära säkerhetskopian. Kör frågan nedan i standbydatabasen och spara resultaten för vidare användning.

spool standby_datafile_names.txt
ställ in sidstorlek 1000;
ställ rader 200
col name format a60
välj fil#, namn från v$datafil ordning efter fil#;
spola av

Steg 9:

Kopiera väntelägeskontrollfilen till väntelägesplatsen. Stäng av standby-databasen och ersätt standby-kontrollfilerna och starta om standby-databasen i hanterat återställningsläge med kommandot nedan

RMAN> AVSTÄNGNING OMEDELBART;RMAN> UPPSTART NOMOUNT;RMAN> ÅTERSTÄLL STANDBY-KONTROLLFIL FRÅN '/tmp/standby01.ctl';

Steg 10:

Montera standby

RMAN> ALTER DATABASE MOUNT;

Steg 11:

Det här steget krävs om platsen för datafilerna är olika i standby och primär

Om den primära och standby-enheten har identiska struktur- och datafilnamn kan detta steg hoppas över.

Oracle rekommenderar att du kontrollerar inkarnationen för primär och standby innan du slutför detta steg.

exempel:  
RMAN> lista inkarnation;

Eftersom vi har återställt kontrollfilen från PRIMÄR kommer datafilsplatsnamnen i denna återställda STANDBY-kontrollfil att vara desamma som i PRIMÄRdatabasen. Om katalogstrukturen skiljer sig mellan standby- och primärdatabaserna eller om du använder Oracle-hanterade filnamn OMF kommer den inte att kunna identifiera standby-filerna. Så vi kan katalogisera STANDBY-datafilerna med RMAN för att utföra bytenamnsoperationen.

Utför steget nedan i STANDBY för varje diskgrupp (eller katalog) där standbydatafilerna finns.

RMAN> KATALOG BÖRJA MED '+DATA/STBY/datafile/';

Om några datafiler har lagts till i primär EFTER säkerhetskopieringen av SCN (i vårt exempel, scn 6746747647647) kommer dessa datafiler inte att skapas på standbyservern automatiskt, oavsett parameterinställning för standby_file_management. De tillagda datafilerna måste återställas till standbyservern. För att avgöra om några filer har lagts till i Primary sedan standby aktuella SCN

SQL>VÄLJ FIL#, NAMN FRÅN V$DATAFILE WHERE CREATION_CHANGE#> 6746747647647

Om den returnerar några rader måste vi återställa dessa filer från primär till standby

RMAN> säkerhetskopieringsdatafil , , , format '/tmp/ForStandby_%U' taggen 'FORSTANDBY';

Kopiera dessa till vänteläge och katalogisera och återställ dem sedan

KATALOG BÖRJA MED '/tmp/ForStandby';kör{ställ in nytt namn för datafil X till '+DISKGROUP';ställ nytt namn för datafil Y till '+DISKGROUP';ställ nytt namn för datafil Z till '+DISKGROUP';etc. återställ datafil x,y,z,….;}

Nu kan vi byta databas till kopiering

RMAN> BYT DATABAS TILL KOPIERING;

Om ovanstående fråga returnerar med 0 noll rader

RMAN> BYT DATABAS TILL KOPIERING;

Steg 11

På STANDBY  databas, rensa alla redo-logggrupper i vänteläge:

SQL> välj GROUP# från v$logfile där TYPE='STANDBY' group by GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE RENSA LOGGFIL GROUP 3;
….

Steg 12

Nu kan du starta MRP

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE KOPPLA FRÅN;

Hoppas du gillar dessa detaljerade steg om hur man återställer en standby-databas från en saknad arkivlogg. Lämna gärna feedbacken. Det kan vara ett misstag.

Läser också
Icke ASM till ASM
hur man hittar sekvensnummer för arkivlogg i Oracle
hur man kontrollerar varningsloggfel i Oracle
RMAN backup-kommandon
RMAN Lista backup-kommandon
Steg att utföra för att rulla framåt en fysisk standby-databas med hjälp av RMAN Incremental Backup. (Dok ID 836986.1)


  1. Anpassa Spotlight Cloud Alarms

  2. Hur får jag en lista över alla tabeller i en databas med TSQL?

  3. Ändra säkerhetsgrupp på AWS RDS Database Instance

  4. Dela upp stora raderingsoperationer i bitar