Oracle启动不可行 - ORA-00845:此系统不支持MEMORY_TARGET - 但内存大小似乎没问题

Fer*_*ito 6 oracle memory-management shared-memory

我们得到一个ORA-00845: MEMORY_TARGET not supported on this system启动.

但是,df -h节目

tmpfs                 7,9G  4,0K  7,9G   1% /dev/shm. 
Run Code Online (Sandbox Code Playgroud)

这表明有足够的内存可用.任何想法可能是什么原因?

Lal*_*r B 18

您可能正在使用自动内存管理(AMM).

AMM使用两个初始化参数:

  • MEMORY_TARGET
  • MEMORY_MAX_TARGET

共享内存文件系统应具有足够的空间来容纳MEMORY_TARGET和MEMORY_MAX_TARGET值.

核实:

SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 6096M
memory_target                        big integer 6096M
shared_memory_address                integer     0
Run Code Online (Sandbox Code Playgroud)

在UNIX/Linux中,您必须相应地设置共享内存文件系统.

校验:

df -h /dev/shm
Run Code Online (Sandbox Code Playgroud)

组:

mount -t tmpfs shmfs -o size=<some_value_in_number_with_size> /dev/shm
Run Code Online (Sandbox Code Playgroud)

例如,

mount -t tmpfs shmfs -o size=4096m /dev/shm
Run Code Online (Sandbox Code Playgroud)

  • 我得到这个,看起来有缺陷:`SQL>显示参数内存ORA-01034:ORACLE不可用进程ID:0会话ID:0序列号:0 (2认同)
  • 好吧,但是当我启动时,我得到“此系统不支持 MEMORY_TARGET” - 兜兜转转 (2认同)
  • 我没有告诉你在数据库级别设置它,你需要在操作系统级别增加`/ dev/shm`的大小.问题很简单,你的OS /`dev/shm`没有足够的空间来保存数据库的MEMORY_TARGET值. (2认同)