• ORA-00845: MEMORY_TARGET not supported on this system


    ORA-00845: MEMORY_TARGET not supported on this system

    Table of Contents

    1 问题

    Oracle 11G 中出现了memory_target 参数,用以实现自动 内存管理 。这个参数的实际使用 需要/dev/shm 空间的支持,如果/dev/shm的空间小于memory_target的值 ,就会遇到如下 错误:

    SQL> startup
    ORA-00845: MEMORY_TARGET not supported on this system
    

    alert 日志中的信息类似如下:

    WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 53687091200 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 33619214336 and used is 26345472 bytes. Ensure that the mount point is /dev/shm for this directory.
    memory_target needs larger /dev/shm
    

    2 分析

    • 查看关于错误的描述 很多时候, Oracle 错误代码后面的提示信息会给我们充足的信息。但是有些时候的信息也会让我们有点儿懵圈。比如本次我们需要了解的错误。 按照英文的意思,就是当前操作系统不支持使用memory_target参数。但是我们知道, 在当前Linux操作系统中,这个参数是支持的。所以肯定是有其他原因。关于ORACLE错误 更详细的信息,可以使用oerr ora errcode 。下面是本次相关错误的详细信息提示:

      [user@hostname ~]$ oerr ora 845
      00845, 00000, "MEMORY_TARGET not supported on this system"
      // *Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized correctly on Linux.
      // *Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at least the SGA_MAX_SIZE on each Oracle instance running on the system.
      

      根据提示Cause:/dev/shm was not sized correctly on Linux. 我们知道了此错误的原因,原来是因为/dev/shm 的大小有问题。 而根据提示Action: size /dev/shm to be at least the SGA_MAX_SIZE…. 这里我们知道了。/dev/shm 的大小至少应该大于 sga_max_size的值。

    • 确定相关信息

      • 确定/dev/shm 大小 /dev/shm 的大小,在普通Linux操作系统中默认为系统总物理内存大小的一半。

        [oracle@RAS-DB ~]$ df -h
        Filesystem                      Size  Used Avail Use% Mounted on
        /dev/mapper/VolGroup-lvroot      50G   14G   34G  29% /
        tmpfs                            32G  356K   32G   1% /dev/shm
        /dev/mapper/VolGroup-lvapp       99G   39G   55G  42% /app
        /dev/sda1                       194M   35M  150M  19% /boot
        /dev/mapper/VolGroup-lvoradata  3.8T  7.5G  3.6T   1% /oradata
        /dev/sr0                        4.2G  4.2G     0 100% /media/CentOS_6.5_Final
        
      • 确定sga_max_size大小 查看参数文件,发现文件中没有SGA_MAX_SIZE参数值的显示设置。而只有memory_target参数值的明确设置。

        *.memory_target=49152M
        

        那么, 我们只要让/dev/shm 的avaliable部分的大小大于memory_target 就肯定是大于sga_max_size的 ,为啥这样肯定?Oracle基本知识不在这里普及。

      从以上两部分内容,我们了解到当前/dev/shm多大,我们要求shm多大。明确了我们应该怎么去调整/dev/shm的大小。 为了保险起见,一般/dev/shm 大小设置为与物理内存一样大小即可。

    3 解决

    • 调整/dev/shm

               mount -o size=64G -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm 同时修改/etc/fstab以保证下次重启主机后,不会出现相同的问题

    NOTE
    有时候/dev/shm 对应的磁盘或者分区比较小,比如示例中我们需要64G ,而实际只有32G. 有没有想过: 空间不足呀,怎么办呢?其实这里不需要关注/dev/shm对应的磁盘或者分区的 实际空间,只需要按照示例中的方法去修改,放心, 不会有问题。
    tmpfs                   /dev/shm                tmpfs   default, size=64G       0 0
    
    Filesystem                      Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lvroot      50G   14G   34G  29% /
    tmpfs                            64G  4.5G   60G   8% /dev/shm
    /dev/mapper/VolGroup-lvapp       99G   39G   55G  42% /app
    /dev/sda1                       194M   35M  150M  19% /boot
    /dev/mapper/VolGroup-lvoradata  3.8T  9.6G  3.6T   1% /oradata
    /dev/sr0                        4.2G  4.2G     0 100% /media/CentOS_6.5_Final
    
    • 启动数据库

      SQL> startup
      ORACLE instance started.
      
      Total System Global Area 5.1310E+10 bytes
      Fixed Size                  2265224 bytes
      Variable Size            2.5904E+10 bytes
      Database Buffers         2.5367E+10 bytes
      Redo Buffers               36069376 bytes
      Database mounted.
      Database opened.
      

    Author: halberd

    Created: 2019-10-10 Thu 00:33

    Validate

  • 相关阅读:
    怎么删除json 键值对
    解决html 图片缓存问题
    美工常用的网站分享
    小程序授权页面
    BitMap原理
    css页面加载动画
    可能这些是你想要的H5软键盘兼容方案
    关于范式 :1NF 2NF 3NF等
    Python3学习DAY4
    DTD相关
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/11645260.html
Copyright © 2020-2023  润新知