如题:
windows2k3 sp2的操作系统,安装的64位oracle 10.2.0.1
oracle的参数设置如下:
orcl.__db_cache_size=838860800
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__shared_pool_size=369098752
orcl.__streams_pool_size=0
*.audit_file_dest='F:\oracle\product\10.2.0/admin/orcl/adump'
*.background_dump_dest='F:\oracle\product\10.2.0/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='F:\oracle\product\10.2.0\oradata\orcl\control01.ctl','F:\oracle\product\10.2.0\oradata\orcl\control02.ctl','F:\oracle\product\10.2.0\oradata\orcl\control03.ctl'
*.core_dump_dest='F:\oracle\product\10.2.0/admin/orcl/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest_size=214748364800
*.db_recovery_file_dest='F:\oracle\product\10.2.0\flash_recovery_area'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=418381824
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1256194048
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='F:\oracle\product\10.2.0/admin/orcl/udump'刚开机,启动数据库\应用之后
在操作系统的进程管理器中查看 oracle.exe所占的进程是400M左右
系统运行一段时间后内存就涨到3G了.
查看oracle的参数.
oracle的 sga_target 是1.2G, PGA设置是400M,
那么加起来有1.6G.
感觉如果完全跑起来内存一共是1.2+0.4=1.6G
但为什么正常运行的时候,oracle.exe占用了3G的内存呢?
windows2k3 sp2的操作系统,安装的64位oracle 10.2.0.1
oracle的参数设置如下:
orcl.__db_cache_size=838860800
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__shared_pool_size=369098752
orcl.__streams_pool_size=0
*.audit_file_dest='F:\oracle\product\10.2.0/admin/orcl/adump'
*.background_dump_dest='F:\oracle\product\10.2.0/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='F:\oracle\product\10.2.0\oradata\orcl\control01.ctl','F:\oracle\product\10.2.0\oradata\orcl\control02.ctl','F:\oracle\product\10.2.0\oradata\orcl\control03.ctl'
*.core_dump_dest='F:\oracle\product\10.2.0/admin/orcl/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest_size=214748364800
*.db_recovery_file_dest='F:\oracle\product\10.2.0\flash_recovery_area'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=418381824
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1256194048
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='F:\oracle\product\10.2.0/admin/orcl/udump'刚开机,启动数据库\应用之后
在操作系统的进程管理器中查看 oracle.exe所占的进程是400M左右
系统运行一段时间后内存就涨到3G了.
查看oracle的参数.
oracle的 sga_target 是1.2G, PGA设置是400M,
那么加起来有1.6G.
感觉如果完全跑起来内存一共是1.2+0.4=1.6G
但为什么正常运行的时候,oracle.exe占用了3G的内存呢?
select PROGRAM, BACKGROUND, count(*)
from v$process
group by BACKGROUND, PROGRAM
order by BACKGROUND,PROGRAM;
ORACLE.EXE (ARC0) 1 1
ORACLE.EXE (ARC1) 1 1
ORACLE.EXE (CJQ0) 1 1
ORACLE.EXE (CKPT) 1 1
ORACLE.EXE (DBW0) 1 1
ORACLE.EXE (LGWR) 1 1
ORACLE.EXE (MMAN) 1 1
ORACLE.EXE (MMNL) 1 1
ORACLE.EXE (MMON) 1 1
ORACLE.EXE (PMON) 1 1
ORACLE.EXE (PSP0) 1 1
ORACLE.EXE (QMNC) 1 1
ORACLE.EXE (RECO) 1 1
ORACLE.EXE (SMON) 1 1
ORACLE.EXE (q000) 1 1
ORACLE.EXE (q001) 1 1
ORACLE.EXE (D000) 1
ORACLE.EXE (J000) 1
ORACLE.EXE (S000) 1
ORACLE.EXE (SHAD) 5
PSEUDO 1
||||||||||||||||||||||||||||||||||||||SGA_TARGET Property Description
Parameter type Big integer
Syntax SGA_TARGET = integer [K | M | G]
Default value 0 (SGA autotuning is disabled)
Modifiable ALTER SYSTEM
Range of values 64 to operating system-dependent
Basic Yes
SGA_TARGET specifies the total size of all SGA components. If SGA_TARGET is specified, then the following memory pools are automatically sized:Buffer cache (DB_CACHE_SIZE)Shared pool (SHARED_POOL_SIZE)Large pool (LARGE_POOL_SIZE)Java pool (JAVA_POOL_SIZE)Streams pool (STREAMS_POOL_SIZE)If these automatically tuned memory pools are set to non-zero values, then those values are used as minimum levels by Automatic Shared Memory Management. You would set minimum values if an application component needs a minimum amount of memory to function properly.The following pools are manually sized components and are not affected by Automatic Shared Memory Management:Log bufferOther buffer caches, such as KEEP, RECYCLE, and other block sizesFixed SGA and other internal allocationsThe memory allocated to these pools is deducted from the total available for SGA_TARGET
但为什么正常运行的时候,oracle.exe占用了3G的内存呢?-- SGA的1.2G 肯定是不会增大的,
这个增大应该是数据库服务上的,比如:连接的用户多了。个人猜测啊。。
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
ORACLE.EXE (SHAD) 5
但还找不到证据.
|||||||||||||||||||||
你好,
这个可能是Oracle的bug.请参考下面的描述:
Cause
A memory leak introduced in Oracle Database 10.2.0.1.0
Solution
(1) Apply the Microsoft Windows 2003 service pack 2 (sp2)
(2) Install 10.2.0.3 patch 2 = 5846377 ORACLE 10.2.0.3 PATCH 2 PLACE HOLDER BUG FOR WINDOWS-64 XP AND 2003 (if the problem persists get a new dump file and contact Oracle Support) nan han: 谢谢你的回复. 就是说,因为这个bug,oracle会占用超过指定容量的内存.既造成 memeory leak?象我这个例子,指定的sga_target +pga+logbuffer 一共才1.6G.但可能会占用3G的内存.(占用的内存包括实际的物理内存以及swap空间)?