AI智能
改变未来

Oracle解决无备份的数据文件损坏导致无法启动问题

解决无备份的数据文件损坏无法启动问题:

查看当前实例状态:

创建一个测试表空间:

SYS@prod>shutdown immediate;
一致性关库。

模拟破坏数据文件test.dbf:

实例重新启动,无法启动到open模式,数据文件test.dbf丢失,无法锁定。
此时实例为mount状态。

将其offline drop

该命令不会删除数据文件,只是将数据文件的状态更改为recover


Open模式

在数据库层面删除数据文件。

由于该表空间中仅有一个数据文件,Oracle不允许删除表空间中的第一个数据文件。
所以需要将表空间删除。
如果表空间中有多个数据文件,且出现问题的不是第一个数据文件,那么将其数据文件删除即可。

本次删除整个表空间

如果出现问题的表空间的第一个数据文件,删除整个表空间的话,会将其他数据文件也删除。
所以不能删除整个表空间。
解决办法如下:
Test1 为 8号文件
Test2 为 9号文件

破坏test1.dbf
无法到达open状态
在mount模式下进行offline drop
启动到open模式,删除8号文件。
由于8号文件为表空间的第一个数据文件
Oracle禁止删除表空间的第一个数据文件

解决办法:

查看8号的状态offline:

将8号文件online(需要介质恢复)
Open模式下数据文件offline -> online需要介质恢复
介质恢复的原因可以查看数据文件头部SCN与控制文件中SCN不一致,需要进行介质恢复


数据文件online
解决完毕。

语句汇总:
create tablespace test datafile ‘xxxx’ size xxM (创建表空间)
Alter tablespace test drop datafile 8 (删除表空间数据文件)
数据文件中有内容无法删除,可以考虑将数据文件的对象,内容等移动到其他表空间。
Alter tablespace test add datafile ‘xxxx’ size xxM (向表空间中添加数据文件)
Alter database datafile 8 offline (数据文件offline)
alter database datafile 8 online (数据文件online)
Drop tablespace test including contents and datafiles (删除表空间+内容+数据文件)
Alter database create datafile 8 as ‘/u01/xxxxx’

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Oracle解决无备份的数据文件损坏导致无法启动问题