Oracle對內存的管理的 優化從未間斷,從8i到11g不斷地提出新的管理概念。每個本版都對內存管理進行了簡化:1、8i->9i:PGA的自動管理;2、9i->10g:SGA的自動管理;3、10g->11g:MEMORY(SGA+PGA)的自動管理。

在11g中oracle引入了自動化內存管理(Automatic Memory Management)概念,僅用兩個參數就能完成oracle的內存管理工作。DBA的工作看來又要輕松不少了,看看兩個參數:

MEMORY_TARGET:oracle所能使用的最大內存,該參數可以動態調整。

MEMORY_MAX_TARGET:MEMORY_TARGET參數所能動態設定的最大值,不能動態調整,需要重啟數據庫

注:oracle的內存管理方式可以根據本版向下兼容的,11g可以實現10g,9i,8i時的管理方式。

SQL> show parameter sgaNAME         TYPEVALUE---------------- ----------- --------------lock_sga      boolean     FALSEpre_page_sga   boolean     FALSEsga_max_size   big integer   12864Msga_target    big integer    0

SQL> show parameter pgaNAME             TYPE   VALUE--------------------  ----------- ----------pga_aggregate_target big integer  0

SQL> show parameter memNAME                TYPEVALUE------------------------- ----------- -----------hi_shared_memory_address  integer  0memory_max_target     big integer 12864Mmemory_target        big integer 12864Mshared_memory_address    integer  0

可以總結一下MEMORY之間互相制約的順序;

memory_max_target==>memory_target===>sga_max_size==>sga_target

此外, Memory_target還有下面的這個:

Memory_Target = SGA_Target + pga_aggregate_target

案例一:

問題1、修改了sga_target/pga_aggregate_target的值,導致他們之和大於memory_target;

問題2、修改memory_target值,導致其小於sga_target/pga_aggregate_target之和,也會報錯;

SQL>startup 啟動數據庫 報錯:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 4016M

問題概括:Memory_Target 小於 SGA_Target與 pga_aggregate_target之和

解決方法:

上述參數的配置信息都存放在$ORACLE_HOME/dbs/spfile.ora文件中,但是該文件為二進制文件,不可以直接修改;只能通過SQL語句創建出它的副本pfile文件進行修改vi/vim,然后替換即可。(此時DB已經被shutdown了,無法startup,但是仍可由spfile來創建pfile)

第一種解決方法: 還原先前狀態,不做修改。

1)SQL>create pfile from spfile;

2)[oracle@ORACLE247 dbs]$ vim $ORACLE_HOME/dbs/initorcl.ora

3)刪除行 *.sga_target=*****

4)SYS> create spfile from pfile;

5)SYS> startup 即可

第二種方法,將sga_target修改為一個正確的值:

1)創建pfile初始化文檔;

2)修改 *.sga_target=X (X等於MEMORY_TARGET的值減去PGA的值(大於10M,PGA最小值));

3)由修改后的PFILE創建SPFILE;

4)啟動DB即可;

第三種方法,修改增大 *.memory_target的值,

1)與第二種方法類似,創建pfile初始化文檔;

2)修改增大 *.memory_target=Y(Y值是不能大於/dev/shm tmpfs共享文件系統的大小,否則會報案例二的錯);

[root@ORACLE247 ~]# df -h |grep /dev/shmtmpfs                  16G  8.2G  7.5G  53% /dev/shm

案例二:問題:設置的Memory_Target值過大

SQL>startup 啟動數據庫 報錯:

ORA-00845: MEMORY_TARGET not supported on this system

問題原因:物理內存大小>=Memory_Target大小設置>=/dev/shm tmpfs共享文件系統的大小

解決方法:

方法一:參照案例一中的方法三,修改Memory_Target大小;

方法二:修改/dev/shm 的大小,修改方法又有兩種:

1)[root@ORACLE247 ~]# cat /etc/fstab | grep tmpfs

這個是靜態修改,需要重啟系統才能生效。

2)[root@ORACLE247 ~]# mount -o remount,size=4G /dev/shm

這是通過重新掛載來修改其大小,不需要重啟。

