久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle的內存管理方式有哪些

166次閱讀
沒有評論

共計 2337 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章主要介紹“Oracle 的內存管理方式有哪些”,在日常操作中,相信很多人在 Oracle 的內存管理方式有哪些問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Oracle 的內存管理方式有哪些”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

Oracle 的 9i/10g 中已經對內存管理逐步做了很大的簡化,11g 則更進一步,引入了一個新的概念自動化內存管理(Automatic Memory Management,AMM) . 如果 DBA 真的想偷懶的話,只需要設定兩個參數就可以把煩心的事情都交給 Oracle 折騰了(只要 DBA 足夠心寬)。PGA 與 SGA 一起搞定。這兩個參數分別是:

MEMORY_TARGET– 操作系統的角度上 Oracle 所能使用的最大內存值。動態參數 MEMORY_MAX_TARGET–MEMORY_TARGET 所能設定的最大值。非動態可調。

Tip: 如果使用的是 pfile,設定了 MEMORY_TARGET 而沒有指定 MEMORY_MAX_TARGET 的值,則實例啟動后 MEMORY_MAX_TARGET 的值與 MEMORY_TARGET 相等。如果 pfile 中指定了 MEMORY_MAX_TARGET 而沒有指定 MEMORY_TARGET,實例啟動后 MEMORY_TARGET 為 0。

AMM 在后臺會啟動一個內存管理 (Memory Manager, mman) 進程。

因為 AMM 的引入,Oracle 內存管理更加靈活多樣。組合出來有 5 種內存管理形式.

  自動內存管理
  自動共享內存管理
  手工共享內存管理
  自動 PGA 管理
  手動 PGA 管理

1) 自動內存管理
默認安裝的實例即是 AMM 方式。如下

SQL show parameters 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  1216M
memory_target  big integer  1216M pga_aggregate_target  big integer  0
sga_target  big integer  0

要注意到 SGA_TARGET 和 都為 0。

2. 自動共享內存管理 (Automatic Shared Memory Management, ASMM)
這是 10g 引入的管理方式,要使用這種方式,需要設置初始化參數 MEMORY_TARGET=0,然后顯式的指定 SGA_TARGET 的值。

SQL alter system set sga_target=1024m scope=both;
alter system set sga_target=1024m scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00839: SGA_TARGET cannot be modified to the specified value
SQL alter system set memory_target=0 scope=both;
System altered.
SQL alter system set sga_target=1024m scope=both;
System altered.
SQL

這兩個參數的修改是有嚴格順序的,如果不遵守倒也沒問題 –Oracle 會報告錯誤。

3. 手工共享內存管理

這個又更加原始了一些。因為原始,所以新的初始化參數 SGA_TARGET 與 MEMORY_TARGET 都要設置為 0. 然后手工設定 share_pool_size、db_cache_size 等 sga 參數。要注意 RESULT_CACHE_SIZE 參數是 11g 新引入的,用來緩存 SQL 結果。

4. 自動 PGA 內存管理

如果使用 AMM,則對 PGA 不用操心。如果要做到精細控制而切換到自動 PGA 內存管理模式,需要設定 WORKAREA_SIZE_POLICY = AUTO(默認即為 AUTO),然后需要指定 PGA_AGGREGATE_TARGET 的值。如需要精確控制 PGA,則 WORKAREA_SIZE_POLICY = MANUAL .(Thanks vongates)

5. 手動 PGA 管理

前提是 WORKAREA_SIZE_POLICY = manual , 然后分別指定 SORT_AREA_SIZE 等 PGA 相關的參數。估計現在沒有人干這個吃力不討好的事情了。這個模式大可以忽略。

AMM 的限制

如果初始化參數 LOCK_SGA = true,則 AMM 是不可用的。
相關動態視圖

V$MEMORY_DYNAMIC_COMPONENTS
V$MEMORY_RESIZE_OPS

11g 在簡化 DBA 基本工作上還是下了很大功夫。可是這樣也掩蓋了一些技術細節,Oracle 正在逐步把內存的管理變成一個黑盒子,當然這也也是相關算法更加穩定作為基礎的。總體來說,利大于弊。11g DBA, 準備好了沒有?

到此,關于“Oracle 的內存管理方式有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計2337字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 山阴县| 疏勒县| 许昌市| 阳新县| 漠河县| 乌苏市| 远安县| 南京市| 岳普湖县| 文山县| 徐汇区| 永川市| 崇义县| 合阳县| 改则县| 铁岭市| 醴陵市| 林西县| 纳雍县| 苗栗市| 古交市| 信阳市| 正定县| 萝北县| 铜梁县| 枝江市| 高唐县| 吉安县| 建瓯市| 宿松县| 南陵县| 抚顺县| 靖江市| 麻栗坡县| 高陵县| 平原县| 观塘区| 钟祥市| 荃湾区| 南靖县| 保山市|