解决ORCLE-ORA-01122 01110 01210

中午搬迁了数据库服务器,点亮后启动数据库。

lsnrctl start
The listener supports no services
The command completed successfully

没问题。
然后启动数据库,报错:

SQL> startup
ORACLE instance started.

Total System Global Area 2137886720 bytes
Fixed Size                  2254952 bytes
Variable Size             838862744 bytes
Database Buffers         1291845632 bytes
Redo Buffers                4923392 bytes
Database mounted.
ORA-01122: database file 11 failed verification check
ORA-01110: data file 11: '/data/oracle/oradata/orcl/xn_01.ora'
ORA-01210: data file header is media corrupt

看错误信息是有一个ora文件的文件头损坏。首先尝试recover操作:


SQL> recover datafile 11
ORA-00283: recovery session canceled due to errors
ORA-01110: data file 11: '/data/oracle/oradata/orcl/xn_01.ora'
ORA-01122: database file 11 failed verification check
ORA-01110: data file 11: '/data/oracle/oradata/orcl/xn_01.ora'
ORA-01210: data file header is media corrupt

瞬间头大。百度资料发现修复过程很繁琐。因此决定采用简单粗暴的方式来处理,既然是表空间文件坏了,那就重建表空间文件。
注意:这种做法的前提是你这个表空间的数据是可以废弃的,我这边只是一个测试库,而且是着急要启动数据库,所以能重建。如果你的表空间文件是有重要数据的就要慎重。
首先另外找一个能用的数据库服务,用有dba权限的用户登录进去
创建一个新的表空间:

create tablespace xn_01
datafile '/data/oracle/oradata/orcl/xn_01.ora'
size 50m
autoextend on
next 5m maxsize 10000m
extent management local;

创建成功后,查询数据文件所在的位置

select d.FILE_NAME from dba_data_files d where d.FILE_NAME like '%xn_01%'
2	/data/oracle/oradata/orcl/xn_01.ora

然后去/data/oracle/oradata/orcl目录中拷贝出xn_01.ora文件,拷贝到有问题的数据库的datafile目录中,如果你的表空间文件可以废弃,就覆盖同名的xn_01.ora。如果有重要数据,那就把原来有问题的表空间先备份出来,然后再执行拷贝,等数据库能启动了,再想办法解决原来表空间损坏的问题
然后再次尝试打开数据库:

SQL> shutdown immediate;
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 2137886720 bytes
Fixed Size                  2254952 bytes
Variable Size             838862744 bytes
Database Buffers         1291845632 bytes
Redo Buffers                4923392 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 11 - see DBWR trace file
ORA-01110: data file 11: '/data/oracle/oradata/orcl/xn_01.ora'

目前提示信息已经是无法锁定文件,也就是表空间的文件数据没问题,但是ORACLE认不到这个表空间,既然认不到,就直接脱机:


SQL> alter database datafile 11 offline drop;

Database altered.

SQL> alter database open;

Database altered.

搞定。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低音钢琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值