ora-01116,ora-01110,ora-27041

由于是自己用的测试数据库,发现电脑空间快不够用了,查询有一个dbf文件占用了很多空间,将近40G。反正是自己用的测试数据库,就无所谓了,没有任何备份,自作主张,直接
$rm -f my_db.dbf

数据库依然正常,查询表空间

SELECT c.tablespace_name tablespace_name, ROUND(a.bytes/1048576,2) total_size,ROUND((a.bytes-b.bytes)/1048576,2) used_size,
ROUND(b.bytes/1048576,2) free_size,
ROUND(b.bytes/a.bytes * 100,2)||'%' free_pct FROM
(SELECT tablespace_name,SUM(a.bytes) bytes
FROM sys.DBA_DATA_FILES a
GROUP BY tablespace_name) a,
(SELECT a.tablespace_name,
NVL(SUM(b.bytes),0) bytes
FROM sys.DBA_DATA_FILES a,
sys.DBA_FREE_SPACE b
WHERE a.tablespace_name = b.tablespace_name (+)
AND a.file_id = b.file_id (+)
GROUP BY a.tablespace_name) b,
sys.DBA_TABLESPACES c
WHERE a.tablespace_name = b.tablespace_name(+)
AND a.tablespace_name = c.tablespace_name
ORDER BY ROUND(b.bytes/1048576,2)


报错如下:
ORA-01116:error in opening database file 7
ORA-01110:data file 54:'/oracle/oradata/mydb/my_db.dbf'
ORA-27041:unable to open file
Linux-x86_32 Error:2: No Such file or directory
Additional information: 3


杯具了! :cry:

不敢关闭数据库了,可能关闭之后,无法启动,虽然说是测试数据库,但是有很多表结构还是需要的。
试了如下几种方法:

(1)执行select * from dba_data_files,看看表空间文件,没办法看了,还是报同样的错误。
(2)查看系统中所有的表空间,无法查询
(3)删除表空间
SQL> drop tablespace MY_DB including CONTENTS and datafiles;
不行,无法删除 :cry:
(4)新建一个同样名字的dbf文件,想蒙混过关,不行。

一晚上没有关电脑,问朋友,好像都不知道,说没试过干这样的傻事。

最后网上搜索到解决方法:

[color=red]SQL> alter database datafile '/oracle/oradata/mydb/my_db.dbf' offline drop;[/color]

[color=red]说明:
是测试数据库,没有做备份的前提下这样操作的。
请生产数据库最好不要这样操作,出了问题不负责。[/color]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值