`
beagoodboy
  • 浏览: 97653 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

使Oracle的SGA常驻物理内存

阅读更多
Oracle中的lock_sga和pre_page_sga这两个静态初始化文件参数是用来指示SGA如何使用操作系统内存的。在Linux上启动Oracle数据库的时候,如果设置了lock_sga=true,那么就有可能碰到如下的报错信息:
SQL> startup;
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory

这是因为Linux操作系统对应用程序使用内存有一些限制,在SHELL中使用ulimit命令可以查看到如下的信息:
[oracle@dev111 ~]$ ulimit -a | grep memory
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
virtual memory          (kbytes, -v) unlimited

可以看出,lock_sga跟max locked memory的限制是存在冲突,如果保持lock_sga=true参数设置的话,必须修改Linux的max locked memory限制。在/etc/security/limits.conf这个配置文件中添加如下的一行(oracle是启动数据库的操作系统账号),意思是oracle用户可以在物理内存中锁住任意大的空间:
oracle   -   memlock unlimited

之后使用oracle重新登录系统,数据库就可以正常启动了!而另一个初始化参数pre_page_sga设置为true的话,数据库启动的时候就会在内存中分配好整个SGA,这将使Oracle数据库的启动时间加长。
分享到:
评论

相关推荐

    Oracle系统架构基本概念.pptx

    当Oracle实例启动时,系统会分配内存空间给SGA,并加载后台进程。SGA包含以下几个部分:数据缓冲区缓存(Data Buffer Cache)用于存储从磁盘读取的数据块,减少对物理磁盘的I/O操作;重做日志缓冲区(Redo Log Buffer)...

    oracle数据库优化.ppt

    SGA是Oracle数据库的核心内存区域,包括数据块缓冲区、字典缓冲区、重做日志缓冲区和SQL共享池等关键组件。合理设置SGA的大小和各部分比例,可以提高数据缓存效率,减少磁盘I/O,进而提升系统响应速度。例如,数据块...

    Oracle从入门到精通

    根据实际业务负载情况合理配置SGA(共享全局区)和PGA(程序全局区)大小,确保关键数据常驻内存中。 ##### 3. 并发控制 通过设置合理的锁模式和隔离级别来减少并发冲突,提高系统响应速度。 #### 七、Oracle备份...

    Oracle系統架构基本概念.pptx

    背景进程是常驻服务器的一组服务程序,每个进程都有特定的职责,如DBWR(数据库写入器)负责将内存中的更改写入数据文件,LGWR(日志写入器)负责将重做日志缓冲区的内容写入重做日志文件,PMON(进程监视器)则负责...

    oracle优化公司培训

    Oracle数据库的体系结构由多个组件构成,如实例(Instance)、系统全局区(SGA)、重做日志缓冲区(Redo Log Buffer)、共享池(Shared Pool)、数据字典缓存(Data Dictionary Cache)、库缓存(Library Cache)、...

    Oracle数据库性能的优化设计思路研究 (1).pdf

    合理设置内存参数,确保关键数据能常驻内存,可以减少磁盘I/O,提高响应速度。 2.5 并发控制 Oracle的多用户并发访问机制可能导致锁争用和资源浪费。通过调整并发控制参数,如pga_aggregate_target和sga_target,...

Global site tag (gtag.js) - Google Analytics