eygle.com   eygle.com
eygle.com  
 

« March 2007 | Blog首页 | May 2007 »

上一页 1 2 3 下一页


DBA警世录:Oracle的共享内存段

作者:eygle

出处:http://blog.eygle.com

最近看到ITPUB上有这样一个帖子,觉得有点意思,收录一下,以为借鉴。

这位朋友的Apache和Oracle运行在同一台主机上:

平台是redhat as 3 ,oracle 9204.
其他应用是apache,resin等。

因为以前发现apache运行时间长以后会出现共享内存不足的错误,具体错误信息如下:

[Fri Apr 13 06:00:03 2007] [error] shm.create(): error creating shm 2 No such file or directory
[Fri Apr 13 06:00:03 2007] [error] shm.create(): error creating shm /home/apache/logs/shm.file
[Fri Apr 13 06:00:03 2007] [warn] pid file /home/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Fri Apr 13 06:00:03 2007] [emerg] (28)No space left on device: Couldn't create accept lock

为了解决这个问题,这位同学的解决方法是:

因此,我写了一个脚本,来定时检测并清理。一直很有效。

当Apache和Oracle跑在同一台主机上时,这个脚本就出现了Bug:

前一段时间,新开了一个小应用,也是apache的应用,由于没地方放了,就放到oracle机器上了,一直运行比较好;
今天早上接到信息,说新开的这个apache应用服务停止了,打开log一看,又是共享内存的问题,二话不说,把原来的脚本在系统上跑了一遍,restart apache,ok。系统可以了。
过了几分钟。问题大了,说oracle服务宕了。赶紧检查,ps -ef|oracle 服务都没了

由于脚本中缺少必要的判断,Oracle的共享内存段也别清除,所以Oracle数据库也挂了,alterlog文集中记录了如下信息:

Errors in file /opt/oracle/admin/sc1/bdump/sc1_reco_5195.trc:
ORA-27157: OS post/wait facility removed
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
Fri Apr 13 10:10:46 2007
Errors in file /opt/oracle/admin/sc1/bdump/sc1_smon_5193.trc:
ORA-27157: OS post/wait facility removed
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
Fri Apr 13 10:10:46 2007
RECO: terminating instance due to error 27157
Fri Apr 13 10:10:46 2007
Errors in file /opt/oracle/admin/sc1/udump/sc1_ora_23824.trc:
ORA-27153: wait operation failed
ORA-27300: OS system dependent operation:semop failed with status: 22
ORA-27301: OS failure message: Invalid argument
ORA-27302: failure occurred at: sskgpwwait2
Fri Apr 13 10:10:46 2007
Errors in file /opt/oracle/admin/sc1/bdump/sc1_lgwr_5189.trc:

Oracle数据库是需要再系统上分配共享内存段的,这个是基本的常识,在故障之后,这位同学才想起来:

[root@oracle]# ipcs -s

------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 4849664 nobody 600 1
0x00000000 4882433 nobody 600 1
0x00000000 4915202 nobody 600 1
0x00000000 4947971 nobody 600 1
0x00000000 4980740 nobody 600 1
0xbeae576c 5111813 oracle 640 201
0xbeae576d 5144582 oracle 640 201
0xbeae576e 5177351 oracle 640 201
0xbeae576f 5210120 oracle 640 201
0xbeae5770 5242889 oracle 640 201
0x00000000 5275658 nobody 600 1
0x00000000 5308427 nobody 600 1
0x00000000 5341196 nobody 600 1
0x00000000 5373965 nobody 600 1
0x00000000 5406734 nobody 600 1
0x00000000 5439503 nobody 600 1
0x00000000 5472272 nobody 600 1
0x00000000 5505041 nobody 600 1

果然有oracle的共享内存,而我的脚本没有判断。如果只是删除apache用户的共享内存,可以这样

ipcs -s | grep apache | perl -e 'while () { @a=split(/\s+/); print `ipcrm sem $a[1]`}'

