数据库创建好长时间了,应用倒是没有多大的问题,这一段时间运行还是比较稳定的,
但检查日志时发现里面一直在报:
unixware 7.1.3
oracle 8.1.7
*** 2004-12-18 01:46:10.137
*** SESSION ID 11.46) 2004-12-18 01:46:10.135
Error in executing triggers on instance shutdown
*** 2004-12-18 01:46:10.137
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4032 bytes of shared memory ("shared pool","java/lang/StringSYS","joxlod: in ehe","ioc_allocate_pal")
ORA-06512: at "SYS.DBMS_JAVA", line 0
ORA-06512: at line 2
这样的错误,经itpub上的朋友帮助,估计问题的根本原因已经找到,现将帖子上的内容摘录下来:
sunchao
兄弟们帮忙看看
在我的数据库的日志中一直报有这样的错误
请各位分析一下原因
unixware 7.1.3
oracle 8.1.7
*** 2004-12-18 01:46:10.137
*** SESSION ID11.46) 2004-12-18 01:46:10.135
Error in executing triggers on instance shutdown
*** 2004-12-18 01:46:10.137
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4032 bytes of shared memory ("shared pool","java/lang/StringSYS","joxlod: in ehe","ioc_allocate_pal")
ORA-06512: at "SYS.DBMS_JAVA", line 0
ORA-06512: at line 2
blue_prince10
永远的巴乔
ORA-04031 unable to allocate string bytes of shared memory ("string","string","string","string")
Cause: More shared memory is needed than was allocated in the shared pool.
Action: If the shared pool is out of memory, either use the DBMS_SHARED_ POOL package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the initialization parameters SHARED_POOL_RESERVED_SIZE and SHARED_ POOL_SIZE. If the large pool is out of memory, increase the initialization parameter LARGE_POOL_SIZE.
你的SGA是怎么分配的,共享池多大?
sunchao
老会员
#
# Copyright (c) 1991, 2000 by Oracle Corporation
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation to help you customize
# your RDBMS installation for your site. Important system parameters
# are discussed, and example settings given.
#
# Some parameter settings are generic to any size installation.
# For parameters that require different values in different size
# installations, three scenarios have been provided: SMALL, MEDIUM
# and LARGE. Any parameter that needs to be tuned according to
# installation size will have three settings, each one commented
# according to installation size.
#
# Use the following table to approximate the SGA size needed for the
# three scenarious provided in this file:
#
# -------Installation/Database Size------
# SMALL MEDIUM LARGE
# Block 2K 4500K 6800K 17000K
# Size 4K 5500K 8800K 21000K
#
# To set up a database that multiple instances will be using, place
# all instance-specific parameters in one file, and then have all
# of these files point to a master file using the IFILE command.
# This way, when you change a public
# parameter, it will automatically change on all instances. This is
# necessary, since all instances must run with the same value for many
# parameters. For example, if you choose to use private rollback' segments,
# these must be specified in different files, but since all gc_*
# parameters must be the same on all instances, they should be in one file.
#
# INSTRUCTIONS: Edit this file and the other INIT files it calls for
# your site, either by using the values provided here or by providing
# your own. Then place an IFILE= line into each instance-specific
# INIT file that points at this file.
#
# NOTE: Parameter values suggested in this file are based on conservative
# estimates for computer memory availability. You should adjust values upward
# for modern machines.
#
###############################################################################
db_name = "test"
instance_name = test
service_names = test
control_files = ("/oracledata/oradata/test/control01.ctl", "/oracledata/oradata/test/control02.ctl", "/oracledata/oradata/test/control03.ctl")
open_cursors = 300
max_enabled_roles = 30
db_block_buffers = 40000
shared_pool_size = 131072000
large_pool_size = 614400
java_pool_size = 0
log_checkpoint_interval = 10000
log_checkpoint_timeout = 0
processes = 200
log_buffer = 540672
# audit_trail = false # if you want auditing
# timed_statistics = false # if you want timed statistics
# max_dump_file_size = 10000 # limit trace file size to 5M each
# Uncommenting the lines below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG.
# log_archive_start = true
# log_archive_dest_1 = "location=/home/oracle/admin/test/arch"
# log_archive_format = arch_%t_%s.arc
#DBCA uses the default database value (30) for max_rollback_segments
#100 rollback segments (or more) may be required in the future
#Uncomment the following entry when additional rollback segments are created and made online
#max_rollback_segments = 38
# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
#rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6, RBS7, RBS8, RBS9, RBS10, RBS11, RBS12, RBS13, RBS14, RBS15, RBS16, RBS17, RBS18, RBS19, RBS20, RBS21, RBS22, RBS23, RBS24, RBS25, RBS26, RBS27, RBS28 )
# Global Naming -- enforce that a dblink has same name as the db it connects to
# global_names = false
# Uncomment the following line if you wish to enable the Oracle Trace product
# to trace server activity. This enables scheduling of server collections
# from the Oracle Enterprise Manager Console.
# Also, if the oracle_trace_collection_name parameter is non-null,
# every session will write to the named collection, as well as enabling you
# to schedule future collections from the console.
# oracle_trace_enable = true
# define directories to store trace and alert files
background_dump_dest = /oracledata/admin/test/bdump
core_dump_dest = /oracledata/admin/test/cdump
#Uncomment this parameter to enable resource management for your database.
#The SYSTEM_PLAN is provided by default with the database.
#Change the plan name if you have created your own resource plan.# resource_manager_plan = system_plan
user_dump_dest = /oracledata/admin/test/udump
db_block_size = 8192
remote_login_passwordfile = exclusive
os_authent_prefix = ""
# The following parameters are needed for the Advanced Replication Option
job_queue_processes = 4
job_queue_interval = 60
distributed_transactions = 10
open_links = 4
compatible = "8.1.0"
sort_area_size = 65536
sort_area_retained_size = 65536
内存是512M的
xjg
老会员
是不是跟这两个有关系?
SYS.DBMS_JAVA
java_pool_size=0
128M的Share pool没有那么快就用完吧? 除非你是生产数据库, 当然还要看实际情况
embed_rabbit
一般会员
shared_pool_reserved_size 看看你这个是多大
512m 内存 128share pool 太大了点巴
sunchao
老会员
我们没有用到java程序
这样的错误从数据库刚建立起来到现在一直都有
shared_pool_reserved_size
应该是默认的
现在没有在系统跟前没办法查
我想是不是因为:
编译Java代码时出现的ORA-4031
在你编译Java代码的时候如果内存溢出,你会看到错误:
A SQL exception occurred while compiling: :
ORA-04031: unable to allocate bytes of shared memory
("shared pool","unknown object","joxlod: init h", "JOX: ioc_allocate_pal")
解决办法是关闭数据库然后把参数 JAVA_POOL_SIZE 设定为一个较大的值。这里错误信息中提到的 "shared pool" 其实共享全局区(SGA)溢出的误导,并不表示你需要增加SHARED_POOL_SIZE,相反,你必须加大 JAVA_POOL_SIZE 参数的值,然后重启动系统,再试一下。参考: 。
这种情况引起的问题
应用倒是没有啥问题,就是一直有这样的错误提示
jlandzpa
版主
设定
java_pool_size=20m
husthxd
版主
增大java pool
参考:
http://blog.itpub.net/post/11/4616
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/39335/viewspace-351719/,如需转载,请注明出处,否则将追究法律责任。