利用Oracle Database Resource Manager實現UNDO表空間的quota

1.查出當前使用的是哪一個resource plan數據庫

select * from GV$RSRC_PLANsession

 

2.建立pending areait

begin
  dbms_resource_manager.create_pending_area;
end;io

 

3.建立consumer groupdate

BEGIN
  DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP=>'SALES_APP',COMMENT=>'');
END;select

 

4.建立plan directive權限

begin
  dbms_resource_manager.create_plan_directive(PLAN=>'DB_CONSOLIDATE_PLAN',group_or_subplan => 'SALES_APP',undo_pool => 1024,comment=>'');
end;數據

 

5.設置session到consumer group的映射:查詢

begin
  dbms_resource_manager.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER,'USER4','SALES_APP');
end;存儲過程

 

6.檢查pending area是否有錯誤:

begin
  dbms_resource_manager.validate_pending_area;
end;

 

7.提交pending area中的內容:

begin
  dbms_resource_manager.submit_pending_area;
end;

 

8.設置用戶到consumer group的權限:

BEGIN
  DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SWITCH_CONSUMER_GROUP (GRANTEE_NAME   => 'USER4',CONSUMER_GROUP => 'SALES_APP',GRANT_OPTION   =>  FALSE);
END;

 

以上的步驟爲實現對特定用戶的undo空間設置quota的語句,有如下幾點還須要注意:

(1) select * from V$RSRC_PLAN_HISTORY 能夠經過這個語句來查詢數據庫的resource plan 的切換狀況。

(2) 根據(1)中的語句可能會發現resource plan是不停地自動切換的,以下想讓其不自動切換,能夠在設置resource plan 的時候設置 FORCE: 前綴,例如:

ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'FORCE:mydb_plan';

FORCE:前綴對於DBMS_RESOURCE_MANAGER.SWITCH_PLAN 這個存儲過程當中的resource plan 的指定也一樣適用。

其實加FORCE:前綴影響的是V$RSRC_PLAN_HISTORY視圖的ALLOWED_AUTOMATED_SWITCHES

 

 

以上。

相關文章
相關標籤/搜索