ORA-00849: SGA_TARGET string cannot be set to more than MEMORY_MAX_TARGET string. ORACLE 报错 故障修复 远程处理
文档解释
ORA-00849: SGA_TARGET string cannot be set to more than MEMORY_MAX_TARGET string.
Cause: SGA_TARGET value was more than MEMORY_MAX_TARGET value.
Action: Set SGA_TARGET to be less than MEMORY_MAX_TARGET.
1. 详细说明:
ORA-00849: SGA_TARGET字符串不能设置为高于MEMORY_MAX_TARGET字符串。
这个错误表示在配置 Oracle 数据库实例时,你设置的 SGA_TARGET 参数值大于 MEMORY_MAX_TARGET 参数值,而 Oracle 不允许这样的操作。
官方解释
该错误的官方解释是:
ORA-00849: 当使用 ALTER SYSTEM 语句时,SGA_TARGET 字符串不能设置为大于 MEMORY_MAX_TARGET 字符串。
请确保你的 SGA_TARGET 的值不超过 MEMORY_MAX_TARGET 的值,并确保 MEMORY_MAX_TARGET 的值可以容纳 SGA_TARGET 的值。
常见案例
最常见的案例是当你想要为你的 Oracle 数据库实例增加更多 SGA 时,比如在使用 ALTER SYSTEM 指令进行 SGA 调整时:
ALTER SYSTEM SET SGA_TARGET=800M;
在运行此指令时,如果 MEMORY_MAX_TARGET 的值小于800M,你就会遇到 ORA-00849 错误,因为 SGA_TARGET 要小于等于 MEMORY_MAX_TARGET。
正常处理方法及步骤
1. 如果你想要将 SGA_TARGET 设为比 MEMORY_MAX_TARGET 更大,请先将 MEMORY_MAX_TARGET 设置为合适的值,然后再设置 SGA_TARGET 为相应的值;
2. 使用 ALTER SYSTEM RESET 语句,将 SGA_TARGET 重新设置回合适的值;
3. 启动实例,重新评估 MOMERY_MAX_TARGET 的值是否能够容纳 SGA_TARGET 的值;
4. 使用 ALTER SYSTEM 语句,重新配置 SGA_TARGET 参数,以确保 SGA_TARGET 的值不超过 MEMORY_MAX_TARGET 的值。