« February 2006 | 首页

1 2 3 4 5 6 7 8 (Page 4 of 8)



| April 2006 »

利用搜索引擎自助解决 Oracle 的技术问题

很多时候,大多数IT类的技术问题完全可以自行去解决它,相对于答案来说,我们更需要一个方法.下面就一个例子来说说一些Oracle问题的解决途径(途径?如果可以这么说的话)。

问:关于x$ktuxe表的疑问??

本人在电子杂志(注:www.itpub.net 的电子杂志)第五期第29页看到这条语句,但我不清楚其具体含义,能否帮忙解释一下?另外,这里的kluxescnw和kluxescnb又是什么意思?
select max(ktuxescnw*power(2,32)+ktuxescnb) scn from x$ktuxe;

答:说点题外话,类似如下的问题,如果是我怎么去找答案。 

首先,这样的问题我先看看有没有必要要弄明白,x$ktuxe,第一眼看上去,是Oracle的一个内部视图,既然是这样,可以知其然,不继续深入的了解他......

什么?这样的习惯不太好? %$#@.....

那好,如果不是这样,我偏要了解一下这个视图是做什么的.怎么办? 到 OTN 上寻找文档?不太可能,这样类似的视图一般Oracle不会详加说明的。 对了,Metalink上也许会有,哦,没有Metalink 的帐号...

还好,我们有搜索引擎 Google,输入 x$ktuxe. Search it , OK ,共有 116 项查询结果,稍加审视.第一项结果是:

Rollback Segment Scripts
... the rollback segment header blocks. The rollback segment header block transaction tables can be read via X$KTUXE, however the number of undo blocks in use is not always accurately reflected here until release 9i. Prior to that, it is necessary ...
http://www.ixora.com.au/scripts/rbs.htm

第三项结果是:

Speculation of X$ Table Names

... x$ksulop, kernel service, user long operation, x$ksupr, kernel service, user process, x$ksuse, kernel service, user session, x$ktuxe, kernel transaction, undo transaction entry, x$kzsro, kernel security, system role, used in many SQL scripts in ?/rdbms/admin. x$le, lock element, x$le_stat, lock element status, ...
http://www.stormloader.com/yonghuang/computer/x$table.html - 16k

有这两个结果,看来已经足够了,阅读一下...... 嗯,基本明白了一些

不过能不能得到点具体的信息?还是 Google 吧

有的时候,可能 Google 直接搜索出来的信息,对我们用处都不大,那么你还可以搜索Google的新闻组: http://groups.google.com , 在我们的这个例子中,得到的第一个结果:

Re: where can I find the latest SCN
... select discn from x$kccdi; You can get the SCN of the most recently committed (local) transaction with the following query: select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe; This may not be quite the same as the current SCN, because the latter may have advanced a little for various ...
comp.databases.oracle - Serge Lisin 写于 2002年9月18日

Ok,看看去?是什么样的问题,别人如何回答的。把这个帖子的 Thread 从头到尾读一下,到现在为止,这个问题至少已经比较清晰了--至少,你得到的结果也会比我试图解释给你的答案清晰。

更多的时候,别人给你回答问题也是通过这种途径.为什么不自己掌握类似的方法呢?

看到这里,你可能会说:这么简单,谁还不会?的确,的确是人人都会的办法,问题是:遇到类似的情况,你能不能想到这样的方法? 不要忘了,搜索引擎是你身边的最大的知识库.

废话一堆,如果您看了觉得还有点用那我可就太高兴了

--
后记:这是很久以前的一篇随手写的文档

补充新发现的一点资源:
http://www.wisdomforce.com/dweb/resources/docs/complete_rollback_script.pdf

March 16, 2006

我的读书"历史"

很小的时候,还没上学呢,比较有印象的一本书叫作《神州擂》,讲的是爱国豪杰痛扁外国人的故事,主人公叫做东方一杰, 有些看不明白(主要是不认识几个字),但是留下了很深的印象。

小学1年级,小人书《碧血剑》,《东周列国志》懵懵懂懂,好奇,就翻来看,认字实在是不多,嘿嘿.

小学2年级,《冰川天女传》港版的,繁体竖排版,不知道有多少人看过这个版本?一直到现在我还认为这是梁羽生写的最好的一本书之一,也就是写出了金世遗心底的孤独和那与生俱来的自卑。当然这是我后来感觉到的,当时看的时候繁体字认得不多,旁边要拿一本字典。

小学3年级,有一本小人书《战病菌》写的几乎就是近现代医学的发展史,里面的一些内容竟然在我在大学里考试都用得上,当然我的专业课几乎不及格的了。在舅舅家看到《笑傲江湖》,当时不是很用心的看,主要是第一章的内容,甚至是第一部都写得很沉闷。金庸的长篇几乎都有这个毛病。

小学4年级《天龙八部》速度飞快,奇怪的是那时候几乎能够记清楚所有的情节,不可思议。与它相同的就是后来看到的《四大名捕会京师》看的时候感觉特别刺激,其中的打斗简直是太精彩了!