oracle11g ora00838,管理oracle11g內存設置 解決ora-02097 ora-00838 ora-00845報錯問題相关推荐

  1. 設置Linux保留物理內存並使用 (1)

    在Linux系統中可以通過memblock來設置系統保留物理內存,防止這些內存被內存管理系統分配出去. 作者: 彭東林 郵箱: pengdonglin137@163.com 平臺 硬件平臺: TQ24 ...

  2. C++ 内存管理 —— 第一講:C++ 內存構件

    C++ 内存管理 侯捷老师的课程内容,做了个简单的记录 文章目录 第一講:C++ 內存構件 四个层面 基本構件 new delete expression malloc的cookie机制 arrary ...

  3. mysql 日志重做,設置MySQL重做日志大小

    什么是InnoDB事務日志 你有沒有在文本編輯器中使用過撤消或重做的功能,想像一下編輯器在那種場景下的操作?我確信你應該使用過.你相信嗎?事務型數據庫有同樣的功能.可能不完全一樣,但原理是相同的. 就 ...

  4. linux内存分析命令,Linux進程內存分析pmap命令

    轉自: http://blog.csdn.net/u013982161/article/details/52654256 名稱: pmap - report memory map of a proce ...

  5. Gnome2.30 GDM圖片風格設置方式

    为什么80%的码农都做不了架构师?>>>    設置: sudo add-apt-repository ppa:gdm2setup/gdm2setup     sudo apt-ge ...

  6. stm32h7内存分配_【STM32H7教程】第25章 STM32H7的TCM,SRAM等五塊內存基礎知識

    第25章       STM32H7的TCM,SRAM等五塊內存基礎知識 本章教程為大家介紹STM32H7帶的ITCM,DTCM,AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4和備份 ...

  7. php如何配置gii,PHP Framework YII的里的gii設置。

    這些步驟是轉貼的.我按照這些步驟完成設置.最后幾行是我自己的心得. 一.設置YII的GII. 自動生成代碼從版本1.1.2開始,Yii 裝備了一個基於 web 的代碼生成工具,叫做 Gii.它替代之前 ...

  8. python安装django找不到set.up_Python django LRS無法設置。找不到文件錯誤

    I am using ADL LRS to setup a LRS(Learning Record Store) system for my own use. It uses TIN CAN API. ...

  9. 借助向 Dev Channel 內部人員提供的最新預覽版本,Microsoft 已將舊版本地管理員密碼解決方案(也稱為 LAPS)直接集成到 Windows 11 中

    然而,值得知道的是,LAPS 僅適用於加入 Active Directory 域的客戶端,因為 Microsoft 正在為 Azure Active Directory 用戶在雲端使用分階段推出的方法 ...

最新文章

  1. Win10 + QT5.14.2 + Opencv4.1.1 编译环境搭建
  2. Struts2知识整理
  3. 【学习笔记】硬件设备选型
  4. 华硕服务器显示模块,华硕远程管理模块 ASMB4-iKVM 华硕服务器主板专用 现货 IPMI...
  5. 公司服务器iSCSI网络硬盘连接故障
  6. [渝粤教育] 中国地质大学 数据结构 复习题 (2)
  7. NSIS脚本语言安装与编译
  8. python中复制n次字符串_Python正则表达式,如何将字符串匹配n次 - python
  9. .sql导入中文显示乱码解决方法
  10. WebConfig配置文件详解
  11. 【Newtonsoft.Json.dll】操作简单JSON数据
  12. 去掉tomcat日志localhost_access_log修改去掉文件名日期
  13. kindle paperwhite3 拆机越狱
  14. 用Python画填色的中国分省地图(数据+源代码)
  15. C# Excel 新建工作表,新增工作表,更改工作表的名字
  16. 阿里云建站套餐怎么样?具体建站流程
  17. Bpy三维图像建模基础库——(01)库的安装
  18. UE-摄像机视角的切换
  19. C++常用输出 cout、cerr、clog
  20. 分享一个MongoDB可视化工具rockmongo-on-windows

热门文章

  1. 基于Jittor框架实现LSGAN图像生成对抗网络
  2. linux7怎样搭建zabbix,Centos7.0 搭建Zabbix环境
  3. shell /dev/null
  4. Oracle分页存储过程
  5. Leetcode(18)-四数之和
  6. 【java线程】锁机制:synchronized、Lock、Condition
  7. 2022-2028年中国游泳健身行业市场研究及前瞻分析报告
  8. Go 学习笔记(39)— Go 反射
  9. sklearn FutureWarning: numpy not_equal will not check..., The comparison did not return the same
  10. codefores 786B. Legacy(最短路,线段树优化拆点,好题)