Бид энэ удаад rman биш гар аргаар хуулж нөөцөлсөн datafile-ийг хэрхэн сэргээх талаархи жишээ үзье. Мэдээж archivelog идэвхтэй байх шаардлагатайг анхаарна уу.
[oracle@node214 DB11G]$ pwd
/u01/app/oracle/oradata/DB11G
[oracle@node214 DB11G]$
[oracle@node214 DB11G]$ mv users01.dbf users01.dbf.bak
[oracle@node214 DB11G]$
Дээрхи жишээнд users01.dbf файлыг байхгүй гэж үзэх бөгөөд нөөц файл нь users01.dbf.bak файл юм.
SQL> create table a(id number) tablespace USERS
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
SQL> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /u01/app/oracle/oradata/DB11G/system01.dbf
2 /u01/app/oracle/oradata/DB11G/sysaux01.dbf
3 /u01/app/oracle/oradata/DB11G/undotbs01.dbf
4 /u01/app/oracle/oradata/DB11G/users01.dbf
5 /u01/app/oracle/oradata/DB11G/example01.dbf
6 /u01/app/oracle/oradata/DB11G/test_assm01.dbf
7 /u01/app/oracle/oradata/DB11G/test_mssm01.dbf
8 /stripe/d1/system02.dbf
8 rows selected.
SQL>
USERS tablespace-т харгалзах users01.dbf файл байхгүй учраас алдаа зааж байна. Тиймээс бид нөөцөлж хуулсан файлаас файлыг сэргээж recover хийх шаардлагатай.
Үүний тулд тухайн файлыг offline горимд сэргээсний дараа буцааж идэвхжүүлнэ.
SQL> alter database datafile 4 offline;
Database altered.
SQL>
Файлыг буцааж хуулъя.
[oracle@node214 DB11G]$ mv users01.dbf.bak users01.dbf
[oracle@node214 DB11G]$
Datafile-ийг recover хийж идэвхжүүлье.
SQL> recover datafile 4;
Media recovery complete.
SQL>
SQL> alter database datafile 4 online;
Database altered.
SQL>
Шалгая.
SQL>
SQL> create table a(id number) tablespace USERS;
Table created.
SQL>