精华内容
下载资源
问答
  • 1、在使用database configuration assistant 配置之时,注意设置SGA大小,一般会默认占用内存的40%,这样就特别慢了。2、不使用oracle的时候把服务停掉。3、使用oracle EM进行维护4、...

    1、在使用database configuration assistant 配置之时,注意设置SGA大小,一般会默认占用内存的40%,这样就特别慢了。

    2、不使用oracle的时候把服务停掉。

    3、使用oracle EM进行维护

    4、https://www.cnblogs.com/sparkbj/p/6146363.html

    操作 (oracle使用内存约等于 SGA+PGA,所以可以减少SGA与PGA解决你的问题,生产库慎用)alter system set sga_max_size=100m scope=spfile; --减少SGA大小,静态参数,重启后生效alter system set sga_target=80m scope=both; --动态参数;oracle推荐:启动时修改此参数,不要动态设置此参数alter system set pga_aggregate_target=40m sope=both; ---减少pga大小2、拓展SGA_MAX_SIZE的大小不是随意指定的,必须满足一定条件的。sga_max_size=100M,必须满足SGA所有组件的最小和;至少满足db_cache_size,log_buffer,shared_pool_size,large_pool_size,java_pool_size总和的大小)

    这一点很重要,如果不满足oracle实例服务会经常挂!

    oracle内存结构介绍: Introduction to Oracle Memory Structures Oracle uses memory to store information such as the following: Program code Information about a connected session,even if it is not currently active Information needed during program execution (for example,the current state of a query from which rows are being fetched) Information that is shared and communicated among Oracle processes (for example,locking information) Cached data that is also permanently stored on peripheral memory (for example,data blocks and redo log entries) The basic memory structures associated with Oracle include: System Global Area (SGA),which is shared by all server and background processes. Program Global Areas (PGA),which is private to each server and background process; there is one PGA for each process.

    1.sqlplus “/ as sysdba" 2. 3.create pfile='d:/cj.ora' from spfile; 然后去你的oracle安装目录

    找一个init数据库名。ora这样一个文件

    把几个oracle内存参数改小点

    一个2G的内存是如下配置的:

    *.sga_max_size=712M

    *.large_pool_size=8M

    *.shared_pool_size=250M

    *.sort_area_size=0.5M

    *.db_cache_size=350M

    然后shutdown数据库

    1.shutdown immediate; 2. 3.create spfile from pfile='d:/cj2.ora'; 4. 5.startup; 然后启动,就可以了。

    以上就是调整oracle内存参数,减少数据库内存占用的方法介绍。

    5、知乎:

    Oracle内存组件中,有一个叫做SGA的部分,这个部分如果设置了7G,启动之后,立马从内存中分割出7G,哪怕当前Oracle只用了100M。这7G也是不可以被其他任何机制回收和利用的。

    而且Oracle是典型的耗内存应用,SGA组件里的BufferCache放的是真实的用户数据。可以避免分散的磁盘操作,而直接在SGA中完成对数据库的修改加工。

    SGA是主要占内存的组件。其他PGA等等为用多少分配多少的基本原则。会发生回收机制的。

    除此之外,你可以通过show parameter sga查看SGA的具体设置。

    正式答下,oracle占用内存不会无限向上,而是预先划一片SGA和PGA,是固定的。如果是win系统默认安装,这个参数会是整机内存的40%。

    然并卵,对于开发用或小应用,这些内存占用过多。一般SGA 2000M,PGA 300M足矣。

    查设置参数

    sqlplus/ as sysdba

    Show parameter sga

    Show parameter pga

    设置

    Alter system set sga_target=2000M SCOPE=spfile;

    同理修改sga_max_size=2000m,pga_aggregate_target=300m

    重启数据库实例

    6、http://blog.csdn.net/linxidwx/article/details/52678250

    SGA大小配置

    总结

    以上是编程之家为你收集整理的oracle 占用内存全部内容,希望文章能够帮你解决oracle 占用内存所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • Oracle占用内存解决办法

    万次阅读 2019-11-03 12:27:26
    安装Oracle时,为了均衡电脑性能和数据库性能,Oracle一个实例默认内存占用大小为物理内存的1/8。 如环境不需要分配那么大的内存来支撑Oracle,可通过修改 sga_max_size 的值来减少系统中内存占用过大问题。 步骤...

    安装Oracle时,为了均衡电脑性能和数据库性能,Oracle一个实例默认内存占用大小为物理内存的1/8。

    如环境不需要分配那么大的内存来支撑Oracle,可通过修改 sga_max_size 的值来减少系统中内存占用过大问题。

    步骤如下:

    1.cmd sqlplus system账户登录

    2.show parameter sga; --显示内存分配情况

    3.alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小,根据需要设置

    4.alter system set memory_target = 200M scope=spfile;  --修改目标内存占用大小,根据需要设置

    5.重启oracle服务

     

    注意:

    sga_target < = sga_max_size <= memory_target <= memory_max_target

    效果图:

    修改前占用1G:

    修改后占用200M

     

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

    另附:如果误修改导致数据库无法启动,按以下步骤处理:

    (解决SGA_MAX_SIZE 的大小比 MEMORY_TARGET 大导致数据无法启动的错误)

    由于数据库无法启动,只能调整编辑启动参数文件:

    1,   根据错误的spfile创建pfile;

    SQL> create pfile='/tmp/pfile20150115.txt' from spfile;

    2 编辑上面生成的pfile将memory_target的值修改成大于SGA_MAX_SIZE

    3,备份以前的参数文件

    4,恢复参数文件:

    SQL> create spfile from pfile='/tmp/pfile20150115.txt';

    5, 启动数据库

    SQL> startup

    OK,到此结束,数据库正常启动。

    展开全文
  • oracle 占用内存

    2018-01-02 15:43:36
    1、在使用database configuration assistant 配置之时,注意设置SGA大小,一般会默认占用内存的40%,这样就特别慢了。2、不使用oracle的时候把服务停掉。3、使用oracle EM进行维护4、...

    1、在使用database configuration assistant 配置之时,注意设置SGA大小,一般会默认占用内存的40%,这样就特别慢了。

    2、不使用oracle的时候把服务停掉。

    3、使用oracle EM进行维护

    4、https://www.cnblogs.com/sparkbj/p/6146363.html

    操作 (oracle使用内存约等于 SGA+PGA,所以可以减少SGA与PGA解决你的问题,生产库慎用)
    alter system set sga_max_size=100m scope=spfile; --减少SGA大小,静态参数,重启后生效
    alter system set sga_target=80m scope=both; --动态参数;oracle推荐:启动时修改此参数,不要动态设置此参数
    alter system set pga_aggregate_target=40m sope=both; ---减少pga大小
    2、拓展
    SGA_MAX_SIZE的大小不是随意指定的,必须满足一定条件的。
    sga_max_size=100M,必须满足SGA所有组件的最小和;至少满足db_cache_size,log_buffer,shared_pool_size,large_pool_size,java_pool_size总和的大小)

    这一点很重要,如果不满足oracle实例服务会经常挂!

    oracle内存结构介绍:
    Introduction to Oracle Memory Structures
    Oracle uses memory to store information such as the following:

    Program code
    Information about a connected session, even if it is not currently active
    Information needed during program execution (for example, the current state of a query from which rows are being fetched)
    Information that is shared and communicated among Oracle processes (for example, locking information)
    Cached data that is also permanently stored on peripheral memory (for example, data blocks and redo log entries)
    The basic memory structures associated with Oracle include:
    System Global Area (SGA), which is shared by all server and background processes.
    Program Global Areas (PGA), which is private to each server and background process; there is one PGA for each process.
    修改方法:

    1.sqlplus “/ as sysdba"  2. 3.create pfile='d:/cj.ora' from spfile;  然后去你的oracle安装目录

      找一个init数据库名。ora这样一个文件

      把几个oracle内存参数改小点

      一个2G的内存是如下配置的:

      *.sga_max_size=712M

      *.large_pool_size=8M

      *.shared_pool_size=250M

      *.sort_area_size=0.5M

      *.db_cache_size=350M

      然后shutdown数据库

      1.shutdown immediate;  2. 3.create spfile from pfile='d:/cj2.ora';  4. 5.startup;  然后启动,就可以了。

      以上就是调整oracle内存参数,减少数据库内存占用的方法介绍。


    5、知乎:

    Oracle内存组件中,有一个叫做SGA的部分,这个部分如果设置了7G,启动之后,立马从内存中分割出7G,哪怕当前Oracle只用了100M。这7G也是不可以被其他任何机制回收和利用的。
    而且Oracle是典型的耗内存应用,SGA组件里的BufferCache放的是真实的用户数据。可以避免分散的磁盘操作,而直接在SGA中完成对数据库的修改加工。
    SGA是主要占内存的组件。其他PGA等等为用多少分配多少的基本原则。会发生回收机制的。
    除此之外,你可以通过show parameter sga查看SGA的具体设置。


    正式答下,oracle占用内存不会无限向上,而是预先划一片SGA和PGA,是固定的。如果是win系统默认安装,这个参数会是整机内存的40%。
    然并卵,对于开发用或小应用,这些内存占用过多。一般SGA 2000M,PGA 300M足矣。
    查设置参数
    sqlplus/ as sysdba
    Show parameter sga
    Show parameter pga
    设置
    Alter system set sga_target=2000M SCOPE=spfile;
    同理修改sga_max_size=2000m,pga_aggregate_target=300m
    重启数据库实例

    6、http://blog.csdn.net/linxidwx/article/details/52678250
    SGA大小配置


    展开全文
  • 我的服务器是 solaris 9内存是8G数据库是 oracle 9208 sga区大小约为1.8个G用户反映系统比较慢我用vmstat查了一下bash-2.05$ vmstat 5 10kthr memory page disk faults cpur b w swapfreeremf pi...

    我的服务器是 solaris 9  内存是8G  数据库是 oracle 9208 sga区大小约为1.8个G

    用户反映系统比较慢我用vmstat查了一下

    bash-2.05$ vmstat 5 10

    kthr      memory            page            disk          faults      cpu

    r b w   swap  free  re  mf pi po fr de sr m5 s0 s1 s2   in   sy   cs us sy id

    0 0 0 20636048 4019456 12 5 105 1 0  0  0  0  0  0  0   79  290   93 31 25 44

    0 1 0 21002584 4235288 62 2 707 3 3  0  0  0  0  0  0 1259 1006 1048  4  2 94

    0 1 0 21003472 4236160 73 41 533 0 0 0  0  0  0  0  0 1649 2705 1983 11  3 86

    0 1 0 21003176 4235712 75 33 359 13 10 0 0 0  0  0  0 1391 3531 2152  8  3 90

    0 1 0 21003400 4235400 38 0 750 5 5  0  0  0  0  0  0 1342 2664 1740  3  2 94

    0 0 0 21003400 4235208 21 0 1154 0 0 0  0  0  0  0  0  830  584  757  0  1 99

    0 1 0 21003400 4235408 40 0 1977 0 0 0  0  0  0  0  0 1126 2598 1703  3  3 94

    0 1 0 21003496 4235640 36 0 1902 0 0 0  0  0  0  0  0 1043  634  868  1  1 98

    0 1 0 21003528 4235816 29 0 1346 0 0 0  0  0  0  0  0  993  607  828  1  1 98

    0 1 0 21003528 4235736 38 0 2132 0 0 0  0  0  0  0  0 1068  653  908  1  1 98

    用prstat 看到oracle 似乎把内存占光了, 我不太明白这个命令的内存尺寸为什么会是50多G 难道计算的是共享内存的重叠累计?

    bash-2.05$ prstat -a

    PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP

    5407 oracle   1843M 1806M sleep   60    0   0:08:37 1.4% oracle/1

    5611 oracle   4672K 4448K cpu1    59    0   0:00:00 0.0% prstat/1

    5524 root     4704K 4480K sleep   59    0   0:00:02 0.0% prstat/1

    220 root     2952K 2328K sleep   59    0   0:00:27 0.0% nscd/19

    26045 mqm        77M   27M sleep   29   10   0:25:05 0.0% java/13

    19187 oracle   1841M 1800M sleep   59    0   0:26:42 0.0% oracle/1

    13893 mqm        69M   18M sleep   29   10   1:48:36 0.0% rmiregistry/12

    19179 oracle   1844M 1795M sleep   59    0   0:13:09 0.0% oracle/15

    280 root     3232K 1944K sleep   59    0   0:00:00 0.0% htt_server/2

    238 root     1088K  720K sleep   59    0   0:00:00 0.0% utmpd/1

    466 root     2184K 1480K sleep   59    0   0:00:00 0.0% snmpdx/1

    13890 mqm      1112K  912K sleep   59    0   0:00:00 0.0% sh/1

    2203 oracle   1841M 1801M sleep   59    0   0:00:04 0.0% oracle/1

    183 daemon   2600K 1920K sleep   59    0   0:00:00 0.0% statd/2

    201 root     3512K 1832K sleep   59    0   0:00:21 0.0% syslogd/13

    202 root     2320K 1232K sleep   59    0   0:00:00 0.0% cron/1

    182 root     2264K 1600K sleep   59    0   0:00:00 0.0% lockd/2

    188 root     3816K 2064K sleep   59    0   0:00:00 0.0% automountd/3

    227 root     1488K 1096K sleep   59    0   0:00:00 0.0% powerd/3

    186 root     3352K 1224K sleep   59    0   0:00:00 0.0% automountd/2

    162 root     2504K 1808K sleep   59    0   0:00:05 0.0% inetd/1

    NPROC USERNAME  SIZE   RSS MEMORY      TIME  CPU

    38 oracle     56G   55G    99%   2:26:11 1.4%

    40 root      115M   73M   0.1%   0:02:17 0.0%

    17 mqm       706M  419M   0.7%   2:20:00 0.0%

    1 nobody   3232K 2240K   0.0%   0:00:00 0.0%

    1 smmsp    4520K 1416K   0.0%   0:00:00 0.0%

    1 daemon   2600K 1920K   0.0%   0:00:00 0.0%

    展开全文
  • 最近出现一个问题,运行在 winserver2008r2 服务器上的oracle,每隔一段时间内存就会占用过大,而服务器内存只配置了 8 g,严重影响了其它应用的运行,最终只能重启机子解决。后来查了,oracle默认会使用尽可能大的...
  • oracle 占用内存设置

    2019-11-07 15:55:22
    可以设置 oracle 的最大占用内存参数(memory_max_target )来解决。打开cmd命令窗口,具体操作如下: sqlplus / as sysdba //以管理员登录录oracle show parameter target //查看target相关参数,主要看内存参数...
  • 解决oracle服务占用内存的问题
  • 今天,在自己机器上装了Oracle 12c,发现Oracle的服务Oracle RDBMS Kenel Executable (OracleServiceORCL)占用内存高达5G,本人电脑内存才16G。如此占用率,真让人心疼。于是就对Oracle内存进行调整。具体办法...
  • 1、查看当前oracle内存占用情况: C:\Users\Administrator>sqlplus /nolog SQL*Plus: Release 12.2.0.1.0 Production on 星期日 1月 17 10:14:58 2021 Copyright (c) 1982, 2016, Oracle. All rights ...
  • ;ORACLE内存参数;
  • oracle占用内存问题

    2013-12-20 17:08:39
    自己下了个oracle数据库,安装之后,内存中多了个oracle.exe,很爽啊,4G内存,就这玩意了我1.2G,因此我的解决方式是把oracle的服务设置为手动 今天好玩下了个内存管理软件,然后奇妙的事情出来了,内存清理完毕...
  • 减少Oracle占用内存

    2016-01-13 22:10:09
    CMD sqlplus orcl orcl alter system set sga_max_size=500M scope=spfile; alter system set sga_target=500M scope=spfile;
  • 一、博文参考 ... MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TAR
  • 打开cmd: sqlplus /nolog connect / as sysdba alter system set sga_target=1024m scope=spfile; alter system set sga_max_size=1024m scope=spfile;
  • 查看会话内存占用情况 SELECT server "连接类型", s.username, OSUSEr, NAME, VALUE/1024/1024 "占用内存MB", s.SID "会话ID", s.serial#, spid "操作系统进程ID", p.PGA_USED_MEM, ...
  • 查看会话内存占用情况 SELECT server "连接类型", s.username, OSUSEr, NAME, VALUE/1024/1024 "占用内存MB", s.SID "会话ID", s.serial#, spid "操作系统进程ID", p.PGA_USED_MEM, ...
  • 减少Oracle内存占用

    2010-06-23 20:37:12
    windowsxp下Oracle10g占用内存比较严重,通过合理设置sga降低需求,一般学习工作是够用了的。
  • 修改oracle内存占用大小

    千次阅读 2017-05-19 15:55:07
    在默认安装情况下,oracle内存分配是按系统内存的大小比例分配的,内存比较大的情况下,oracle内存也大,该情况下,我们一般要修改sga值来减少系统中oracle内存过大问题。 用dba身份进入Oracle,笔者在...
  • 在虚拟机上安装的windows 2003,oracle11g,运行后发现一个问题,就是不使用的情况下,内存随时间不断增大,两天时间居然了6G多,导致程序与pl/sql访问时报那监听失败.各位大侠看看什么情况.通过查看v$process,v$session...
  • 而通常,我们自己的环境并不需要分配那么大的内存来支持Oracle,这种情况下,我们可以通过修改sga值来减少系统中oracle占用内存过大问题。 解决方法: 用dba身份进入oracle,本人使用sqlplus修改(sqlplus sys/...
  • 而通常,我们自己的环境并不需要分配那么大的内存来支持Oracle,这种情况下,我们可以通过修改sga值来减少系统中oracle占用内存过大问题。 可以登录SYS用户修改Oracle的SGA等相关参数,降低内存占用,步骤如下:...
  • 使用oracle真是费劲,不仅安装程序大的吓人达到4.5G多,而且占用内存也是相当厉害,如果你在一直开着Oracle的情况下同时打开其他软件,那么你会发现是相当的卡,我做了下测试,没关掉Oracle服务时我多内存使用率是53...
  • ORACLE 数据库的内存占用问题

    千次阅读 2018-03-07 10:38:27
    由于Oralce数据库在使用过程中, 使用内存会不断增加, 如果使用内存超过了物理内存, 就会使用硬盘来作交换文件, 这是... 一般来说, 一台机器如果只提供Oracle服务, Oracle内存可以设置为物理内存的80%, 如果同时提...
  • sqlplus / as sysdba SQL>alter system set sga_target=1024m scope=spfile; SQL>alter system set sga_max_size=1024m scope=spfile; 重启oracle 调整后: 可以看到下降的曲线

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,045
精华内容 36,818
关键字:

oracle占用内存高