Před časem selhalo MRP v pohotovostní databázi s ORA-01111 s následující podrobnou chybou v protokolu výstrah
Alert Log in Standby Shows MRP is terminated with below error ================================================================= File #8 added to control file as 'UNNAMED00008' because the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL The file should be manually created to continue. MRP0: Background Media Recovery terminated with error 1111 Thu Jan 08 11:02:35 2016 Errors in file /u01/oracle/product/11.2.0/diag/rdbms/TEST/test/trace/TEST_mrp0_6436.trc: ORA-01111: name for data file 129 is unknown - rename to correct file ORA-01111: name for data file 129 is unknown - rename to correct file ORA-01110: data file 129: '/u01/oracle/product/11.2.0/dms/UNNAMED00008'
Důvod pro ORA-01111
Tato chyba ORA-01111 nastane, pokud přidáme datový soubor NEBO tabulkový prostor do PRIMÁRNÍ databáze, který nelze přeložit do pohotovostní databáze z těchto důvodů:
- Správa Standy_file_management je nastavena na MANUAL
- Primární a fyzický pohotovostní režim mají různé struktury souborů a DB_FILE_NAME_CONVERT není nastaven podle adresářových struktur v primárním a pohotovostním režimu
- Nedostatek místa nebo nesprávná oprávnění v pohotovostní databázi k vytvoření datového souboru
Redo Log vygenerovaný z Primárního bude mít přidané informace o tabulkovém prostoru / datovém souboru, ale nemohlo být úspěšně vytvořeno ve fyzické pohotovostní databázi kvůli standby_file_management =MANUAL
nebo není schopen najít zadanou složku kvůli chybějícímu / nesprávná konverze názvu souboru. Položka souboru je přidána do Standby Controlfile jako „UNNAMED0000n“ ve složce /dbs nebo /database v závislosti na operačním systému a nakonec MRP skončí.
Řešení ORA-01111
Proveďte všechny uvedené kroky v pohotovostní databázi:
Krok 1: Ujistěte se, že standby_file_management =‚MANUAL‘
POZNÁMKA:Pro změnu parametru db_file_name_convert, pokud je povolen Data Guard Broker, upravte parametry pomocí Broker,
DGMGRL>edit database '<standby>' set property DbFileNameConvert='/u01','+DATA'; DGMGRL>edit database '<standby>' set property StandbyFileManagement=manual;
Standardně je StandbyFileManagement nastaveno na AUTO by broker.
Krok 2: Identifikujte soubor, který je „nepojmenovaný“
SQL> select name from v$datafile; NAME --------------------------------------- +DATA/TEST/datafiles/SYSTEM.DBF +DATA/TEST/datafiles/UNDO.DBF +DATA/TEST/datafiles/SYSAUX.DBF +DATA/TEST/datafiles/index1.DBF /u01/oracle/product/11.2.0/dms/UNNAMED00008
Krok 3: Přejmenujte/vytvořte datový soubor na správný název souboru
SQL> alter database create datafile '/u01/oracle/product/11.2.0/dms/UNNAMED00008' as '+DATA/TEST/datafiles/appstex.dbf'; or SQL>alter database create datafile '/u01/oracle/product/11.2.0/dms/UNNAMED00008' as new;
Krok 4: Ověřte správnost názvu souboru
SQL> select name from v$datafile; NAME ------------------------------------------------- +DATA/TEST/datafiles/SYSTEM.DBF +DATA/TEST/datafiles/UNDO.DBF +DATA/TEST/datafiles/SYSAUX.DBF +DATA/TEST/datafiles/index1.DBF +DATA/TEST/datafiles/appstex.dbf
Krok 5: Změňte STANDBY_FILE_MANAGEMENT na AUTO
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope=both;
Krok 6: Spusťte MRP (používá se Real Time Apply)
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.
Krok 7: Ověřte, že MRP běží podle očekávání
SQL> select process, status , sequence# from v$managed_standby; PROCESS STATUS SEQUENCE# --------- ------------ ---------- ARCH CLOSING 1014 ARCH CLOSING 1013 MRP0 APPLYING_LOG 1001 RFS IDLE 0 RFS IDLE 0 RFS IDLE 1015
Krok 8: Ujistěte se, že jste opravili chybu, která způsobila selhání vytvoření souboru.
Musíme zajistit správnost parametrů STANDBY_FILE_MANAGEMENT a DB_FILE_CONVERT
Také čte
ORA-03113:konec souboru na komunikačním kanálu
ORA-00257:chyba archivátoru. Připojte pouze interní, dokud se neuvolní.
fyzická pohotovostní databáze
https://support.oracle.com/knowledge/Oracle%20Database%20Products/1416554_1.html