如果大家谁的应用和我这个类似,一定注意。

其实这个故障还是一个低价的故障,首先如果我们在不同的服务器上运行同一个脚本,严谨的做法是需要经过检查、测试,以确认其正常运行性,未经过测试靠猜想是不值得信任的。
其次,作为严谨的一个方面,权限及运行脚本的用户身份是需要明确的,root用户执行任何操作都相当危险,应该慎之又慎。我在有些习惯DBA需要养成一文中对这方面曾有探讨。

话又说回来,如果这是一个重要的业务数据库,这样的操作引发的故障将是极为恐怖的(当然重要的系统这样的错误基本上也不会发生),所以作为一个DBA应该对自己的行为三思、多思而后行。

-The End-

Posted by eygle at 11:59 AM | Comments (2)


April 14, 2007

《深入浅出Oracle》的台湾读者

作者:eygle

出处:http://blog.eygle.com

白天在外面逛了一天,晚上回到家,有一位朋友打电话要来买书,ITPUB的三本书每本购买一册。

她住的不远,很快来到我的住所附近,拿书给她的时候,顺便问了一下她从哪里来的。
她说:台湾。
我说:台湾也有朋友知道这些书的么?
她笑笑说:书写的好哪里都会友人知道的。

心里小小的高兴了一把,没想到我们还有了台湾的读者,不知道这几本书她是捎给谁的,只希望这书能够帮助海峡那边的同胞们。

也许这书的读者也会看我的网站吧?

-The End-

Posted by eygle at 10:19 PM | Comments (11)


April 13, 2007

清华大学出版社的系列图书

作者:eygle

出处:http://blog.eygle.com

本周三,收到了清华大学出版社寄来的3本样书。
包括《Oracle Database 10g高可用性实现方案-运用RAC、Flashback和Data Guard技术》、《Oracle Database 10g DBA手册》、《Oracle Database 10g 安全性高效设计》,感谢清华出版社。

Oracle数据库的高可用性实现是一个很热的话题,最近有朋友也正要写这样一本书,在印象中,关于24x7最经典的一本书是Venkat S. Devraj著的《ORACLE_24.7技术与技巧---数据库高可用》,这是一本基于Oracle8版本写成的书,其内容涵盖之广泛、探讨之深入至今仍无人能及,偶尔翻阅,仍然时有收获。

清华这本书翻了一下,发现第一版居然早在2005年5月就已经出版了,现在这本是2007年2月的第二次印刷。看来清华大学引进这本书的时间是颇早的,不过2次印刷的印数刚刚达到5200册,其销量并不算理想。

翻译的最高境界据说是信、达、雅,不过技术类书籍,现在很多翻译是连“信”都做不到,这是一个通病。待细细翻阅以后再来和大家分享一下这三本书的亮点。

-The End-

Posted by eygle at 4:08 PM | Comments (3)


April 12, 2007

《深入浅出Oracle》与10g XE

作者:eygle

出处:http://blog.eygle.com

下个周六,也就是4月21日,我将会出席Oracle大学的一个活动,并有一个小小的演讲,这个课程主要内容是Oracle10g 数据库开发和互动实验,是Oracle公司专门定制的以实践操作为主的互动实验课程,课程的日程安排可以从以下链接获得:
http://www.oracle.com/global/cn/education/promotions/xe_minilesson_cn.htm

在课程中,Kamus将会讲授Linux平台上安装和部署Oracle 10g XE数据库,以及使用SQL开发工具进行开发和互动实验。最后有我的一个名为“深入浅出Oracle--DBA入门、进阶与诊断案例”专题的演讲活动,并且现场会送出10本《深入浅出Oracle》。

Oracle10g XE版本是个不错的东东,免费,当然也存在限制:最多存储 4GB 的用户数据,最多使用 1GB 内存,并在主机上使用一个 CPU。

即将到来的一个演讲

这个活动时免费的,但是我没看明白Oracle的宣传页,貌似要参加他们的培训才有机会去?不会吧。

