楼主: yaguo_96

回滚段头事务表的大小

[复制链接]
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
31#
发表于 2008-6-16 21:09 | 只看该作者
哦,以前记得看到过你说的这些,不过,一直没弄明白,这次趁这次机会,请YONG HUANG一定帮我讲清楚点,好吗?先谢谢了,./test.sh和. ./test.sh的具体区别及内在原理,最好能讲深入点,非常感谢。

使用道具 举报

回复
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
32#
发表于 2008-6-16 21:46 | 只看该作者
回滚段头部的事务槽个数是由block的大小决定的,事务槽的个数是块的函数

The number of transaction slots in each rollback segment header block is a function of the database block size. The only way to make more slots available is to add rollback segments, even though you may not need them for concurrency reasons

http://www.ixora.com.au/q+a/undo.htm#end
ORA-1555 and transaction slots

使用道具 举报

回复
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
33#
发表于 2008-6-17 00:24 | 只看该作者
http://www.ixora.com.au/q+a/0008/29204045.htm 这个文章有说明计算公式的

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
34#
发表于 2008-6-17 09:28 | 只看该作者
原帖由 sqysl 于 2008-6-16 07:09 发表
哦,以前记得看到过你说的这些,不过,一直没弄明白,这次趁这次机会,请YONG HUANG一定帮我讲清楚点,好吗?先谢谢了,./test.sh和. ./test.sh的具体区别及内在原理,最好能讲深入点,非常感谢。


It's UNIX (Linux) shell. A dot script runs in and affects the current environment, while a regular script (run without a dot) runs in its own shell. A dot script is a ksh/sh/bash concept and is equivalent to running a csh/tcsh script with the source command.

As to why running "sqlplus user/pass @SQLscript" in a subshell automatically commits, I'm not sure. It behaves like the subshell typed "exit" or ^D before it exits itself. That is, it seems to have done "exit" twice, once for the sqlplus command, and once for the subshell itself. Maybe that's what a subshell normally does? Check a UNIX shell programming book. When I have time, I'll check too.

Yong Huang

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
35#
发表于 2008-6-17 20:46 | 只看该作者
YONG HUANG,你好,我今天进行了测试,一切如你所说,环境xp+vm+e_linux4+rac10.2.0.1。虽然,中间可能因为块itl的因素有些波折,但在对数据进行了分散处理后,确实如你所说。
我今天也查阅了SHELL编程的书,结果是没找到有关DOT SCRIPT的内容,然后在我的环境的E_LINUX4下查了一下帮助,介绍了点source的内容,也如你所说。
对于dot scripts和直接执行脚本,我是这么理解的:

当用dot scripts运行脚本时,它是读取脚本内容,然后在当前环境下执行,这样,在运行完./TEST.SH后,由于当前SHELL没退出,而且在脚本里没有COMMIT,所以,事务一直挂在那里,不提交也不回滚,一旦关闭当前SHELL,事务完成提交,因为当异常终止时,SQLPLUS的缺省行为是COMMIT;

当直接运行./test.sh脚本时,由于这是在子SHELL里运行该脚本,一旦该脚本运行完,那么子shell就退出,子shell的退出导致sqlplus的异常终止,从而导致事务的提交,因为脚本的运行非常快,子shell的退出也很快,因此,查不到48个事务的存在。
一起探讨。

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
36#
发表于 2008-6-18 02:31 | 只看该作者
原帖由 sqysl 于 2008-6-17 06:46 发表
...
因为当异常终止时,SQLPLUS的缺省行为是COMMIT;


Are you sure about that? I thought it was rollback.

Yong Huang

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
37#
发表于 2008-6-18 07:50 | 只看该作者
应该是,因为在上次我测试时,直接运行脚本./test.sh,虽然在v$rollback中没查到那48个事务,但表中的数据确实删除了,有时间我再单独测试一下这个问题,谢谢回复。

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
38#
发表于 2008-6-18 12:52 | 只看该作者
原帖由 Yong Huang 于 2008-6-18 02:31 发表


Are you sure about that? I thought it was rollback.

Yong Huang


YONG HUANG:
    你说的是对的,SQLPLUS在正常退出的情况下是COMMIT,在异常退出的情况下为ROLLBACK,可见,子shell在退出前,给SQLPLUS确实发出了一个正常退出的信号,类似:exit。至于具体发了个什么信号,我不知道,确实有待于查阅具体的资料,又时间查查,如果你查资料后有什么发现,也请你贴出来,谢谢。

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
39#
发表于 2008-6-19 01:27 | 只看该作者
原帖由 sqysl 于 2008-6-17 22:52 发表

YONG HUANG:
    你说的是对的,SQLPLUS在正常退出的情况下是COMMIT,在异常退出的情况下为ROLLBACK,可见,子shell在退出前,给SQLPLUS确实发出了一个正常退出的信号,类似:exit。至于具体发了个什么信号,我不知道,确实有待于查阅具体的资料,又时间查查,如果你查资料后有什么发现,也请你贴出来,谢谢。


I was thinking SIGHUP because that's what OS does when you exit a shell. (What other signal would correspond to eof or ^D?) But I tried kill -1 [sqlplus pid]. The transaction inside the sqlplus was rolled back. So that's not it, or I didn't test this right.

Yong Huang

使用道具 举报

回复

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

本版积分规则 发表回复

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