数据库

 首页 > 数据库 > Oracle > ORA-00020,ORA-01304,ORA-27101基础故障处理

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

分享到:
【字体:
导读:
         摘要:ORA-00020,ORA-01304,ORA-27101基础故障处理##ORA-00020问题在定点维护的过程中,安装数据库时,都是采用Window软件安装下一步模式,各种配置参数值都是默认值。但因为该定点收费端点数多,一早登录的用户进程数... SyntaxHighlighte...

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的专栏
ORA-00020,ORA-01304,ORA-27101基础故障处理
分享到:
oracle同义词、序列、视图用法简析
oracle同义词、序列、视图用法简析 同义词 是数据库对象的一个别名,Oracle可以为表、视图、序列、存储过程、函数、程序包等制定一个特定的别名。   同义词的两种类型:   >>私有同义词:拥有CREATE SYNONYM 权限的用户(包括非管理员用户)即可创建私有同义词,创建的私有同义词只能由当前用户使用。 >>公有同义词: ...
Oracle当天记录的查询
Oracle当天记录的查询 Oracle当天记录的查询   Java代码         select * from(       select t.*,rownum rn from(       select   www.2cto.com             col1,                to_char(A.TestTime,'YYYY-MM-DD HH24:MI:SS') as TestTime,              from TestTabl...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……