以下的文章主要介绍的是Oracle表空间的实际数据文件丢失的恢复,我们假设Oracle数据库其处于归档模式。我们在数据库里重建一个Oracle表空间,一共有3个相关的数据文件。各10M,表空间内有一张23M的表。
SQL>selectcount(*)fromldy.t1; COUNT(*) 605136 SQL>colsegment_namefora20 SQL>coltablespace_namefora20 SQL>selectsegment_name,tablespace_name,bytes/1024/1024mbfromdba_segmentswhereowner='LDY'; SEGMENT_NAMETABLESPACE_NAMEMB T1LDY23
关闭数据库,将Oracle表空间的其中一个数据文件删除,启动后报错:
SQL>startup
Oracle例程已经启动。
TotalSystemGlobalArea612368384bytes FixedSize1250428bytes VariableSize230689668bytes DatabaseBuffers373293056bytes RedoBuffers7135232bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 – 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: ‘E:\ORACLE\ORADATA\LDY01.DBF’
此时数据库为mount状态。
SQL>selectopen_modefromv$database; OPEN_MODE MOUNTED
增加回该数据文件。
SQL>alterdatabasecreatedatafile'E:\ORACLE\ORADATA\LDY01.DBF';
数据库已更改。
介质恢复。
SQL>recoverdatafile6;
完成介质恢复。
数据库打开,正常查询。
SQL>alterdatabaseopen;
数据库已更改。
SQL>selectcount(*)fromldy.t1; COUNT(*) 605136
相关文章
标签:Oracle