ORA-00064 processes设置过大导致数据库打不开

processes设置过大导致数据库打不开

在processes设置过大后,可能导致数据库打不开,开启数据库后会报错:

SQL> startup

ORA-00064: object is too large to allocate on this O/S (1,7746920)

SQL>

解决办法:

  1. 首先找到pfile位置,然后从pfile启动数据库;

    startup pfile=$ORACLE_BASE/admin/SID/pfile/init.ora.49201715235‘

    pfile一般在$ORACLE_BASE/admin/$ORACLE_SID/pfile目录下。

  2. 找到spfile位置。然后用spfile生成pfile;

    create pfile=‘/tmp/pfile.ora‘ from spfile=‘+DATADG/SID/spfileSID.ora‘

    spfile文件位置会在文件$ORACLE_HOME/dbs/init${ORACLE_SID}.ora文件中标明。

  3. 修改新生成的pfile,把process值改小后,用pfile生成spfile;

    create spfile=‘+DATADG/SID/spfileSID.ora‘ from pfile=‘/tmp/pfile.ora‘;

  4. 重启数据库后执行 show parameter spfile,查看当前spfile位置,如果位置和 $ORACLE_HOME/dbs/init${ORACLE_SID}.ora文件中标明的位置不一致,请把当前的spfile别名后,重新启动数据库。

解决步骤示例:

  1. 查看spfile的位置
[[email protected] ~]$   more /opt/oracle/product/10.2.0/db_1/dbs/initkhadb1.ora

SPFILE=‘+MYDATA/khadb/spfilekhadb.ora‘
  1. 用spfile生成pfile
SQL>

SQL> startup

ORA-00064: object is too large to allocate on this O/S (1,7746920)

SQL> startup pfile=‘/opt/oracle/admin/khadb/pfile/init.ora.492017152117‘;

ORACLE instance started.

Total System Global Area  343932928 bytes

Fixed Size          2096152 bytes

Variable Size         113247208 bytes

Database Buffers      222298112 bytes

Redo Buffers            6291456 bytes

Database mounted.

Database opened.

SQL>

SQL> show parameter spfile;

NAME                     TYPE    VALUE

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

spfile                   string

SQL>

SQL> create pfile=‘/tmp/pfile.ora‘ from SPFILE=‘+MYDATA/khadb/spfilekhadb.ora‘;

File created.
  1. 修改新生成的pfile,把process值改小后,用pfile生成spfile

SQL> create SPFILE=‘+MYDATA/khadb/spfilekhadb.ora‘ from pfile=‘/tmp/pfile.ora‘;

File created.
  1. 重启数据库,查看processes设置
SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area  343932928 bytes

Fixed Size          2096152 bytes

Variable Size         142607336 bytes

Database Buffers      192937984 bytes

Redo Buffers            6291456 bytes

Database mounted.

Database opened.

SQL> show parameter processes;

NAME                     TYPE    VALUE

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

aq_tm_processes              integer     0

db_writer_processes          integer     1

gcs_server_processes             integer     1

job_queue_processes          integer     10

log_archive_max_processes        integer     2

processes                integer     1000

SQL>

SQL> show parameter spfile;

NAME                     TYPE    VALUE

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

spfile                   string  +MYDATA/khadb/spfilekhadb.ora

SQL>

原因分析

当 PROCESSES > 1500时,候需要确保ksmg_granule_size=16M  or 32M;而ksmg_granule_size大小是根据sga_max_size来决定,当sga_max_size<=1024时,ksmg_granule_size=4M;sga_max_size是根据sga_target来决定的,修改sga_target>=1025M即可;

此处通过下面的方法,先恢复数据库,后续可根据自己规划先修改sga_target后,再修改process值

  1. alter system set sga_target=1200m scope=spfile

    修改sga_target=1200M,重启数据库时,sga_max_size=1200m;

  2. select x.ksppinm name,y.ksppstvl value,x.ksppdesc descbtion from x$ksppi x,x$ksppcv y where x.inst_id=userenv(‘Instance‘) and y.inst_id=userenv(‘Instance‘) and x.indx=y.indx and x.ksppinm like ‘%_ksmg_granule%‘;

    查看ksmg_granule_size大小。当SGA足够大时,我们可以手动设置 _ksmg_granule_size=32MB;

    alter system set "_ksmg_granule_size"=33554432 scope=spfile;

  3. 再根据自己的需求修process大小

