以下的文章主要介绍的是Oracle表空间的实际数据文件丢失的恢复,我们假设Oracle数据库其处于归档模式。我们在数据库里重建一个Oracle表空间,一共有3个相关的数据文件。各10M,表空间内有一张23M的表。
- SQL> select count(*) from ldy.t1;
- COUNT(*)
- 605136
- SQL> col segment_name for a20
- SQL> col tablespace_name for a20
- SQL> select segment_name,tablespace_name,bytes/1024/1024 mb from dba_segments where owner='LDY';
- SEGMENT_NAME TABLESPACE_NAME MB
- T1 LDY 23
关闭数据库,将Oracle表空间的其中一个数据文件删除,启动后报错:
- SQL> startup
Oracle例程已经启动。
- Total System Global Area 612368384 bytes
- Fixed Size 1250428 bytes
- Variable Size 230689668 bytes
- Database Buffers 373293056 bytes
- Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\ORADATA\LDY01.DBF'
此时数据库为mount状态。
- SQL> select open_mode from v$database;
- OPEN_MODE
- MOUNTED
增加回该数据文件。
- SQL>alter database create datafile 'E:\ORACLE\ORADATA\LDY01.DBF';
数据库已更改。
介质恢复。
- SQL>recover datafile 6;
完成介质恢复。
数据库打开,正常查询。
- SQL> alter database open;
数据库已更改。
- SQL> select count(*) from ldy.t1;
- COUNT(*)
- 605136
以上的相关内容就是对@Oracle表空间的数据文件丢失的恢复的介绍,望你能有所收获。
【编辑推荐】