oracle 10g的启动参数(ORA-01000问题)
大约一周前,小站的数据库出问题了,首先是系统运行一天左右,图片系统的图片无法浏览,重新启动系统才摆平。
昨天晚上8:40-9:40,数据库连接出问题,所有需要数据库支持的内容都无法访问,这是最近几个月来没有过的。我有些恼羞成怒,非摆平它不可,否则太没有面子了,这么少的访问量,竟然数据库连接不够用,超出最大游标打开数,这是很低级的错误了。
前几天试图改正ORA-01000错误,就是超出最大游标数问题,以为摆平了,看来不是这样。
事情的起源,7.26凌晨,小站的数据库系统由oracle 8i升级到oracle 10g,之后2个月并无任何问题。
但8月底开始出现ORA-01000错误。简单的查了一下资料,主要是程序不够robust,有些数据库的连接未正确关闭,每打开一个statement或者preparedstatement,都应该正确关闭之,否则打开的游标就不能够释放,累积下来,就可能超过最大的游标数(open_cursors)。
解决方案,一、修正程序错误,正确关闭所有数据库的连接,特别是在数据库操作出?硎钡氖菘饬樱馐敝伪局ā?
二,修改数据库的启动参数,适当增大系统设定的打开游标的最大数目,如果程序错误不时很严重,应该也能够管用。
之所以在8月底出错,是因为开学了,学生开始使用图书馆系统,而图书馆系统在本站系统中是技术最薄弱的部分,开发时间最早,对出错处理非常糟糕,数据库连接未能正确关闭的错误大部分就出在此频道。
图书馆系统代码重构虽然已经列入计划,但解决问题最快的办法就是增大系统设定的open_cursors值。
查看/oracle/OraHome_1/zdu/spfilezdu.ora,当前系统设定的open_cursors值为默认的300,这显然太小。
进入/oracle/OraHome_1/admin/zdu/pfile,修改里面的仅有的一个init.ora文件,文件名init.ora.4320051835。
数据库的名称为zdu, sid的名称也是zdu,本来根据oracle 8i的经验,应该找initzdu.ora文件,修改之,但没有找到,只好凑合着修改这个文件,在文件末尾加上一行:
open_cursors = 1000
还是没有把握,又进入/oracle/OraHome_1/zdu,修改里面的init.ora文件,又将上行加入。以为这下,应该解决了ORA-01000A问题了。
9.5再次出错,说明9.1的设置可能没有起作用。
果然,查看spfilezdu.ora里面系统使用的open_cursors值仍然是300,而不是我以为的1000.
如何使修改的open_cursors生效呢?
上网找了这份资料:http://cnoug.zahui.net/html/1/36116.htm
依照里面的提升:
1.启动sqlPlus.
2.SQL> connect /as sysdba
3.create pfile from spfile
4.发现pfile目录里面的文件果然起变化了。
5.将spfilezdu.ora改名,使其不起作用。
6.重新启动数据库。
7.create spfile from pfile
8.再看spfilezdu.ora内容果然变化了。

9.修改其他参数,例如sga, process,并安装上面的步骤使其生效。

10.通过今天的观察,证明问题初步解决了。当然,代码中的错误仍然需要修正。

ps: 今天晚上验证了,以后的修改只要修改dbs里面的initzdu.ora文件就可以了,删除spfilezdu.ora文件,重新启动数据库,就ok了。不放心的话,再执行上面的7/8两步,查看新生成的spfilezdu.ora文件了。
本文文件名中的zdu是我们数据库的sid,参考者用自己的sid替换一下,就ok了。
hofman   2005-09-06 23:15:46 评论:0   阅读:6406   引用:0
哈哈 @2006-04-14 19:13:47  vitamin
终于找到这张图片了,记的在上课时hofman给看过
忘了在那里了---哈哈

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

2003-2007@copyright