Oracle

無法關閉自動記憶體管理 (AMM)

  • July 11, 2017

我在 Red Hat linux 6 上執行 oracle 11.2.0.4 SE RAC,數據庫使用 ASM 進行數據文件管理

我一直在嘗試打開 AMM 並設置以下參數

alter system set pga_aggregate_target='0' scope=spfile sid='*';
alter system set sga_target='0' scope=spfile sid='*';
alter system set memory_max_target='8G' scope=spfile sid='*';
alter system set memory_target='8G' scope=spfile sid='*';

但現在我想關閉實例和數據庫上的 AMM,但是當我進行所需的更改時

alter system set pga_aggregate_target=2G scope=spfile sid='*';
alter system set sga_target=6G scope=spfile sid='*';
alter system set memory_max_target=0 scope=spfile sid='*';
alter system set memory_target=0 scope=spfile sid='*';

我在啟動實例時收到此錯誤

SQL> startup pfile='?/dbs/initdev12.ora';
ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account
ORA-00849: SGA_TARGET 6442450944 cannot be set to more than MEMORY_MAX_TARGET 0.
ORA-01078: failure in processing system parameters

如果我將 MEMORY_MAX_TARGET 設置回 8G,我可以啟動數據庫,但我的參數現在看起來像這樣

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 6G
sga_target                           big integer 6G
SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 8208M
memory_target                        big integer 0
shared_memory_address                integer     0
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 2G

任何想法我做錯了什麼?

乾杯戴夫

如果不想使用 AMMMEMORY_MAX_TARGET設置,則根本不需要設置:

alter system reset memory_target;
alter system reset memory_max_target;

請注意,您正在嘗試從(使用)啟動數據庫,您在使用命令pfile時更改了值:spfile

  1. 您可以編輯pfile並將以下參數設置為0
  • memory_target
  • memory max target
  1. 然後設置以下值
  • sga_max_size
  • sga_target
  • pga_aggregate_target
  1. 關閉所有實例並使用pfile
  2. 創建一個新的spfilecreate spfile from pfile;
  3. 啟動所有實例

引用自:https://dba.stackexchange.com/questions/120834