• 调整SGA遇到ORA-00845错误


    调整虚拟机中的oracle数据库的sga,遇到ORA-00845: MEMORY_TARGET not supported on this system 。

    数据库初始sga是768M ,计划调整到1G 。

    SQL> show sga
    
    Total System Global Area  801701888 bytes
    Fixed Size                  2257520 bytes
    Variable Size             427822480 bytes
    Database Buffers          369098752 bytes
    Redo Buffers                2523136 bytes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    安全起见,先备份spfile。

    SQL> create pfile from spfile;
    
    File created.
    
    
    • 1
    • 2
    • 3
    • 4

    调整 memory_target参数:

    
    SQL> alter system set memory_target=1024M scope=spfile;
    
    System altered.
    
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup
    ORA-00845: MEMORY_TARGET not supported on this system
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    错误原因:
    内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错。

    检查文件系统:

    [oracle@oracledb dbs]$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        28G   23G  5.7G  80% /
    devtmpfs        899M     0  899M   0% /dev
    tmpfs           913M   84K  913M   1% /dev/shm
    tmpfs           913M  9.0M  904M   1% /run
    tmpfs           913M     0  913M   0% /sys/fs/cgroup
    /dev/sda1       297M  144M  154M  49% /boot
    tmpfs           183M     0  183M   0% /run/user/1002
    tmpfs           183M   20K  183M   1% /run/user/42
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    tmpfs 913M 84K 913M 1% /dev/shm

    调整/dev/shm 到2G
    root用户:

    [root@oracledb ~]# mount -o remount,size=2048M /dev/shm
    [root@oracledb ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        28G   23G  5.7G  80% /
    devtmpfs        899M     0  899M   0% /dev
    tmpfs           2.0G  233M  1.8G  12% /dev/shm
    tmpfs           913M  9.1M  904M   1% /run
    tmpfs           913M     0  913M   0% /sys/fs/cgroup
    /dev/sda1       297M  144M  154M  49% /boot
    tmpfs           183M     0  183M   0% /run/user/1002
    tmpfs           183M   20K  183M   1% /run/user/42
    tmpfs           183M     0  183M   0% /run/user/0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在/etc/fstab增加一行,保证操作系统重启后依然生效。

    tmpfs /dev/shm tmpfs defaults,size=2048M 0 0

    再次启动数据库

    ORACLE instance started.
    
    Total System Global Area 1068937216 bytes
    Fixed Size                  2260088 bytes
    Variable Size             671089544 bytes
    Database Buffers          390070272 bytes
    Redo Buffers                5517312 bytes
    Database mounted.
    Database opened.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果系统没有设置memory_max_target 参数,直接设置sga_target参数。

    SQL> show parameter memory
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    hi_shared_memory_address             integer     0
    memory_max_target                    big integer 0
    memory_target                        big integer 0
    shared_memory_address                integer     0
    
    SQL> show parameter sga
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    lock_sga                             boolean     FALSE
    pre_page_sga                         boolean     FALSE
    sga_max_size                         big integer 27G
    sga_target                           big integer 27G
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    --先备份一下pfile启动文件
    SQL> create pfile from spfile;
    
    文件已创建。
    
    SQL> alter system set sga_max_size=36G scope=spfile;
    
    系统已更改。
    
    SQL> alter system set sga_target =36G scope=spfile;
    
    系统已更改。
    
    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。
    
    Total System Global Area 3.8482E+10 bytes
    Fixed Size                  2289360 bytes
    Variable Size            3355443504 bytes
    Database Buffers         3.4762E+10 bytes
    Redo Buffers              362004480 bytes
    数据库装载完毕。
    数据库已经打开。
    
    --备份最新的启动文件
    SQL> create pfile from spfile;
    
    文件已创建。
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
  • 相关阅读:
    React生命周期理解
    内置对象和方法、前端基础之BOM和DOM
    紫光同创FPGA编写的8画面分割器演示
    CATT的应用
    代数、图算法:矩阵基础
    Mysql双机热备配置方案原理及实战
    次方计数的拆贡献法(考虑组合意义)+限定类问题善用值域与位置进行ds:1006T3
    3d激光SLAM:LIO-SAM框架---IMU预积分功能数据初始化
    Java设计模式之策略模式
    前端性别判断
  • 原文地址:https://blog.csdn.net/qq_39065491/article/details/126807533