小学5年,《多情剑客无情剑》,感觉到了古龙小说的魅力,在此之前,看过若干古龙的别人冒名之作和一些不成熟的作品,在我心中居然形成了古龙=黄色小说的印象,惭愧。那个时候自己还算是个好孩子,看到书中的一些“那个”就心惊肉跳,呵呵。

小学六年级,《侠客行》

初一的时候《呐喊》《彷徨》读了很多遍,想的不是很多。一本《世界历史》,名字是这个,但是现在找不到了。历史题材的书籍后来在我的读书单子中多了很多。

初二,看到过一本师范院校的教材,其中收录了汪增祺的小说《受戒》,没有任何历史背景的幸福生活的一种。

初三,几乎是空白,现在没甚么印象了。那本枯燥的政治黄皮书看了有几十遍吧。只背下了6/7遍,有的同学背了 37 遍;

高中一年级,重读《三国演义》,一个寒假看了大约有十几遍,看的很认真,最后那本书看的好像被抽了筋骨。

高中2年级,读到《鲁滨逊飘流记》,大约有6-7遍的样子,最后上课看的时候被数学老师没收了,嘿嘿,后来我去要,数学老师死活不给,原来他没看完。《百年孤独》,不是很喜欢的一本书,但是后来看到很多书的第一句都写着“很多年以后....“

高3,张承志的《回民的黄土高原》,不知怎么的,当时就很喜欢他的风格,后来实在受不了他的救世主口气了。南怀瑾系列,最爱看《老子他说》,算是少年人品味人生吧。这一年后来因为自己没有高考的压力,还看了《围城》,余秋雨的《文化苦旅》等等,还有一本书不能不提,李轻松的《玫瑰血》
补:高中时期对金庸的作品评价极高,通读金庸大作 N 遍,喜欢《连城诀》《笑傲江湖》。

大学一年级应该是我读书最多的一个时期,累计看的书有《巨人三传》《傅译传记五种》(这两本书基本内容一样),喜欢贝多芬的人生,和夏洛的生活状态。进而看了《约翰.克利斯朵夫》 , 很符合自己当时的心情。好书还有《皇帝新脑》《万历十五年》。当时认为那一年最喜欢的书是王小波的《青铜时代》,看的最累的书是《陈寅恪的最后20年》和李辉的书《风雨中的雕像》[补注:封面是老年的胡风,一脸傲气]使我对现实产生了莫名的恐惧。《Catch 22》,这本书就不说了,现在都是一个常用词了。

大学2年级,卡夫卡的《变形记》,很奇怪,这是卡夫卡的小说中我唯一完整读过的中长篇小说,其他的长篇有的已经读过很多遍,但是没有一个是完整的,这可能也和他的小说的风格有关吧。读《变形记》的时候当时很痛苦,很迷茫。海子《海子诗全编》,那是个缅怀和善于幻想的年代。

大学3年级《活着》理解了什么是人生的苦难。《黑骏马》《棋王》《白鹿原》[补注:全系男生都读完了这本书]还有莫言的若干中短篇小说,爱上了莫言的快刀砍冻萝卜一样的语言风格。他的短篇,如《司令的女人》《宝刀》《祖母的门牙》实在是有趣。米兰.昆德拉的那几本书,不是很喜欢看,出于好奇还是通读了一遍,但是翻译的质量的确很差。《瓦尔登湖》是我这一年中最爱读的书,现在还在我的身边。

大学4年级,刘亮乾的《一个人的村庄》苇岸《大地上的事情》[补注: 在北京风入松带回来的]使我回归自然之心。这两本书是受《瓦尔登湖》的影响,不过《一个人的村庄》实在是对我影响极大。


到现在为止,我没有看过《西游记》,不知道为什么,一直不想去读。不喜欢看所谓的《简爱》之流的名著,《钢铁是怎样炼成的》那本书也是比较反感,当时的政治遗风还很重,凭心而论,那样的书文学上的价值还是不高的。政治宣传的作品看过不少,但是现在这些书怕是没有人再来读了吧?现在有几个人读过《子夜》之类的书呢?

评书类的小说看过太多了,《 N 家将》......最爱看的是《童林传》,当时爱不释手.小人书看的也特别多,后来都给了别人,最开始俺哥有两百多本,可惜给了别人,只给我留下一套《东周列国志》,后来我白手起家,到了小学毕业,也初具规模,一百多本,这是足够的本钱了,和别人交换,好书极多。

以上是这么多年来的看的书籍的一个回顾,[谈不上读书, 就是看字儿]不能说哪一本书对我的影响最大,生活就是一部大书吧,我现在还没有读懂。

怀念那个难忘的时光

--
What God wants God gets God help us all

后记:
昨天偶然发现以前写的这个流水帐。复录一下.

March 15, 2006

天才

前几天面对一则关于"智慧星杀毒软件"的新闻, 不禁感慨"中国什么都缺, 就是不缺天才!"