-The End-


Posted by eygle at 10:41 AM | Comments (4)


April 11, 2007

CSDN英雄会上签名送书

作者:eygle

出处:http://blog.eygle.com

4.6日参加CSDN英雄会,人邮举行了一个小小的签名送书活动,共计送出60本《深入浅出Oracle》。
今天收到了编辑寄来的几张照片,纪念一下:
英雄会上签名送书

此外今天还收到了人邮寄来的一本纪念邮册,很是精美漂亮,感谢人邮的朋友们。

-The End-

Posted by eygle at 11:08 PM | Comments (2)


April 10, 2007

Oracle支撑起世界最大人口身份信息数据库

作者:eygle

出处:http://blog.eygle.com

今天在论坛里看到这样一则新闻:我国建成世界最大人口身份信息数据库,新闻是2月份的,主要内容说:

记者从公安部全国公民身份号码查询服务中心(以下简称“查询中心”)了解到,经过5年的建设,全国近13亿人口身份数据已于2006年底全部入库,世界最大的人口身份信息数据库“全国公民身份信息系统”正式建成。

公安部“全国公民身份信息系统”的建成,是全国各地公安机关治安户政部门广大干警、查询中心以及相关部门共同努力的成果。各地基层干警20多年来对户籍数据的采集、整理、录入,查询中心近5年的系统开发、数据收集、加载,再加上中国移动、中国电信、中国联通、中国网通等单位的大力支持和配合,身份信息核查服务已覆盖到全国9.6亿所有电话和互联网用户,可以帮助有需求的用户利用网络、手机等手段有效、便捷地核查身份信息,识别公民身份信息的真伪。
“查询中心”负责人为陆素冰。

还记得去年的一则新闻我国3.4亿个人信用信息基础数据库正式运行,中国人民银行的这个数据库后来证实是运行在Oracle数据库之上的,查询过的朋友也宣称其信息极为详尽,覆盖到记录用户的所有银行信息、信贷信息已经帐务信息等。如果这个系统可以用于最近国家大为推动的个人报税机制,那么相信很多隐藏的交易已经偷漏税信息都可以被核查出来。但是也许,怎样有效的应用这个数据库始终是个问题。

现在,这个更大型的全国人口信息库来了,而且更为庞大,来势汹汹。
按照之前对信用数据库的粗略估算:
用户表按每个用户记录占用1K Bytes计算,3.4 x 108 x 1 K = 340 G
信贷记录表按每记录2 k Bytes计算,35 x 106 x 2 k = 70 G

现在这个数据库的数据量应该至少在那个数据库的4倍以上,也就是最基础数据量至少再3~4T左右,这也是一个海量数据库了。

而且据说这个数据库架构在 SUN + Oracle RAC 基础之上,而且初始并不稳定。看来Oracle又一次赢得了海量数据的选择。

公安部的这个数据库目前已经通过网站向外提供收费服务,看来大家都开始务实起来,首先把盈利摆在了前面。

其实对于这两个数据库,我最关心的是数据的变更问题,会有人负责即使更新这两个数据库么?
否则信息陈旧下去其价值及及时性必然受到质疑。

有更了解这两个数据库运行机制的朋友么?

-The End-

Posted by eygle at 7:35 PM | Comments (22)


如何使用ftp从Metalink上下载补丁

作者:eygle

出处:http://blog.eygle.com

Oracle提供一个站点可以用于通过ftp下载Oracle的所有Patch,这个站点是updates.oracle.com。
我们可以在命令行登录,当然需要一个Metalink帐号认证:

C:\>ftp updates.oracle.com
Connected to bigip-aru.oracle.com.
220 FTP server ready.
User (bigip-aru.oracle.com:(none)): metalink@eygle.com
331 Username OK, please send password.
Password:
230-
230- Welcome to the Oracle Patch Download FTP Server
230-
230- For detailed help, use command "quote site help".
230

