oracle 01304,ORA-00020,ORA-01304,ORA-27101基础故障处理

ORA-00020,ORA-01304,ORA-27101基础故障处理

##ORA-00020问题

在定点维护的过程中,安装数据库时,都是采用Window软件安装“下一步”模式,各种配置参数值都是默认值。但因为该定点收费端点数多,一早登录的用户进程数超过上限后,会提示

"ORA-00020:超出最大进程数(%s)",不是专业DBA,在网上查找资料,得知:

1.Oracle数据库中有一个最大进程数设置,用DBA用户登录后,执行以下操作:

SQL> show parameter process;

www.2cto.com

NAME                                 TYPE        VALUE

------------------------------------ ----------- -----

aq_tm_processes                      integer     0

db_writer_processes                  integer     1

gcs_server_processes                 integer     0

job_queue_processes                  integer     10

log_archive_max_processes            integer     2

processes                            integer     150

可以看出,当前的最大连接进程数是150,一般安装的时候,默认就是150;

2.如何查看当前的进程连接数呢?

执行以下命令:

SQL> select count(1) from v$process;

www.2cto.com

COUNT(1)

----------

23

可以看到当前的连接进程数是23.

3.如何根据实际情况进行配置呢?

在Oracle8i中,因为初始化参数文件只有pfile,是一个记事本,具体位置:ORACLE_BASEadminora817pfileinit.ora(OEACLE_HOME=ORACLEBAEora81),

因此可以直接打开,找到processes关键字,根据实际情况修改,注意修改完成后,需要重启服务才能生效;

Oracle9i之后,因为初始化参数文件有了spfile,而spfile是一个二进制文件,不能直接手动修改,只能通过命令修改,具体命令如下:

alter system set processes=200 scope=spfile;注意,修改完毕之后,需要重启服务,重启服务后,再次查看

SQL> show parameter process;

NAME                                 TYPE        VALUE

------------------------------------ ----------- -----

aq_tm_processes                      integer     0

db_writer_processes                  integer     1

gcs_server_processes                 integer     0

job_queue_processes                  integer     10

log_archive_max_processes            integer     2

processes   www.2cto.com             integer     200

可以看到已经修改了。

##ORA-01034,ORA-27101问题:

本人在自己的机器上(Oracle10g)操作时,将processes的值修改成了3,关闭服务重启的时候,长时间不能正常启动,怀疑是processes值太小导致,

报着侥幸心理,手动修改了spfile,这下完了,在Window的servics.msc命令下,Oracle服务不能正常启动,还好,将processes=3的spfile

备份了一份,无奈之下,又物理还原回去,此时Windows的services.msc命令下,Oracle服务可以正常启动,但在cmd命令下,用DBA用户-->sys登录时,

提示:

ERROR: ORA-01034: oracle not available

ORA-27101: shared memory realm does not exist

在网上找了好多资料,大多数是修改ORACLE_HOME和ORACLE_SID,但本人的Oracle环境,没有任何问题,ORACLE_HOME与ORACLE_SID一切正常.

网上继续查找资料,针对本人的实际情况,找到了好的解决办法,大概思想是:因为本人processes值设置太小,而手动又不能直接修改spfile

文件,导致DBA用户不能正常登录,因而不能通过命令行修改spfile参数值。此时,只有通过pfile重建spfile,然后用重建的spfile替换有问题的spfile,

具体操作如下:  www.2cto.com

1.通过pfile重建spfile

先确定pfile的存放路径,本人pfile存放路径是:D:oracleproduct10.2.0adminorclpfileinit.ora.322201013452

准备将新重建的spfile放在D盘根目录下,因此,用DBA用户-->sys登录后,操作命令如下:

create spfile='d:SPFILEORCL.ORA' from pfile='D:oracleproduct10.2.0adminorclpfileinit.ora.322201013452';

2.创建成功后,用新的spfile替换有问题的spfile,spfile的存放路径:D:oracleproduct10.2.0db_1dbsSPFILEORCL.ORA,建议尽量创建

的新spfile文件名称与旧的文件名保持一致,这样,可以不用修改pfile文件的内容.替换完成之后,重新启动服务,一切正常.

摘自 JavaPeak的专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值