几乎三两年一个轮回, IT 界总会冒出来一两个不世出的"天才".前几年的的满舟, 被我们的媒体激情的报道为 "一位三天写出20万字《黑客攻防秘技》的黑客少年", 三天, 20 万字 , 即使找一个五笔输入高手不吃不喝照稿子敲也要累个半死, 人家"天才"一蹴而就可写成"秘技"。一时间媒体报道铺天盖地而来, 除了有公司请当 CEO 不说, 最后还被复旦大学来个特招.顺利完成人生资本积累.

今年又是一个天才年.最近出来的天才是 15 岁的开封高中高一学生魏仁乐. 这个天才的成就是用自己的话说是这样地:

从“杀毒速度”这方面出发,创新性地应用了与众不同的扫描方法,编写了这套《智慧星杀毒软件》,使杀毒速度大大提升.据测试,使用本杀毒软件扫描10G的硬盘只需要 20-120秒.当杀毒软件成型后,我又想到,反病毒重在“防”,而不是病毒感染后被动地去查杀.于是,我又对“监控中心”这个组件进行了关键性的技术改进,创新地由“被动防御”改成了"主动防御".
就我浅薄的计算机知识来说, 弄出来一套杀毒工具可不是闹着玩的阿, 那些国际知名的安全公司"扫描速度很慢"的产品,工程师团队都是数以百计呀, 可一看天才创造这个"智慧星"看起来就犹如探囊取物一般, 即使是比尔盖茨少年时也不及魏仁乐同学万分之一阿. 研发 Norton、卡巴斯基的工程师们, 面对这样的天才, 你们的脸往哪儿搁?

现在据报道已经有公司准备请天才去充门面了, 当然, 薪酬都是很高地.当然,天才的另一个归宿也很容易预测: 某知名大学特招该天才. 当然, 天才自负, 开始都是拒绝地,后来都是会同意地。需要提前警告这所学校的是:要承担把天才培养成普通人的风险--这将是另外一则值得讨论的新闻了.

天才速成法: 无知媒体 + IT小孩=> 天才

上帝说, 要有天才, 于是天才诞生--在中国.

March 13, 2006

Oracle 用户授权需谨慎

看到 有人提问关于授权的问题. 不由得想多说几句. Oracle 9i 以及以下版本的数据库,默认的数据库角色有些不太合理的地方. DBA 管理的过程中,如果不太注意的话,可能会带来麻烦或者潜在的隐忧. 比如最常见的 CONNECT 角色.

User => FOO has been granted the following privileges
====================================================================
        ROLE => CONNECT which contains =>
        SYS PRIV => ALTER SESSION 		grantable => NO
        SYS PRIV => CREATE CLUSTER 		grantable => NO
        SYS PRIV => CREATE DATABASE LINK 	grantable => NO
        SYS PRIV => CREATE SEQUENCE 		grantable => NO
        SYS PRIV => CREATE SESSION 		grantable => NO
        SYS PRIV => CREATE SYNONYM 		grantable => NO
        SYS PRIV => CREATE TABLE 		grantable => NO
        SYS PRIV => CREATE VIEW 		grantable => NO

这里面的 ALTER SESSION 就是一个问题. 恶意的用户很容易利用这个权限给系统带来麻烦.举两个例子,一个是 修改当前 Session 的 cursor_sharing 参数值为 FORCE ,然后提交可触发 Oracle Bug 的查询(cursor_sharing 在 FORCE 模式下 Bug 很多) , 很容易让数据库崩溃. 或者恶意用户提交 alter session set hash_area_size ... 的修改语句, 给自己设定一个超大的 HASH_AREA_SIZE , 再提交一定的查询,也会给系统性能造成很糟糕的影响.

这个 CONNECT 角色在 Oracle 10g 中已经修改了,只有 create session 的权限.

再来一个角色的问题. 比如 REOURCE 角色, 包含的权限如下所示:

User => FOO has been granted the following privileges
====================================================================
        ROLE => RESOURCE which contains =>
        SYS PRIV => CREATE CLUSTER 			grantable => NO
        SYS PRIV => CREATE INDEXTYPE 		grantable => NO
        SYS PRIV => CREATE OPERATOR 			grantable => NO
        SYS PRIV => CREATE PROCEDURE 		grantable => NO
        SYS PRIV => CREATE SEQUENCE 			grantable => NO
        SYS PRIV => CREATE TABLE 			grantable => NO
        SYS PRIV => CREATE TRIGGER 			grantable => NO
        SYS PRIV => CREATE TYPE 			grantable => NO
        SYS PRIV => UNLIMITED TABLESPACE 		grantable => NO

注意是包含 UNLIMITED TABLESPACE 权限的(实际上是隐含的一个权限,Oracle为什么这样做,没有明确的文档说明,在 10g 中为了向后兼容,也是这样的.), 恶意用户利用这个造成麻烦很容易:在 SYSTEM 建立一个足够大的表即可让数据库宕机.

所以,DBA 在给用户授权的时候还是谨慎为是,建议利用"最小授权原则", 只给用户必须的权限.

本站相关标签|Tags Cloud