天天看點

關閉或開啟memory_target

關閉或開啟memory_target

對于Oracle資料庫記憶體參數配置大小,一般滿足如下規則

sga_target + pga_aggregate_target < memory_target <=memory_max_target

sga_max_size < memory_target

PGA_AGGREGATE_TARGET= memory_target - sga_target      

本篇文檔,配置ASMM,ASM進行轉換,進行配置。

1.關閉ASM(關閉)memory_target

SQL> show parameter memory
NAME                VALUE
------------------------------
memory_max_target    800M
memory_target        720M
      

SQL> show parameter pga

NAME TYPE VALUE

------------------------------------ ---------------------- ------------------------------

pga_aggregate_target big integer 175M

SQL> show parameter sga

NAME TYPE VALUE

------------------------------------ ---------------------- ------------------------------

pre_page_sga boolean FALSE

sga_max_size big integer 800M

sga_target big integer 528M

******************關閉memory_target 兩種方法
方法一。參數修改方式
      

SQL> alter system reset memory_max_target;

SQL> alter system set memory_target=0;

方法二(錯誤修改方式)
SQL> alter system set memory_max_target=0 scope=spfile;
SQL> alter system set memory_target=0;
SQL> shutdown immediate;

SQL> alter system set memory_target=0 scope=spfile;  要麼資料庫執行個體無法啟動,要麼并沒有關閉memory管理方式
方法三。編輯參數檔案方式
      

SQL> create pfile='/tmp/pfile.ora' from spfile;

vi /tmp/pfile.ora

修改前

*.memory_max_target=0

*.memory_target=0

修改後

#*.memory_max_target=0

#*.memory_target=0

SQL> create spfile from  pfile='/tmp/pfile.ora';
SQL> startup
      

2.啟用ASM管理

參數說明

Memory_max_target 代表Oracle資料庫總記憶體最大值

memory_target 代表總記憶體最小值

參數限制:memory_max_target(初始化參數:需要重新開機生效)

Linux環境下:memory_max_target=>受到作業系統shared memory的影響:

memory_max_target < /etc/fstab

報錯描述:

ORA-00845: MEMORY_TARGET not supported on this system

參數檢視:

[root@hukou ~]# df -h |grep tmpfs
tmpfs                 1.7G     0  1.7G   0% /dev/shm

作業系統shared memory大小增加:預設為系統整體記憶體的一半大小:修改後,size指定值

解決方案:增加:vi /etc/fstab      

tmpfs                   /dev/shm                tmpfs   defaults,size=3200m        0 0

[root@hukou ~]# mount -o remount /dev/shm
[root@hukou ~]# df -h |grep shm
tmpfs                 3.2G     0  3.2G   0% /dev/shm



參數限制:memory_target(線上即可修改)

報錯資訊: 記憶體的最小值:需要小于或者等于記憶體的最大值

ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET

memory_target <= memory_max_target

 

報錯資訊:記憶體的最小值小于512M

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least512M

memory_target > sga_target +pga_aggregate_target

sga_target                           big integer 400M

pga_aggregate_target                 big integer 100M

 




 

參數限制:sga_max_size(初始化參數:需要重新開機生效)


參數說明: SGA區域記憶體最大值

報錯資訊:sga_max_size的值大于memory_target 

ORA-00851: SGA_MAX_SIZE 1048576000 cannot be set to more than MEMORY_TARGET 629145600.

sga_max_size < memory_target


參數限制:sga_target(線上修改即可)

參數說明:SGA區域記憶體最小值

報錯資訊:SGA_TARGET 的值大于sga_max_size

ORA-00823: Specified value of sga_target greater than sga_max_size

 

SQL> show parameter pga
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 100M

參數限制:pga_aggregate_target (線上修改即可)
      

 使用ASM管理,啟用memory參數

目前記憶體參數
SQL> show parameter sga

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
lock_sga                             boolean                FALSE
pre_page_sga                         boolean                FALSE
sga_max_size                         big integer            528M
sga_target                           big integer            528M
SQL> show parameter pga

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
pga_aggregate_target                 big integer            192M

按照規則,如果不修改sga/pga記憶體大小,那麼memory_target >620M,memory_max_target >620M,      
memory_max_target小于作業系統記憶體參數最大值3.9G      

enmo:/home/oracle df -h |grep tmpfs

tmpfs 3.9G 0 3.9G 0% /dev/shm

本次參數配置: memory_target =620M,memory_max_target=2200m;

方法一:

SQL> alter system set memory_target=620m scope=spfile;

SQL> alter system set memory_max_target=2200m scope=spfile;

SQL> shutdown immediate;

---本次國小生算數錯誤,是以啟動報錯

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 720M

---由于本次資料庫已關閉,是以無法通過sqlplus alter system 修改參數,可以通過手工編輯參數檔案。   開車沒開好

方法二:

SQL> create pfile='/tmp/pfile.ora' from spfile;

vi /tmp/pfile.ora

修改前

*.memory_max_target=2306867200

*.memory_target=650117120

修改後

*.memory_max_target=2306867200

*.memory_target=720m

SQL> create spfile from pfile='/tmp/pfile.ora';

SQL> startup

SQL> show parameter memory

NAME TYPE VALUE

------------------------------------ ---------------------- ------------------------------

hi_shared_memory_address integer 0

memory_max_target big integer 2208M

memory_target big integer 720M

posted on 2019-02-20 17:33 綠茶有點甜 閱讀(...) 評論(...) 編輯 收藏