oracle resource manager

resource manager的幾個功能

1.保護某個session分配到的最小的CPU資源,而不管系統的壓力和用戶的數量。

2.針對不同的用戶和應用分配不同不理的CPU時間。

3.限制用戶組成員的任何操作的並行深度。

4.管理並行隊列中並行的執行順序,緊急應用的並行可以優先於其它優先級低的並行。

5.限制group中用戶可以使用的並行的數量,這樣確保所有的並行資源分配到一個group中。

6.創建active session pool。Active session pool 由同一個group中用戶session被允許併發active的最大數量組成。

附加的session可以超過這個限制執行,當job 隊列中斷後,可以指定超時時間。

7.管理runaway session。1.修改group可以消耗的CPU資源的比率值。2.檢測session或者call是否超過了指定CPU或者I/O限制。然後斷開session或者call,或者切換到小的CPU值。

8.阻止優化器估算其運行時間超過指定限制的操作。

9.限制session 可以被空閒的時間

10.根據工作量的改變允許數據庫使用不同的resource plan。可以動態的修改這些resource plan。也可以在Scheduler中使用resource plan.

resource manager有如下三個元素

1.resource consumer group

是一個用戶session 的集合,其根據session需要的進程進行歸類,當一個session 創建之後,它就自動根據用戶指定的規則映射到對應的consumergroup。

DBA 也可以手工的切換session 到不同的consumer group。 簡言之,就是使用PL/SQL包來切換session 到指定的consumer group

因爲Resource Manager 僅分配資源到一個consumer group,當一個session變成consumer group中的一員時,它的資源分配就由該consumer group 決定

在數據字典裏一直存在3個特定的consumer groups,它們不能修改和刪除:SYS_GROUP OTHER_GROUP

2.resource plan directive

Resource Manager 根據當前active resource plan的ResourcePlan directive的設置分配資源到consumer groups,resource plan和resource plan directives 是父子關係,每個resource plan directives 只對應一個consumer group。

每個指令都有一些方法,其用來限制資源分配到某個consumer group。

3.resource plan

每個指令都有一些方法,其用來限制資源分配到某個consumer group。

注意:

當前active resource plan 不會強制分配直到CPU使用率達到100%,如果CPU 使用率在100%以下,那麼數據庫不會強制分配資源。

當強制分配時,其他consumer 不用的allocation都可以被其他的consumergroups使用


subplan

resource plan directive 可以參考另一個resource plan,這種情況下,這plan就叫作subplan。Subplan自己包含指令用來分配資源到consumer groups和其他的subplans。每個subplan 分配的資源都是其consumer groups 和subplans的一部分,可以創建任意多個subplans。

subplan不能循環引用


權限

管理Resource Manager必須需要ADMINISTER_RESOURCE_MANAGER權限,在DBA的role裏已經包含了這個權限。

賦予、收回權限必須用DBMS_RESOURCE_MANAGER_PRIVS包來執行

BEGIN

DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SYSTEM_PRIVILEGE(

 GRANTEE_NAME   => 'HR',

 PRIVILEGE_NAME => 'ADMINISTER_RESOURCE_MANAGER',

 ADMIN_OPTION   => FALSE);

END;

/

11g R2多出的新功能

1.ParallelTarget Percentage

如果一個consumer group 使用了所有的並行,那麼當其他consumergroup的高優先級的並行就沒有parallel server 來分配,可以通過限制特定consumer group的並行數來避免這個問題。

2.Parallel Queue Timeout

當使用並行隊列時,如果數據庫沒有足夠的資源來執行並行,那麼並行就會進入隊列,直到有資源時才變成可用。 但是存在一種情況,就是並行等待了很長的時間才執行,可以設置並行在隊列中的最長等待時間來避免這種問題


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章