测试环境一个单机数据库异常关闭,版本11.2.0.4.0,启动时报ORA-01122,数据库无法open。
我登录服务器数据库已经是mount状态open时报错,我记录了当时的处理过程。
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01122: database file 7 failed verification check
ORA-01110: data file 7: ‘/data/oradata/ORCL/datafile/DATACOERE_DATA_SP01.dbf’
ORA-01200: actual file size of 655263 is smaller than correct size of 655360
blocks
打开告警日志
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_1454.trc:
ORA-01122: database file 7 failed verification check
ORA-01110: data file 7: ‘/data/oradata/ORCL/datafile/DATACOERE_DATA_SP01.dbf’
ORA-01200: actual file size of 655263 is smaller than correct size of 655360 blocks
ORA-1122 signalled during: ALTER DATABASE OPEN…
Fri May 14 10:36:11 2021
db_recovery_file_dest_size of 4977 MB is 3.24% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Fri May 14 12:45:46 2021
alter database open
Read of datafile ‘/data/oradata/ORCL/datafile/DATACOERE_DATA_SP01.dbf’ (fno 7) header failed with ORA-01200
Rereading datafile 7 header failed with ORA-01200
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_18430.trc:
ORA-01122: database file 7 failed verification check
ORA-01110: data file 7: ‘/data/oradata/ORCL/datafile/DATACOERE_DATA_SP01.dbf’
ORA-01200: actual file size of 655263 is smaller than correct size of 655360 blocks
ORA-1122 signalled during: alter database open…
根据报错的描述,大概是数据文件小于控制文件记录的数据文件的大小,通过查找资料找到了解决方法。
第一步判断差值
根据ORA-01200提示信息,得到数据文件相差97个数据块。
SQL> select 655360-655263 from dual;
第二步备份需要操作的数据文件
cp /data/oradata/ORCL/datafile/DATACOERE_DATA_SP01.dbf /home/oracle
第三步执行dd命令增加数据文件大小
使用dd命令增加数据文件大小,8192是数据块大小,97是多少个数据块 seek=655264表示从第655264个数据块开始增加(655263+1)
dd if=/dev/zero of=/data/oradata/ORCL/datafile/DATACOERE_DATA_SP01.dbf bs=8192 count=97 seek=655264
第四步open数据库
SQL> alter database open;
Database altered.
总结:
尽量一致性关库,强行关库非常危险。
如果大家有遇到同样的报错,这个方法可以一试!
评论
