一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Oracle資源管理1----資源用戶組與CPU資源管理詳解

 wghbeyond 2011-08-30

為什么要使用Oracle資源管理器
當(dāng)數(shù)據(jù)庫服務(wù)器資源由操作系統(tǒng)來分配時,你可能會遇到以下問題:
1、過多的資源開銷 當(dāng)服務(wù)器進程數(shù)很多時,操作系統(tǒng)進程和數(shù)據(jù)庫服務(wù)進程間的來回切換會導(dǎo)致CPU占用率或內(nèi)存使用率高。
低效的調(diào)度
:操作系統(tǒng)調(diào)度數(shù)據(jù)庫服務(wù)時占用寄存器,這樣做效率很低。
資源分配的不合理
:操作系統(tǒng)平均分配系統(tǒng)資源給活動的進程(對數(shù)據(jù)庫進程來說),不能判斷它們的優(yōu)先級高低。
不能管理數(shù)據(jù)庫特有的資源
,例如:并行執(zhí)行的服務(wù)數(shù)和活動的會話數(shù)。

Oracle資源管理器簡介

Oracle資源管理器(Oracle Database Resource Manager,以下簡稱DBRM)管理數(shù)據(jù)庫資源,為不同的會話分配不同的數(shù)據(jù)庫資源。資源管理器有三個部件組成:資源用戶組(Resource consumer group )、資源規(guī)劃(Resource plan )及資源計劃指令(Resource plan directives) 。具體描述參見下表

元素       
描述
資源使用組                  
根據(jù)會話的資源請求將它們分為一組。RDMB只能為資源用戶組指定所能使用的資源, 不能按單個用戶進行指定。
資源計劃 資源計劃包含資源計劃系列指令,這些指令就決定了給每個組的資源分配配置。 要執(zhí)行資源的分配,你只需執(zhí)行相應(yīng)的資源計劃。
資源計劃指令

資源計劃指令指定了資源計劃和組之間的映射關(guān)系,表示某種特定的資源在 用戶之間如何分配 。 資源計劃和指令間有著一對多的關(guān)系,資源計劃中不能 包含兩條相同的指令。

 

 

 

 

 

 

 

 

 

 

 

子資源計劃

資源指令除了給組分配資源,還可以為其他資源計劃分配資源,被分配資源的計劃成為子計劃。下圖是一個包含子計劃的資源計劃的例子。


用戶資源管理的內(nèi)部程序包
用戶資源管理涉及到的數(shù)據(jù)包主要有兩個:DBMS_RESOURCE_MANAGER和DBMS_RESOURCE_MANAGER _PRIVS。其中包DBMS_RESOURCE_MANAGER主要是用于建立資源計劃,建立資源用戶組,建立資源分配方法等用戶資源相關(guān)的管理;而DBMS_RESOURCE_MANAGER _PRIVS的主要用途是進行用戶資源管理的權(quán)限控制。
對于一個簡單的用戶資源管理計劃來說,僅僅使用DBMS_RESOURCE_MANAGER包就足夠了,所以下面僅僅對DBMS_RESOURCE_MANAGER的使用進行詳細的說明。

資源管理器的默認設(shè)置

默認的三個系統(tǒng)資源計劃:internal_plan、internal_quiesce,system_plan。其中internal_plan、internal_quiesce只是一個空殼,里面沒有任何資源計劃,可以通過對這兩個資源計劃進行修改來滿足我們的需求。而system_plan只對cpu進行了限制。

默認的三個用戶組

sys_group:作為sys和system用戶的默認用戶組。

other_group:如果當(dāng)前用戶不屬于當(dāng)前資源計劃中的任何用戶組,則會被納入other_group.任何資源計劃都必須包含other_group。

low_group:表示該用戶對資源的請求級別是最低的。默認沒有用戶進入該用戶組。

任何一個數(shù)據(jù)庫用戶都必須納入到一個用戶組中,該用戶組被叫做初始用戶組(initial consumer group)。如果沒有顯示的指定初始用戶組,那么該用戶的初始用戶組為default_consumer_group。

Oracle資源管理

創(chuàng)建資源用戶組

其中Scheduling Policy表示在同一用戶組中的用戶之間如何分配CPU

Round Robin:在用戶組成員之間平均分配CPU

Run to Completion:運行時間最長的用戶優(yōu)先獲得CPU

進行初始化用戶組的設(shè)置

用戶組與資源的映射關(guān)系

