1. 程式人生 > >ORA-00845: MEMORY_TARGET not supported on this system

ORA-00845: MEMORY_TARGET not supported on this system

數據 oerr 解決方法 5.0 use opened 一個 glob parameter

1. 問題描述

數據庫啟動報錯,如下提示

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

2. 問題分析

$ oerr ora 00845
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.

在Oracle 11g裏,通過MEMORY_TARGET參數自動管理SGA和PGA。 但是在Oracle 11gR2 裏如果MEMORY_TARGET參數值設定的過大,可能就會出現這個錯誤。

3. 解決方法

增加/dev/shm, /dev/shm通常用做共享內存

/dev/shm是一個臨時文件系統(tmpfs) , 從/etc/fstab中mount支持標準的參數"size",可以用size來增加或者減少在/dev/shm上的tmpfs大小.如果沒有設置size,它的大小大於MEMORY_TARGET。

3.1 修改/dev/shm大小

$ df -h
Filesystem            Size  Used Avail Use
% Mounted on /dev/mapper/VolGroup-lv_root 30G 6.4G 22G 23% / tmpfs 32G 0 32G 0% /dev/shm /dev/sda1 477M 33M 419M 8% /boot /dev/mapper/vgoracle-lvoracle 1008G 348G 610G 37% /oracle

調整該大小,重新進行掛載

$ sudo umount /dev/shm
$ mount -t tmpfs shmfs -o size=50G /dev/shm

3.2 修改配置文件/etc/fstab開機自啟動

tmpfs                   /dev/shm                tmpfs   defaults,size=55G       0 0

3.3 再次啟動數據庫驗證

SQL> startup
ORACLE instance started.

Total System Global Area 5.0107E+10 bytes
Fixed Size            2264856 bytes
Variable Size         2.5636E+10 bytes
Database Buffers     2.4428E+10 bytes
Redo Buffers           41463808 bytes
Database mounted.
Database opened.
SQL> show parameter memory;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address         integer     0
memory_max_target             big integer 48000M
memory_target                 big integer 48000M
shared_memory_address             integer     0

補充:重啟進行驗證

發現重啟之後/dev/shm的掛載大小又變成了物理內存的一半,查看配置文件,有默認掛載的配置,將其註釋,重新掛載,問題解決

# tmpfs                   /dev/shm                tmpfs   defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults,size=55G       0 0

ORA-00845: MEMORY_TARGET not supported on this system