alter system set sessions=10000 scope=spfile;

时间: 2024-08-23 22:51:43

ORA-00064 processes设置过大导致数据库打不开的相关文章

tomcat maxHttpHeaderSize 设置不够大导致 SSO 登录失败

2016-11-06 xxxx org.apache.coyote.http11.Http11Processor - Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Request header is too large at org

大开测试:性能—如何解决数据库查询结果过大导致录制失败(连载3)

7.3  如何解决数据库查询结果过大导致录制失败 1.问题提出 在进行一个进销存管理应用系统测试过程中,发现在进行查询后,由于查询结果数据记录条数过多,而引起后续脚本无法继续录制. 2.问题解答 我们在测试过程中发现,很多设置和数据库应用相关.这个问题的解决方法可以通过设置Vugen.ini的CmdSize项完成. Vugen.ini文件存放于Windows系统目录下,首先查找是否在该文件中存在"[SQLOracleInspector]"项,并且查看是否已经存在"CmdSiz

InnoDB log file 设置多大合适?

简介: 数据库的东西,往往一个参数就牵涉N多知识点.所以简单的说一下.大家都知道innodb是支持事务的存储引擎.事务的四个特性ACID即原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability).其中原子性,一致性,持久性通过redo log 和 undo来实现.redo log称为重做日志,用来保证事务的原子性和持久性.undo log用来保证事务的一致性. 当事务提交时,必须先将该事务的所有日志写入到重做日志文件(redo

React Image加载图片过大导致ListView滑动卡顿

今天莫名的发现ListView加载Item很卡,一顿一顿的... ListView Item 中只加载一张图片,小编从百度爸爸上随便复制的链接,这张图片很大,以致埋下如此大坑... Image的Style配置如下: 我们来下看官方对于reSizeMode的解释: 经过多次测试确实是因为reSizeMode设置成 contain 导致的,如果我将reSizeMode去掉如下: 完全OK 没问题... 唯一能解释的就是:contain属性下,图片拉伸导致性能降低... 记录此问题,防坑~~~

分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

原文:分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前有一段经历 在月初的时候这个数据库曾经置疑过,启动不起来 Could not redo log record (163041:116859:5), for transaction ID (0:-1175226963), on

SPFILE导致数据库启动失败

服务器断电重启后,报数据库服务无法启动,在服务器上使用AS SYSDBA 登录后连接到空实例, 使用startup启动时报'ORA-24324: 未初始化服务句柄,ORA-01041: 内部错误, hostdef 扩展名不存在'错误. 分步启动startup nomount ,依然报以上错误,判断为spfile文件损坏造成.但本机没有使用pfile备份过spfile,而修改spfile要启动修改. 解决办法,手工创建pfile 文件INITSID.ORA,打开alert日志,找到数据库启动信息,

【翻译自mos文章】/dev/shm应该设置多大Oracle 实例启动时才能不报ORA-00845

/dev/shm应该设置多大Oracle 实例启动时才能不报ORA-00845 来源于:ORA-00845 - Which value for /dev/shm is needed to startup database without ORA-00845 (文档 ID 1399209.1) 适用于: Oracle Database - Standard Edition - Version 11.1.0.6 and later Information in this document appli

设置TimesTen与Oracle数据库的连通性

设置与Oracle数据库的连通性比较简单,但也是非常重要的工作.毕竟TimesTen与Oracle的集成,相较于独立的TimesTen,是使用更为广泛的场景. 无论是后续建立Cache Group,还是简单的从Oracle加载数据到TimesTen,都需要预先设置TimesTen与Oracle数据库的连通性. 首先看一张概念图: 在TimesTen DSN的设置中,OracleNetServiceName指定了后端Oracle数据库的服务名,而实际的服务定义在tnsnames.ora中,这完全符

物理磁盘空间使用已满导致数据库hang起

情况描述 一天公司小张过来咨询,说是数据库查询报错了:乍一看好像是数据库有坏快了,为了排查更加详细的错误信息,决定查看一下告警日志,发现问题所在,原来是数据库的物理磁盘空间满了 Writing to the above trace file is disabled for now on... Tue Jul 29 17:30:32 2014 Non critical error ORA-48181 caught while writing to trace file "/u01/app/orac