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

时间:2015-10-27 11:04:27

标签: oracle memory-management shared-memory

我们在启动时获得fopen

但是,ORA-00845: MEMORY_TARGET not supported on this system显示

df -h

表示存在足够的可用内存。任何想法可能是什么原因?

6 个答案:

答案 0 :(得分:17)

您可能正在使用自动内存管理(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

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

验证

$ df -h /dev/shm

设置:

$ mount -t tmpfs shmfs -o size=some_value_in_number_with_size /dev/shm

例如,

mount -t tmpfs shmfs -o size=4096m /dev/shm

答案 1 :(得分:4)

错误原因: 新的自动内存管理功能在Linux上使用/ dev / shm进行SGA和PGA管理。如果MEMORY_TARGET或MEMORY_MAX_TARGET配置为大于配置的/ dev / shm大小,或者/ dev / shm安装不正确,则会发生错误。

解: 请确认已正确设置ORACLE_HOME。如果设置不正确,有时会发生此错误。

确保/ dev / shm大小配置得足够大,如: mount -t tmpfs shmfs -o size = 7g / dev / shm

注意: 您应该根据警报文件中报告的内容,与系统管理员核实/ dev / shm的“最佳”大小。

此外,许多最佳实践现在建议禁用AMM,尤其是在具有更大内存容量且可以使用大/大页面的Exa * Engineered盒中。 这是因为AMM和Huge / Large页面是互斥的,使用巨大的页面

可以提高整体性能

在系统上使用Oracle时,请确保df输出显示正确的/ dev / shm配置:

$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
...
shmfs 6291456 832356 5459100 14% /dev/shm

答案 2 :(得分:3)

一个简单的解决方案就是为/dev/shm fs添加空间。

# mount -t tmpfs shmfs -o size=5g /dev/shm

有关更多概念和详细信息,请参阅博文ORA-00845: MEMORY_TARGET not supported on this system

答案 3 :(得分:0)

启动数据库时,我也遇到了同样的错误。我#在我的pfile中输出了memory_target参数,然后再次尝试并成功了。 现在,我可以启动数据库了。

答案 4 :(得分:0)

当tmpfs区域的oracle内存设置很高时,会出现此错误 例如

如果内存参数是这样的:

*.memory_max_target=20G
*.memory_target=0
*.sga_max_size=20G
*.sga_target=15G
*.pga_aggregate_target=5G

并且tmpfs大小为15G

当您启动时,您会收到错误ora-00845 您应该将tmpfs大小设置为超过最大内存值 在这种情况下,最大内存参数设置为20G 因此您可以在/ etc / fstab文件中设置tmpfs的大小,例如25G

...
...
tmpfs   /dev/shm   tmpfs  defaults,size25G 0 0
...
...

然后重新挂载tmpfs文件系统

#mount -o remount /dev/shm

然后您的数据库就可以启动

答案 5 :(得分:-1)

  • 减少memory_target参数的值

  • 增加服务器上的临时内存分配。

e.g

umount tmpfs

mount -t tmpfs shmfs -o size = 1500m / dev / shm