成都网站建设设计

将想法与焦点和您一起共享

Oracle表空间中的实际数据文件丢失的恢复

以下的文章主要介绍的是Oracle表空间的实际数据文件丢失的恢复,我们假设Oracle数据库其处于归档模式。我们在数据库里重建一个Oracle表空间,一共有3个相关的数据文件。各10M,表空间内有一张23M的表。

 
 
 
  1. SQL> select count(*) from ldy.t1;  
  2. COUNT(*)  
  3. 605136  
  4. SQL> col segment_name for a20  
  5. SQL> col tablespace_name for a20  
  6. SQL> select segment_name,tablespace_name,bytes/1024/1024 mb from dba_segments where owner='LDY';  
  7. SEGMENT_NAME TABLESPACE_NAME MB  
  8. T1 LDY 23  

关闭数据库,将Oracle表空间的其中一个数据文件删除,启动后报错:

 
 
 
  1. SQL> startup 

Oracle例程已经启动。

 
 
 
  1. Total System Global Area 612368384 bytes  
  2. Fixed Size 1250428 bytes  
  3. Variable Size 230689668 bytes  
  4. Database Buffers 373293056 bytes  
  5. Redo Buffers 7135232 bytes  

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 6: 'E:\ORACLE\ORADATA\LDY01.DBF'

此时数据库为mount状态。

 
 
 
  1. SQL> select open_mode from v$database;  
  2. OPEN_MODE  
  3. MOUNTED  

增加回该数据文件。

 
 
 
  1. SQL>alter database create datafile 'E:\ORACLE\ORADATA\LDY01.DBF'; 

数据库已更改。

介质恢复。

 
 
 
  1. SQL>recover datafile 6; 

完成介质恢复。

数据库打开,正常查询。

 
 
 
  1. SQL> alter database open; 

数据库已更改。

 
 
 
  1. SQL> select count(*) from ldy.t1;  
  2. COUNT(*)  
  3. 605136   

以上的相关内容就是对@Oracle表空间的数据文件丢失的恢复的介绍,望你能有所收获。

【编辑推荐】

  1. Oracle存储过程中如何准确的实现分页
  2. Oracle数据库与FoxPro数据如何转换
  3. Oracle数据库中如何用GROUPING SETS进行分组自定义
  4. 用Oracle SQL语句来实现进制间的相互转换
  5. Oracle数据库中null的具体使用方案

本文题目:Oracle表空间中的实际数据文件丢失的恢复
网站路径:https://chengdu.cdxwcx.cn/article/dpeijeo.html