資源管理器提供了6種映射資源用戶的方法。這6種映射方法分別是,指定通過某個特定操作系統(tǒng)用戶登錄到數(shù)據(jù)庫所產(chǎn)生的session屬于某個用戶組;指定某個特定的客戶端計算機名稱登錄的數(shù)據(jù)庫所產(chǎn)生的session屬于某個用戶組;指定某個應(yīng)用程序登錄到數(shù)據(jù)庫所產(chǎn)生的session屬于某個用戶組。指定通過某個服務(wù)名登錄到數(shù)據(jù)庫所產(chǎn)生的session屬于某個用戶組;指定通過特定模塊登錄到數(shù)據(jù)庫所產(chǎn)生的session屬于某個用戶組;指定通過特定模塊并執(zhí)行特定動作登錄到數(shù)據(jù)庫所產(chǎn)生的session屬于某個用戶組。

用戶組與資源映射的優(yōu)先級

由于我們可以設(shè)置登錄操作系統(tǒng)的用戶所對應(yīng)的用戶組(比如oracle用戶對應(yīng)OS_GRP),同時設(shè)置登錄數(shù)據(jù)庫的用戶對應(yīng)的用戶組(比如用戶HR屬于OLTP_GRP)。因此,就存在一個問題:如果兩者的設(shè)置矛盾怎么辦?在資源管理器中通過指定映射關(guān)系的優(yōu)先級來解決這個問題

創(chuàng)建資源計劃

Active this plan:激活該資源計劃。

我們也可以在sqlplus里激活該資源計劃

SQL>  alter system set resource_manager_plan='MY_DAY_PLAN';
System altered.

 

SQL> show parameter resource_manager_plan
NAME                                           TYPE                              VALUE
------------------------------------         -----------------------------    ------------------------------
resource_manager_plan                string                               MY_DAY_PLAN

Automatic Plan Switch Enabled:表示該計劃激活后可以被其他的時間窗(window)激活其他計劃。

在資源計劃中我們一共可以設(shè)置8個CPU使用的優(yōu)先級,級別1為最高,級別8為最低。注意,在不同級別中CPU的總額不能超過100%。同時,只有在CPU使用率達到100%的時候,這里指定的不同級別所使用的CPU百分值才會生效。也就是說,即使系統(tǒng)完全空閑時,那么other_group的用戶登錄系統(tǒng)一樣也可以使用100%的CPU。而如果當(dāng)other_group用戶在執(zhí)行操作過程中sys_group組用戶登錄數(shù)據(jù)庫,造成系統(tǒng)CPU滿負荷運轉(zhuǎn)。那么Oracle會優(yōu)先為sys_group組分配CPU,只有當(dāng)sys_group執(zhí)行完畢后才會為other_group組成員分配CPU。
拿上面的例子來說,假設(shè)OLTP_GRP和BATCH_GRP分別獲得了系統(tǒng)的80%和20%的CPU資源,那么作為下一級LEVEL 3的OTHER_GROUPS將不會獲得任何CPU的資源。當(dāng)BATCH_GRP和OLTP_GRP分別獲得了系統(tǒng)的40%和10%的CPU資源,那么作為下一級LEVEL 2的OTHER_GROUPS將會獲得50%的CPU資源。

換句話說,LEVEL 3所能獲得的全部資源就是LEVEL 2所未能使用的那部分資源。
優(yōu)先級:LEVEL1 > LEVEL 2 > LEVEL 3……LEVEL N-1>LEVEL N

需要強調(diào)的一點是OTHER_GROUPS這個資源用戶組。任何一個資源計劃必須要包括這個OTHER_GROUPS用戶組,如果你的資源計劃沒有包括這個用戶組,那么將會得到一個ORA-07453的錯誤,要求你必須添加此用戶組。這個用戶組的作用就是作為一個候選項,當(dāng)一個沒有匹配到任何資源用戶組的SESSION連接到數(shù)據(jù)庫的時候會自動的匹配到OTHER_GROUPS下面,按照OTHER_GROUPS的資源限定執(zhí)行SQL。
另外一個需要強調(diào)的是用戶資源限定的生效條件。拿上面的例子來說,當(dāng)系統(tǒng)的CPU使用率沒有達到100%的時候,MY_DAY_PLAN這個資源計劃并不會生效,各個資源用戶也不會按照限定來分配CPU的使用。僅僅當(dāng)CPU的使用率為100%的時候,資源計劃才可以發(fā)揮功效,來限制各個資源用戶組的CPU分配。這點是常常被大家忽略的,一定特別注意下。

