ORA-01157: 无法标识/锁定数据文件故障恢复
数据库表空间数据文件损坏,无法启动。进行数据库恢复。
1、现象:
前端报错:
ORA-03113: end-of-file on communication channel
Process ID: 10192
Session ID: 19 Serial number: 3301
数据库可宕机,检查alter.log
ORA-63999: 数据文件出现介质故障
ORA-01114: 将块写入文件 156 时出现 IO 错误 (块 # 2)
ORA-01110: 数据文件 156: 'F:\ORACLE\DATA\TB_SCOTT01.DBF'
检查F盘,出现故障无法访问。
2、处理过程
(1)启动数据库
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 156 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 156: 'F:\ORACLE\DATA\TB_SCOTT01.DBF'
数据文件156号,故障。
TB_SCOTT表空间上的数据,可以从其他库同步,因此可以删除。
(2)删除故障的数据文件和表空间
先启动数据库到mount状态
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 3.8655E+10 bytes
Fixed Size 12295552 bytes
Variable Size 4966056576 bytes
Database Buffers 3.3554E+10 bytes
Redo Buffers 121921536 bytes
SQL> alter database mount;
数据库已更改。
再删除故障的数据文件,按文件号删除:
SQL> alter database datafile 156 offline drop;
数据库已更改。
open 数据库,安全起见先把相关的表空间offline ,然后删除。
SQL> alter database open;
数据库已更改。
SQL>
SQL> alter tablespace tb_scott offline immediate ;
表空间已更改。
SQL> drop tablespace tb_scott including contents and datafiles ;
表空间已删除。
为了确保数据库正常,再次关闭数据库,启动数据库,数据库正常。