注意根目录是不能ls的,因为Patch是海量的:

ftp> ls
200 PORT command OK.
150 Opening data connection for file listing.
226-Listing complete. Data connection has been closed.
226-It is the policy of this server to deny all
226-requests to list from the root directory.
226-Only directories with names which match
226 bug numbers exist and there are too many to be listed.

我们必须知道确切的Patch号才能导航到下一级目录,我今天是下载了一个Windows上的10203的补丁:

ftp> cd 5337014
250 Changed directory OK.
ftp> ls -al
200 PORT command OK.
150 Opening data connection for file listing.
total 1
-r--r--r-- 1 root other 1604896973 Feb 22 02:58 p5337014_10203_AIX64-5L.zip
-r--r--r-- 1 root other 1424057924 Feb 22 02:37 p5337014_10203_HP64.zip
-r--r--r-- 1 root other 1443790237 Mar 15 14:14 p5337014_10203_IBMPower.zip
-r--r--r-- 1 root other 944121770 Feb 21 03:20 p5337014_10203_LINUX.zip
-r--r--r-- 1 root other 1209745348 Feb 22 02:35 p5337014_10203_Linux-IA64.zip
-r--r--r-- 1 root other 1082086597 Feb 22 02:28 p5337014_10203_Linux-x86-64.zip
-r--r--r-- 1 root other 937018969 Feb 23 03:30 p5337014_10203_MSWIN-x86-64.zip
-r--r--r-- 1 root other 881471858 Feb 26 15:51 p5337014_10203_MVS.zip
-r--r--r-- 1 root other 1254311329 Feb 22 03:03 p5337014_10203_SOLARIS64.zip
-r--r--r-- 1 root other 893831865 Feb 21 03:39 p5337014_10203_WINNT.zip
-r--r--r-- 1 root other 1122786231 Feb 23 03:30 p5337014_10203_WINNT64.zip
226 Listing complete. Data connection has been closed.
ftp: 收到 946 字节,用时 0.00Seconds 946000.00Kbytes/sec.
ftp> quit
221 Goodbye. Service closing connection.

这种方法还是的确方便的,记录一下。

Oracle10g 10.2.0.3 WINNT的补丁居然有800多M,再记录一下Flashget的下载信息:

URL ftp://updates.oracle.com/5337014/p5337014_10203_WINNT.zip
注释
引用页
续传 Yes
本地文件 e:\Downloads\p5337014_10203_WINNT.zip
日期 02/21/07 03:39:00
大小 893831865
完成 893831865
总耗时 01:09:12
平均速度 210.23 KB/s
创建时间 04/10/07 13:51:00
完成时间 04/10/07 15:00:52

-The End-

Posted by eygle at 2:06 PM | Comments (5)


April 8, 2007

莫辜负春光明媚的日子

作者:eygle

出处:http://blog.eygle.com

春天来了,春光正好。
正是出去走走的好时机,也许不需要多远,处处都有春的气息,春的风景。

北宋词人王观有两句词说:若到江南赶上春,千万和春住。
我们现在不需要去江南,也不需要赶上春,春天已经在身边了。

昨天和老婆去家附近的元大都公园散步,几树樱花开的正好,拍了几张照片,希望能够将春的记忆就此留住。

很多花苞正待开放:
06

同在蓝天下:
03

只把春来报:
01

走出去,千万莫辜负春光明媚的日子!

-The End-

Posted by eygle at 11:35 AM | Comments (3)


April 6, 2007

CSDN英雄会上会英雄

作者:eygle

出处:http://blog.eygle.com

今天参加了CSDN的英雄会,这是CSDN精心组织的一次网友及业内专家的聚会,声势颇为浩大。

早早到达会场,首先遇到的是ITPUB的叶开同学,叶开是咨询顾问,给了我很多有益的建议,包括写作及出版,他的建议使我下定决心再写一本书,面向另外一个细分读者市场。