使用DBMS_RESOURCE_MANAGER包創(chuàng)建的sql如下


dbms_resource_manager.clear_pending_area();
dbms_resource_manager.create_pending_area();
dbms_resource_manager.create_plan( '
MY_DAY_PLAN ', '');
dbms_resource_manager.create_plan_directive(

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN=>'MY_DAY_PLAN',GROUP_OR_SUBPLAN => ' SYS_GROUP ',COMMENT => '  ',CPU_P1 => 100);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN=>'MY_DAY_PLAN',GROUP_OR_SUBPLAN => ' OLTP_GRP ',COMMENT => '  ',CPU_P1 =>  0,CPU_P2=>80);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN=>'MY_DAY_PLAN',GROUP_OR_SUBPLAN => ' BATCH_GRP ',COMMENT => '  ',CPU_P1 =>  0,CPU_P2=>20);

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN=>'MY_DAY_PLAN',GROUP_OR_SUBPLAN => ' OTHER_GROUPS ',COMMENT => ' OTHER_GROUPS ',CPU_P1 => 0, CPU_P2 => 0,CPU_P3=>100);
dbms_resource_manager.submit_pending_area();
dbms_resource_manager.switch_plan( plan_name => '
MY_DAY_PLAN ', sid => 'orcl' );
END;

驗證資源計劃是否對CPU進行分配

思路,讓BATCH_GRP和OLTP_GRP分別運行dead.sql腳本,該腳本為死循環(huán)的開方腳本,可消耗系統(tǒng)cpu而不是消耗系統(tǒng)內(nèi)存。

dead.sql腳本如下

[oracle@dg1 ~]$ cat dead.sql
declare
 i number;
 j number;
begin
 i:=0;
 loop
  j :=sqrt(i);
  i :=i+1;
 end loop;
end;
/

通過下列語句查看當(dāng)前會話的資源用戶組

SQL> conn hr/hr;
Connected.
SQL> select resource_consumer_group from v$session
  2  where sid =(select sid from v$mystat where rownum=1);
RESOURCE_CONSUMER_GROUP
------------------------------------------------------------------------------------------------
OLTP_GRP


SQL> show user;
USER is "SCOTT"
SQL> select resource_consumer_group from v$session
  2  where sid =(select sid from v$mystat where rownum=1);
RESOURCE_CONSUMER_GROUP
--------------------------------------------------------------------------------

BATCH_GRP

兩個會話同時執(zhí)行dead.sql

SQL> @/home/oracle/dead.sql

可以看到BATCH_GRP用戶組消耗了1795.99秒的CPU時間,可以看到OLTP_GRP用戶組消耗了7125.53秒的CPU時間,同時圖餅也顯示BATCH_GRP消耗20%的CPU資源,OLTP_GRP消耗80%的CPU資源。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    在线免费观看一二区视频| 东北女人的逼操的舒服吗| 91久久国产福利自产拍| 深夜视频成人在线观看| 国产不卡视频一区在线| 欧美国产精品区一区二区三区| 又大又长又粗又黄国产| 人妻少妇系列中文字幕| 国产精品亚洲精品亚洲| 日韩精品视频一二三区| 91后入中出内射在线| 日韩精品日韩激情日韩综合| 日韩欧美亚洲综合在线| 神马午夜福利免费视频| 日韩欧美一区二区不卡视频| 国产在线一区二区免费| 日韩欧美二区中文字幕| 91欧美一区二区三区| 亚洲一区二区精品免费| 亚洲av熟女一区二区三区蜜桃| 日韩欧美一区二区久久婷婷| 亚洲一区二区三区国产| 精品少妇一区二区视频| 91日韩欧美在线视频| 国产日韩欧美专区一区| 福利视频一区二区在线| 日本一级特黄大片国产| 国产又粗又猛又大爽又黄| 中文字幕91在线观看| 国产精品内射视频免费| 日本加勒比中文在线观看| 欧美乱码精品一区二区三| 亚洲熟女乱色一区二区三区| 中文字幕一区久久综合| 午夜亚洲少妇福利诱惑| 国产成人国产精品国产三级| 2019年国产最新视频| 好吊视频有精品永久免费| 亚洲国产成人久久99精品| 高清免费在线不卡视频| 偷拍美女洗澡免费视频|