--创建测试表空间
create tablespace test2
datafile '/u01/app/oracle/oradata/normal/test2_01.dbf'
size 10M reuse;
--切换日志并查看创建的表空间的 创建scn
SQL> alter system switch logfile;
SQL> /
SQL> /
SQL> /
SQL> select file#, creation_change#, name from v$datafile;
FILE# CREATION_CHANGE# NAME
---------- ---------------- --------------------------------------------------
1 8 /u01/app/oracle/oradata/normal/system01.dbf
2 5224 /u01/app/oracle/oradata/normal/undotbs01.dbf
3 5349 /u01/app/oracle/oradata/normal/sysaux01.dbf
4 5826 /u01/app/oracle/oradata/normal/users01.dbf
5 7948 /u01/app/oracle/oradata/normal/chenhao01.dbf
6 155204 /u01/app/oracle/oradata/normal/undotbs02.dbf
7 517792 /u01/app/oracle/oradata/normal/system02.dbf
8 769957 /u01/app/oracle/oradata/normal/outln01.dbf
9 818947 /u01/app/oracle/oradata/normal/test01.dbf
10 1204801 /u01/app/oracle/oradata/normal/test2_01.dbf
--查看oracle将创建表空间test2的日志记入到哪个归档日志
select name
from v$archived_log
where 1204801 between first_change# and next_change#;
NAME
------------------------------------------------------------------------------------------
/u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_101_b0c0p9n5_.arc
--创建测试表
SQL> create table t4 tablespace test2 as select * from dba_objects;
SQL> select count(*) from t4;
COUNT(*)
----------
13564
SQL> alter system switch logfile;
SQL> /
SQL> /
SQL> /
--在操作系统上删除文件/u01/app/oracle/oradata/normal/test2_01.dbf
[oracle@normal normal]$ rm -f test2_01.dbf
--尝试关闭数据库时报错
SQL> shutdown immediate
ORA-01116: error in opening database file 10
ORA-01110: data file 10: '/u01/app/oracle/oradata/normal/test2_01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
--查看 file# 10 的数据文件信息,并将它设置为offline
SQL> select file#, name, status from v$datafile where file# = 10;
FILE# NAME STATUS
---------- -------------------------------------------------- -------
10 /u01/app/oracle/oradata/normal/test2_01.dbf ONLINE
SQL> alter database datafile 10 offline;
SQL> select file#, name, status from v$datafile where file# = 10;
FILE# NAME STATUS
---------- -------------------------------------------------- -------
10 /u01/app/oracle/oradata/normal/test2_01.dbf RECOVER
--恢复数据文件
SQL> alter database create datafile 10;
SQL> recover datafile 10;
ORA-00279: change 1204801 generated at 09/02/2014 16:38:55 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_101_b0c0p9n5_.arc
ORA-00280: change 1204801 for thread 1 is in sequence #101
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 1205121 generated at 09/02/2014 16:41:45 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_102_b0c0pb11_.arc
ORA-00280: change 1205121 for thread 1 is in sequence #102
ORA-00279: change 1205124 generated at 09/02/2014 16:41:45 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_103_b0c0pcvk_.arc
ORA-00280: change 1205124 for thread 1 is in sequence #103
ORA-00279: change 1205127 generated at 09/02/2014 16:41:47 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_104_b0c0pcw6_.arc
ORA-00280: change 1205127 for thread 1 is in sequence #104
ORA-00279: change 1205130 generated at 09/02/2014 16:41:47 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_105_b0c11rh3_.arc
ORA-00280: change 1205130 for thread 1 is in sequence #105
ORA-00279: change 1205510 generated at 09/02/2014 16:47:52 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_09_02/o1_mf_1_106_b0c11s4c_.arc
ORA-00280: change 1205510 for thread 1 is in sequence #106
Log applied.
Media recovery complete.
--测试数据文件已经恢复
SQL> alter database datafile 10 online;
SQL> select file#, name, status from v$datafile where file# = 10;
FILE# NAME STATUS
---------- -------------------------------------------------- -------
10 /u01/app/oracle/oradata/normal/test2_01.dbf ONLINE
SQL> select count(*) from t4;
COUNT(*)
----------
13564
[oracle@normal normal]$ ls -l test2_01.dbf
-rw-r----- 1 oracle oinstall 10493952 Sep 2 16:56 test2_01.dbf
使用archive log恢复data file
最新推荐文章于 2023-10-16 10:53:15 发布