晚一点,见到了Fenng,他来北京是带着一堆任务来的,据说还要托运东西回杭州,真是够忙的:),不过拿一本我的书的愿望是顺利完成了:)

Fenng帮我介绍了抓虾网的徐易容,和老徐颇聊了几个回合,对抓虾的理念和技术实现有了更深入的了解,抓虾使用MySQL已经承载了3亿的帖子量,并且通过自行开发的Cache机制,能够实现快速的数据检索,在MySQL架构之上的抓虾的性能着实不错;抓虾的另外一个共同创始人諶振宇则更关心数据挖掘的方面的内容,抓虾一直致力于从现有服务中发掘更有价值的信息。

最近Ebay也在筹划使用MySQL来搭建应用环境,DCBA正在对MySQL展开深入研究,MySQL对于互联网应用的确具有其无与伦比的吸引力,ITPUB论坛也架构在MySQL之上,而且每天都在承载不断增加的压力。从商业数据库厂商对于MySQL的态度我们也可以看出,开源的力量绝对不可低估。顺便说一句:eygle.com也是构建在MySQL数据库之上的。

出出入入,见到CSDN最忙碌的几位主角:蒋涛、曾登高、韩磊、孟岩、龙如俊等诸位老朋友。知道这个会议,始自登高的邀请,我在CSDN的活动已经不多,通过这次会议可以结识不少新朋友,实在是最大的收获;中间还见到了博文视点的周筠老师,匆匆聊了几句,关于Oracle书籍的出版,博文2007有着一系列的计划,希望博文能够为读者推出更多的好书。

下午,人邮举行了一个签名送书活动,送出了60本的《深入浅出Oracle》,虽然很多朋友看起来是不知道Oracle为何物的,但是希望他们拿到书之后,能够偶尔翻一番;一起签名送书的还有CSDN的名人:邹建、孟宪会,这是CSDN名人堂上的两位英雄。

见到了人邮的很多老朋友,我的编辑杜洁还精心的送了几本书送给我家的Baby,非常感谢,不知道将来Baby是不是喜欢,不过我很喜欢:

人邮的另外一位编辑屈艳莲06年也策划出版了2本Oracle的书籍,在2006年,人邮在Oracle书籍的出版方面作的非常不错;人邮的图灵公司还出版了Tom的经典之作《Oracle 9i & 10g编程艺术-数据库体系结构》。图灵的刘江、谢工都是非常出色的出版人,也真诚希望人邮能够推出更多的优秀作品。找到一个人邮诸位主力干将的页面

觉得这个会议有一点遗憾的地方是给CSDN的英雄们的时间太少,颁奖时间不足30分钟,之后就再没有社区英雄们的事了,厂商的广告时间太多。

-The End-

Posted by eygle at 8:07 PM | Comments (3)


April 4, 2007

故障总是在同一个地方出现

作者:eygle

出处:http://blog.eygle.com

今天维护一台SUN880服务器,这台服务器已经持续运行了291天,三年左右没有过故障:

bash-2.03# uptime
3:06pm up 291 day(s), 20 hr(s), 2 users, load average: 0.03, 0.02, 0.03

重起一直是我担心的,以前重起另外一台880就曾遭遇了稳定的风险
这次重起,也一直担心会出问题,直到收到“The system is ready”的提示,一颗悬着的心才算放了下来,接着检查一些其他的配置,可是没想到没过几分钟,系统忽然跳入ok模式。

bash-2.03#
{0} ok
{0} ok
{0} ok
{0} ok
{0} ok
{0} ok

晕,看来这主机真的是不能轻易重起。
再重起,系统一切正常,也没有发现导致系统状态切换的信息,具资深SA前同事说,这是硬件故障的前兆,估计过几天就会有硬件损坏了,我倒,决定以后这台机器不重起了。

-The End-


Posted by eygle at 9:51 PM | Comments (4)


上一页 1 2 3 下一页


CopyRight © 2004-2008 eygle.com, All rights reserved.