91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle的內存管理方式

發布時間:2021-08-27 18:55:28 來源:億速云 閱讀:151 作者:chen 欄目:關系型數據庫

本篇內容主要講解“Oracle的內存管理方式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle的內存管理方式”吧!

Oracle 內存管理方式

oracle11g新出參數MEMORY_MAX_TARGET 和  MEMORY_TARGET進行自動管理PGA 和SGA 稱之為 自動化內存管理(Automatic Memory Management,AMM。

MEMORY_MAX_TARGET  :MEMORY_TARGET所能設定的最大值。非動態可調。

MEMORY_TARGET :操作系統上 Oracle 所能使用的最大內存值。動態參數,MEMORY_TARGET 是PAG 和SGA的總和。memory_target 為 0 是手動管理,非0為自動管理。

如果指定了memory_target 而沒有指定memory_max_target 重啟后,memory_max_target 和memory_target 大小相等;

如果指定了memory_max_target 而沒有指定 memory_target重啟后memory_target 為0;

當設置  memory_max_target < memory_target 時,則重啟后報錯(ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET)

sga_max_size : sga_max_size 是sga的最大值 。

sga_target  :  sga_target   是自動和手段管理; sga_target 為0 是手動管理,非0 是自動管理    

oracle 11g 引入參數mymory_max_target 和memory_target 就是oracle的新特性自動內存管理,AMM 的引入, 組合出來有 5 種內存管理形式.如下:

自動內存管理(AMM): memory_target=非0,是自動內存管理  ,如果初始化參數 LOCK_SGA = true ,則 AMM 是不可用的。

自動共享內存管理(ASMM): 在memory_target=0 and sga_target=非0 是自動內存管理

手工共享內存管理: memory_target=0 and sga_target=0   指定 share_pool_size 、db_cache_size 等 sga 參數

自動 PGA 管理: memory_target=0 and workarea_size_policy=auto  and PGA_AGGREGATE_TARGET=值

手動 PGA 管理: memory_target=0 and workarea_size_policy=manal  然后指定 SORT_AREA_SIZE 等 PGA 參數,一般不使用手動管理PGA;

=========================================================================

racle的內存分為兩個部分。一個是SGA(system global area),一個是PGA(program global area)。所謂的內存管理,就是對這兩部分區域進行管理。oracle的內存管理經理了如下發展:

oracle 9i   PGA自動管理,SGA手動管理

oracle10g PGA自動管理,SGA自動管理

oracle11g PGA,SGA統一自動管理

先看9i時期的PGA自動管理,SGA手動管理

這時期PGA管理有兩個選擇,手動和自動。

手動時,設置WORKAREA_SIZE_POLICY為MANUAL, 設置各種*_AREA_SIZE的值比如SORT_AREA_SIZE_HASH_AREA_SIZE就可以實現手動PGA管理。

自動時,設置WORKAREA_SIZE_POLICY為AUTO,設置PGA_AGGREAGATE_TARGET的值,則為自動PGA管理。

這時期SGA的管理只可以手動管理,但是相比之前有了進步,可以動態的管理。

再看10g時期的PGA自動管理,SGA自動管理

這時期PGA和9i一樣,都可以手動和自動。

這時期的SGA則有了進步,可以手動管理,也增加了自動管理的選擇。

設置SGA_TARGET,就可以實現自動SGA管理。

現在看11g時期的PGA,SGA統一自動管理

這時期的內存管理向前兼容。

PGA可以手動,自動管理

SGAK也可以手動,自動管理

但是有了一個更方便的特性,就是把PGA,SGA的自動整合到一起,通過MEMORY_TARGET來管理。 這時有了兩個參數MEMORY_TARGET,MEMORY_MAX_TARGET.有了這兩個參數,就可以把PGA,SGA作為一個整體管理。

有一些要注意的地方:

1.如果設置了MEMORY_TARGET的同時還設置了SGA_TARGET,PGA_TARGET 怎么辦呢?這時候,SGA_TARGET和PGA_TARGET的值如果小于MEMORY_TARGET,那么oracle就會把他們作為SGA,和PGA的最小值,如果他們比MEMORY_TARGET還大,那么oracle就會報錯。

2.PGA是跟每一個oracle server 進程相關的,所以WORKAREA_SIZE_POLICY應該是可以設置在session級別,也可以設置在system級別。

3. 幾個視圖比較有用,V$MEMORY_DYNAMIC_COMPONENTS會展示動態調整的內存組件大小。 V$MEMORY_RESIZE_OPS展示了最近的800條SGA調整記錄。

=========================================================================

Oracle 9i引入pga_aggregate_target,可以自動對PGA進行調整;

Oracle 10g引入sga_target,可以自動對SGA進行調整;

Oracle 11g則對這兩部分進行綜合,引入memory_target,可以自動調整所有的內存,這就是新引入的自動內存管理特性。

自動內存管理是用兩個初始化參數進行配置的:

MEMORY_TARGET:動態控制SGA和PGA時,Oracle總共可以使用的共享內存大小,這個參數是動態的,因此提供給Oracle的內存總量是可以動態增大,也可以動態減小的。它不能超過MEMORY_MAX_TARGET參數設置的大小。默認值是0。

MEMORY_MAX_TARGET:這個參數定義了MEMORY_TARGET最大可以達到而不用重啟實例的值,如果沒有設置MEMORY_MAX_TARGET值,默認等于MEMORY_TARGET的值。使用動態內存管理時,SGA_TARGET和PGA_AGGREGATE_TARGET代表它們各自內存區域的最小設置,要讓Oracle完全控制內存管理,這兩個參數應該設置為0。

memory_max_target是一個非動態參數,不能在memory范圍動態改變,只能通過指明 scope=spfile這個條件來達到數據庫在下次啟動后讓改變生效的目的。但是memory_target這個參數是可以動態調節的...也就是說不需要重新啟動DB,就可以讓其生效。

MEMORY_MAX_TARGET 是設定Oracle能占OS多大的內存空間;SGA_MAX_SIZE是Oracle SGA 區最大能占多大內存空間. 、

10g 的sga_max_size 是動態分配 Shared Pool Size,database buffer cache,large pool,java pool,redo log buffer 大小的,是根據Oracle 運行狀況來重新分配SGA 各內存塊的大小。PGA在10g中需要單獨設定。

11g MEMORY_MAX_TARGET 參數包含SGA和PGA兩部分。

在手動創建數據庫時,只需要在創建數據庫之前設置合適的MEMORY_TARGET和MEMORY_MAX_TARGET初始化參數。

下面來看看在11g 中Memory_target 設置和不設置對SGA/PGA 的影響:

A :如果 Memory_target 設置為非 0 值

     (下面有四種情況來對 SGA 和 PGA 的大小進行分配)

      1 : sga_target 和 pga_aggregate_target 已經設置大小如果 Oracle 中已經設置了參數 sga_target 和 pga_aggregate_target ,則這兩個參數將各自被分配為 最小值最為它們的目標值。

Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET  ,大小和memory_max_size 一致。

      2 : sga_target  設置大小, pga_aggregate_target  沒有設置大小  

           那么 pga_aggregate_target 初始化值 =memory_target-sga_target

      3 : sga_target  沒有設置大小, pga_aggregate_target  設置大小  

           那么 sga_target 初始化值 =memory_target-pga_aggregate_target

      4 : sga_target  和 pga_aggregate_target  都沒有設置大小 Oracle 11g中對這種 sga_target 和 pga_aggregate_target 都沒有設定大小的情況下, Oracle 將對這兩個值沒有最小值和默認值。 Oracle 將根據數據庫 運行狀況進行分配大小。 但在數據庫啟動是會有一個固定比例來分配:

         sga_target =memory_target *60%

         pga_aggregate_target=memory_target *40%

B :如果 Memory_target 沒有設置或 =0 (在 11g 中默認為 0 )

    11g中默認為 0 則初始狀態下取消了 Memory_target 的作用,完全和 10g 在內存管理上一致,完全向下兼容。

   (也有三種情況來對 SGA 和 PGA 的大小進行分配)     

   1 : SGA_TARGET 設置值,則自動調節 SGA 中的 shared pool,buffer  cache,redo log buffer,java pool,larger pool等內存空間的大小。 PGA 則依賴 pga_aggregate_target 的大小。 sga  和 pga 不能自動增長和自動縮小。

   2 : SGA_target 和 PGA_AGGREGATE_TARGET  都沒有設置

           SGA 中的各組件大小都要明確設定,不能自動調整各組建大小。 PGA 不能自動增長和收縮。

   3 :  MEMORY_MAX_TARGET 設置 而 MEMORY_TARGET =0  這種情況先和 10g 一樣,不做說明

在11g 中可以使用下面看各組件的值

SQL> show parameter target

NAME                                 TYPE        VALUE

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

archive_lag_target                   integer     0

db_flashback_retention_target        integer     1440

fast_start_io_target                 integer     0

fast_start_mttr_target               integer     0

memory_max_target                    big integer 1024M

memory_target                        big integer 1024M

pga_aggregate_target                 big integer 0

sga_target                           big integer 0

如果需要監視 Memory_target 的狀況則可以使用下面三個動態試圖:

   V$MEMORY_DYNAMIC_COMPONENTS

   V$MEMORY_RESIZE_OPS 

   v$memory_target_advice

使用下面 Command 來調節大小:

SQL>ALTER SYSTEM SET MEMORY_MAX_TARGET = 1024M SCOPE = SPFILE; 

SQL>ALTER SYSTEM SET MEMORY_TARGET = 1024M SCOPE = SPFILE; 

SQL>ALTER SYSTEM SET SGA_TARGET =0 SCOPE = SPFILE; 

SQL>ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0 SCOPE = SPFILE ;

到此,相信大家對“Oracle的內存管理方式”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石门县| 定日县| 红桥区| 安化县| 台湾省| 秦皇岛市| 盘山县| 哈尔滨市| 四平市| 阿克陶县| 巴中市| 南城县| 肥乡县| 陆良县| 海口市| 临海市| 施甸县| 诏安县| 玉溪市| 林西县| 竹溪县| 仪陇县| 安新县| 磴口县| 新巴尔虎右旗| 唐山市| 珲春市| 宁陕县| 玛纳斯县| 河东区| 乐亭县| 泾阳县| 平塘县| 渝北区| 舒城县| 鲜城| 额敏县| 麦盖提县| 甘洛县| 高淳县| 石河子市|