oracle dbf文件丢失 无备份情况下ORACLE数据文件丢失恢复

在无备份的情况下,如果Oracle数据库的数据文件丢失,可以使用`ALTER DATABASE CREATE DATAFILE`语句创建新数据文件并结合归档日志进行恢复。通过在数据库开启归档模式后,确定丢失文件的文件号或在动态性能视图中查找,创建新数据文件并使用`RECOVER DATAFILE`命令进行恢复。需要注意的是,SYSTEM表空间的第一个数据文件不适用此方法。

使用alter database create datafile恢复丢失数据文件

如果由于误删除操作或其它物理原因呆滞Oracle数据库数据文件丢失。
在已开启归档且所创建数据文件之后的归档都在的情况下,即使数据库没有备份,其丢失数据文件也是进行恢复的,且不会有数据丢失。

这里我们可以使用以下语句来建立新的空数据文件以替代旧数据文件:

ALTER DATABASE ... CREATE DATAFILE <filenumber>;
ALTER DATABASE CREATE DATAFILE '<filename>' AS '<filename>'; 

并在之后使用recover datafile命令来进行数据恢复。

recover datafile <filenumber>;

 

ALTER DATABASE ... <create_datafile_clause>:
其中<create_datafile_clause>,我们可以使用CREATE DATAFILE来建立一个新的空数据文件以替换旧的丢失文件,这是一种在无备份情况下重建数据文件的方法。
其中的<filename>或<filenumber>,必须被用于定位数据库文件。
你可以根据文件编号定位文件,文件号可以在动态性能视图v$datafile中找到file#,或在DBA_DATA_FILES数据字典视图中找到FILE_ID列值。

  • 语法中可以用AS NEW以系统自生成的方式生成Oracle数据文件名,文件大小将和被替换的旧文件大小相同,生成的数据文件存放在系统默认位置。
  • 语法中也可以用AS <filename>的形式来自定义一个新的数据文件名。
  • 如果最初丢失的数据文件(文件名或文件号)是一个Oracle管理的数据文件,那么在Oracle数据库建立新文件后,将会尝试删除最初的旧文件。
  • 如果最初丢失的数据文件是一个用户自管理的数据文件,那么Oracle数据库之后不会去删除旧文件。
  • 如果你在语句中省略AS语句,那么Oracle数据库将使用之前同名方式来建立新数据文件,沿用之前的数据文件名和文件号。

在新文件建立后,进行数据恢复时,需要所有从最初旧数据文件建立以来的归档日志,应用到新文件上。
Oracle在新文件建立后会保持和旧文件相同的文件状态。你需要进行介质恢复将新文件恢复到旧文件丢失前的状态。

 

建立新数据文件需要注意的限制:

SYSTEM表空间下首个数据文件不可使用此语句进行文件新建。
在CREATE DATAFILE语法中不能对临时文件指定autoextend语法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值