oracle11g误删除了数据文件,为何还能查询,insert也没报错

土豆番茄 2016-04-26 03:33:10
有个用户zqq对应表空间user_data
数据文件在操作系统上被人误删除了,但是我依然能够查询该用户下的表,而且还能对表进行插入。
该用户默认表空间就是user_data,而且就一个数据文件
但是稍等了一会之后,再插入和创建表才会报ORA-01116: error in opening database file 错。

各位大神,有谁知到这是为什么,不是应该立刻会报错的吗?
...全文
224 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆番茄 2016-04-26
  • 打赏
  • 举报
回复
感谢楼上各位,学习了!
卖水果的net 2016-04-26
  • 打赏
  • 举报
回复
引用 5 楼 shanying_lv 的回复:
版主说的删除是指数据文件删除后对表的删除操作还可以进行吗? 在数据库版本11.2.0.4.0,操作系统redhat6.0 这种情况下是会延迟报错,删除数据文件后,依旧可以进行插入和查询。 具体10g的情况只是同事一说,他也记不太清了,不过基本明白原因了,非常感谢楼上解答
你同事说的这个情况,倒是有可能发生的,毕竟操作系统的小版本和 oracle 的小版本太多了,而你现在的这个情况也不常见,所以出现的概率就更低了;
土豆番茄 2016-04-26
  • 打赏
  • 举报
回复
版主说的删除是指数据文件删除后对表的删除操作还可以进行吗? 在数据库版本11.2.0.4.0,操作系统redhat6.0 这种情况下是会延迟报错,删除数据文件后,依旧可以进行插入和查询。 具体10g的情况只是同事一说,他也记不太清了,不过基本明白原因了,非常感谢楼上解答
卖水果的net 2016-04-26
  • 打赏
  • 举报
回复
引用 3 楼 shanying_lv 的回复:
[quote=引用 2 楼 wmxcn2000 的回复:] 应该是 linux 系统,好多做 linux 文件恢复,正是用的这个原理 ;
操作系统的确是linux,误操作是直接rm的数据文件,但貌似之前有同事说在oracle10g下会直接报错,不知道这个和数据库版本是否也有关系[/quote] 我这里只有一个 10.2.0.0 的版本,我刚才试了一下,可以删除的,难道这个会有特定环境下才会发生? 你能提供一下你的linux 的具体版本吗? 还有 oracle 的小版本;
土豆番茄 2016-04-26
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
应该是 linux 系统,好多做 linux 文件恢复,正是用的这个原理 ;
操作系统的确是linux,误操作是直接rm的数据文件,但貌似之前有同事说在oracle10g下会直接报错,不知道这个和数据库版本是否也有关系
卖水果的net 2016-04-26
  • 打赏
  • 举报
回复
应该是 linux 系统,好多做 linux 文件恢复,正是用的这个原理 ;
gikod 2016-04-26
  • 打赏
  • 举报
回复
是Linux吧,因为删除只是逻辑的标记,不是物理重写。所以文件句柄只要不关闭,inode就还可以访问。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