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 standbydatabasensqlplus "/ 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)