Prilikom izvršenja procedure eksporta podataka jedne schema-e iz Oracle baze podataka dobio sam grešku:
Očigledno da nešto nije bilo uredu sa datafajlom C:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF koji pripada tablespace-u SYSAUX. Provjerom alert.log fajla ustanovio sam da stvarno postoji problem sa navedenim datafajlom. Greške u alert.log fajlu su bile oblika:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: 'C:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF'
Dakle, potrebno je uraditi media recovery navedenog datafajla.
Postupak je sledeći:
1. Provjeriti trenutno stanje Oracle baze podataka:
SQL> select name, open_mode, checkpoint_change#, ARCHIVE_CHANGE# from v$database;
NAME OPEN_MODE CHECKPOINT_CHANGE# ARCHIVE_CHANGE#
--------- -------------------- ------------------ ---------------
ORA11G READ WRITE 138707138 138707134
2. Provjeriti u kakvom je stanju datafajl nad kojim je potrebno odraditi media recovery proceduru:
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ERROR CHANGE# TIME
---------- ------- -------------------------- -------- -----
2 OFFLINE OFFLINE 138029207 12.08.14
3. Provjeriti stanje svih datafajlova u bazi:
SQL> select substr(name,1,50), recover, fuzzy, checkpoint_change# from v$datafil
e_header;
SUBSTR(NAME,1,50) REC FUZ CHECKPOINT_CHANGE#
-------------------------------------------------- --- --- ------------------
C:\ORACLE\ORADATA\ORA11G\SYSTEM01.DBF NO YES 138707176
C:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF YES YES 138029207
C:\ORACLE\ORADATA\ORA11G\UNDOTBS01.DBF NO YES 138707176
C:\ORACLE\ORADATA\ORA11G\USERS01.DBF NO YES 138707176
C:\ORACLE\ORADATA\ORA11G\IDC_SYSTEM.DBF NO YES 138707176
4. Provjeriti koji nam je archive log potreban da bi smo uradili recovery navedenog datafajla:
SQL> select * from v$recovery_log;
THREAD# SEQUENCE# TIME ARCHIVE_NAME
---------- ---------- -------- -------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------------------
1 1225 12.08.14 C:\ORACLE\FLASH_RECOVERY_AREA\ORA11G\ARCHIVELOG\2
014_08_13\O1_MF_1_1225_9YP26W7Q_.ARC
Utvrditi da li je navedeni archive log fajl dostupan. Ako jeste može se nastaviti sa procedurom recovery-a.
5. Restartovati bazu u MOUNT modu i izvršiti komandu:
SQL> recover datafile 2;
6. Provjeriti da li je potrebno uraditi recovery još nekog datafajla:
SQL> select * from v$recover_file;
no rows selected
7. Ako nije potrebno uraditi recovery drugog datafajla baza se može otvoriti za rad u READ WRITE modu. Ali prvo je potrebno vratiti datafajl SYSAUX01.DBF u ONLINE status:
SQL> alter database datafile 2 online;
8. I na kraju otvoriti bazu za pristup svim korisnicima:
SQL> alter database open;
Database altered.
Sada je moguće izvršiti eksport podataka bez problema.