共計 4395 個字符,預計需要花費 11 分鐘才能閱讀完成。
這篇文章主要介紹“ORCALE 怎么建立一個資源計劃”,在日常操作中,相信很多人在 ORCALE 怎么建立一個資源計劃問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ORCALE 怎么建立一個資源計劃”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
1、 概念
使用數據庫資源管理對系統進行管理,包括使用資源計劃、資源使用者組和資源計劃指令。包括資源使用者組、資源計劃、資源計劃指令
2、 建立一個資源計劃過程
授予 admin 權限
execute dbms_resource_manager_privs.grant_system_privilege(grantee_name = pptest ,privilege_name = ADMINISTER_RESOURCE_MANAGER ,admin_option = FALSE);
創建資源組
SQL execute dbms_resource_manager.create_consumer_group(VIP , VIP USER
PL/SQL procedure successfully completed
SQL execute dbms_resource_manager.create_consumer_group(gen , gen user
PL/SQL procedure successfully completed
創建資源計劃
execute dbms_resource_manager.create_plan(PLAN_TEST , TEST
為資源計劃分配資源分配方法(CPU,重點法)
execute dbms_resource_manager.create_pending_area;
SQL execute dbms_resource_manager.create_plan_directive(plan = PLAN_TEST ,group_or_subplan = vip ,comment = cpu resource use ,cpu_p1 = 100);
SQL execute dbms_resource_manager.create_plan_directive(plan_test , gen , cpu resource gen user ,cpu_p2= 100);
SQL execute dbms_resource_manager.create_plan_directive(plan_test , other_groups ,comment = other user ,cpu_p3 = 100);
為資源計劃分配資源分配方法(活動會話)
execute dbms_resource_manager.create_pending_area;
execute dbms_resource_manager.update_plan_directive(plan = PLAN_TEST ,group_or_subplan = vip ,new_active_sess_pool_p1 = 100(此資源組允許 100 個活動會話,new_queueing_p1 = 60(秒為單位));
execute DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
為資源計劃分配資源分配方法(預計最大執行時間)
當預計執行時間大于預計時間,語句將不會執行。
SQL execute dbms_resource_manager.create_pending_area;
PL/SQL procedure successfully completed
SQL execute dbms_resource_manager.update_plan_directive(plan = PLAN_TEST ,group_or_subplan = vip ,new_max_est_exec_time = 1000);
PL/SQL procedure successfully completed
SQL execute DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
PL/SQL procedure successfully completed
分配用戶到資源組
1、 設置用戶可以切換的組的權限
execute dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name = pptest ,consumer_group = vip ,grant_option = false);
2、 設置用戶的初始化組
execute dbms_resource_manager.set_initial_consumer_group(user = pptest ,consumer_group = vip
啟動當前資源管理器
alter system set resource_manager_plan= plan_test scope=both;
查看資源計劃組的設置。
select * from dba_rsrc_plan_directives where PLAN= PLAN_TEST
3、 使用映射,讓某個用戶的會話都屬于某個資源組
execute dbms_resource_manager.create_pending_area;
execute dbms_resource_manager.set_consumer_group_mapping(dbms_resource_manager.oracle_user, pptest , gen);
execute dbms_resource_manager.submit_pending_area;
4、 對于任何沒有分配初始組的用戶資源計劃組為 DEFAULT_CONSUMER_GROUP,一旦計劃啟用這部分用戶會歸入 OTEHER_GROUPS 組
5、 對于設置了 set_consumer_group_mapping 的用戶及時你沒有權限及 dbms_resource_manager_privs.grant_switch_consumer_group 設置的,也是不能使用相應的 MAPPING 的組,如果設置 MAPPING 初始組就是 MAPPING 的。
execute dbms_resource_manager.set_consumer_group_mapping(dbms_resource_manager.oracle_user, pptest1 , VIP
SQL select username, resource_consumer_group from v$session where username is not null;
USERNAME RESOURCE_CONSUMER_GROUP
—————————— ——————————–
PPTEST1 OTHER_GROUPS
PPTEST1 OTHER_GROUPS
還是 OTHER_GROUPS
SQL select * from dba_rsrc_consumer_group_privs where GRANTEE= PPTEST1
GRANTEE GRANTED_GROUP GRANT_OPTION INITIAL_GROUP
—————————— —————————— ———— ————-
SQL select * from dba_rsrc_group_mappings where VALUE= PPTEST1
ATTRIBUTE VALUE CONSUMER_GROUP STATUS
—————————— ——————————————————————————– —————————— ——————————
ORACLE_USER PPTEST1 VIP
6、 如果用戶不屬于任何組你想設置初始組會報錯
SQL execute dbms_resource_manager.set_initial_consumer_group(user = pptest2 ,consumer_group = gen
begin dbms_resource_manager.set_initial_consumer_group(user = pptest2 ,consumer_group = gen end;
ORA-29399: user PPTEST2 does not have privilege to switch to consumer group GEN
ORA-06512: at SYS.DBMS_RESOURCE_MANAGER , line 489
ORA-06512: at line 2
因為必須設置
execute dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name = pptest2 ,consumer_group = gen ,grant_option = false);
及權限。
所以這里就涉及到一個權限問題 set_initial_consumer_group 他表示你可以使用的組,如果沒有在這里面你是不能使用的即使使用 set_consumer_group_mapping 進行修改但是雖然不報錯但是你是不能使用的,如果使用 set_initial_consumer_group 來定義初始組你是不能定義的會報錯涉及的視圖
dba_rsrc_consumer_group_privs
dba_rsrc_group_mappings
一個時間段一個用戶只能 MAPPING 到一個資源組,dba_rsrc_group_mappings 可以修改,set_initial_consumer_group 可以設置初始 MAPPING。
所以一般的使用 set_initial_consumer_group 建立初始組就完成了映射,修改才使用 set_consumer_group_mapping,不過一定要記得_resource_manager_privs.grant_switch_consumer_group 設置這個用戶可以使用那些資源組。
到此,關于“ORCALE 怎么建立一個資源計劃”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!