楼主: bingcha320

奇怪的事情!数据文件删掉后,仍可对数据文件中的表操作?

[复制链接]
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
11#
发表于 2005-2-4 09:01 | 只看该作者
最初由 biti_rainy 发布
[B]这是因为你在 os 上删除文件 仅仅是摘掉了文件的 I-node 的根,在该目录下就看不见文件了,文件本身的数据和block并没有被清除。oracle已经记下了文件的i-node ,只是在os上 ls不在能看见文件而已,不仅数据文件,甚至联机日志文件都可以删除,只是在 logfile switch的时候才出错。

也就是说当需要在os上重新去定位这个文件的时候就出错了 [/B]



你說的這種情況,在unix下面也是這樣的嗎?
請問什麼是I-node?

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2005-2-4 09:07 | 只看该作者
楼上说的对,我后来把联机日志文件也删掉了,仍然可以对表操作,只有在库重启的时候,提示找不到文件。
但是我还是不理解楼上所说的文件的 i-node是指什么?
我的理解是不是我在os删掉数据文件后,再对表的操作就是在数据库高速缓存区中的操作了,所以即使没有数据文件,缓存区中的内容还在,所以操作可以正常进行。但是在需要重新定位文件的时候,由于文件被删,所以这时报错?

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33铁扇公主
日期:2007-10-26 16:08:47
13#
发表于 2005-2-4 09:17 | 只看该作者
最初由 oracle-plus 发布
[B]


你說的這種情況,在unix下面也是這樣的嗎?
請問什麼是I-node? [/B]



每个文件都有一个INODE,用来描述该物理文件的OWNER, PERSIMMION ,SIZE,还有POINTER指向文件的DATA BLOCK

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
14#
发表于 2005-2-4 09:54 | 只看该作者
最初由 netsnake 发布
[B]


每个文件都有一个INODE,用来描述该物理文件的OWNER, PERSIMMION ,SIZE,还有POINTER指向文件的DATA BLOCK [/B]



Inode的中文解釋是什麼?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2005-2-4 10:00 | 只看该作者
最初由 oracle-plus 发布
[B]


Inode的中文解釋是什麼? [/B]


你去搜搜  unix 的 文件系统的知识看看吧

这玩意没中文术语,就是说文件系统中文件的结构也是 树状的,跟索引类似,inode 就类似 枝节点

使用道具 举报

回复
论坛徽章:
42
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:022011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
16#
发表于 2005-2-4 10:24 | 只看该作者
你commit一下,再试试?

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
17#
发表于 2005-2-4 10:34 | 只看该作者
thanks!

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-11-26 03:00:34授权会员
日期:2005-11-26 03:43:55会员2006贡献徽章
日期:2006-04-17 13:46:34
18#
发表于 2005-2-4 11:25 | 只看该作者

不仅oracle,sybase也是同样。

记得过去的时候曾经在SYBASE,做过这样的操作。原理应该和biti讲的一样。

使用道具 举报

回复
论坛徽章:
0
19#
 楼主| 发表于 2005-2-4 11:37 | 只看该作者
commit;
也可以运行,可以把commit 的数据写入到删掉的数据文件。

使用道具 举报

回复
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
20#
发表于 2005-2-4 11:39 | 只看该作者
不是在内存中操作的意思

是真正的写入了数据文件中,只不过这个数据文件没有i-node而已

在文件系统中,每个文件都有一个i-node,i-node指向存储区域,删除文件只是删除了i-node table中的标记,如果oracle已经获得了存储区域还是可以写数据文件的(存储区域还没有被覆盖),当再次确认i-node table中的标记时就会报错
另外删除了i-node的数据文件存储区域是不受保护的

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表