Orcale Tutorial Content
Getting Started - البدء مع إدارة قواعد البيانات
Oracle Architectural Components - مكونات قاعدة البيانات أوركل
Installing Oracle Database - تثبيت الأوركل
Creating and Configuring Database - إنشاء قاعدة البيانات
Controlling The Database -التحكم في قاعدة البيانات
Administrating Users - إدارة المستخدمين
Database Security & Monitoring - تأمين ومراقبة قاعدة البيانات
Oracle Net Services & Database Link & Metrlized Viewِ
Undo Management & Flashback Technology
Managing Shared Servers
Using Globalization Support
Logical Backup & Recovery
Physical Backup & Recovery
Recovery Manager (RMAN)
Managing Resources
Automating Tasks with the Scheduler
Dealing with Locking
Diagnostic Sources
Dealing With Database Corruption
Managing & Monitoring Memory
Performance Tunning
Managing Resources
Move Active User To Other Consumer Group
ﺘﺤﻭﻴل ﺍﻟﻤﺴﺘﺨﺩﻡ ﺍﻟﻨﺸﻁ ﺇﻟﻲ CONSUMER GROUP ﺃﺨﺭﻱ:
ﻟﻨﻔﺘﺭﺽ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ OBAY ﻗﺎﻡ ﺒﺎﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺨﻼل ﺍﻟﻤﺠﻤﻭﻋﺔ NEW_GROUP، ﻭﻨﺭﻴﺩ ﺍﻻﻥ ﺘﺤﻭﻴل ﺍلGROUP CONSUMER ﻤﻥ NEW_GROUP ﺇﻟﻲ SYS_GROUP.
ﺴﻨﺴﺘﺨﺩﻡ ﺍﻹﺠﺭﺍﺀ .SWITCH_CONSUMER_GROUP_FOR_USER ﻨﻘﻭﻡ ﺍﻻﻥ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﻤﺴﺘﺨﺩﻡ OBAY ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻨﺘﺄﻜﺩ ﻤﻥ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺍﺘﺼل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻤﻥ ﺨﻼل ﺍﻟﻤﺠﻤﻭﻋﺔ NEW_GROUP.
SELECT USERNAME,RESOURCE_CONSUMER_GROUP FROM V$SESSION WHERE USERNAME='OBAY'; |
ﺍﻻﻥ ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ SWITCH_CONSUMER_GROUP_FOR_USER ﻨﻘﻭﻡ ﺒﺘﺤﻭﻴل ﺍﻟﻤﺴﺘﺨﺩﻡ OBAY ﺇﻟﻲ ﺍﻟﻤﺠﻤﻭﻋﺔ SYS_PLAN ﻻﺤﻅ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ OBAY
ﻤﺘﺼل ﺍﻻﻥ ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻠﺤﻅﺔ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﺴﻴﺘﻡ ﺘﺤﻭﻴل ﺠﻤﻴﻊ ﺍلSESSION ﺍﻟﺘﺎﺒﻌﺔ ﻟﻠﻤﺴﺘﺨﺩﻡ OBAY ﻟﻠﻤﺠﻤﻭﻋﺔ SYS_GROUP.
DECLARE USER VARCHAR2(200); CONSUMER_GROUP VARCHAR2(200); BEGIN USER := 'OBAY'; CONSUMER_GROUP := 'SYS_GROUP';
SYS.DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_ USER ( USER, CONSUMER_GROUP ); COMMIT; END; |
ﻟﻨﺘﺄﻜﺩ ﺍﻻﻥ ﻤﻥ ﺃﻥ ﺍلSESSIONS ﺍﻟﺘﺎﺒﻌﺔ ﻟﻠﻤﺴﺘﺨﺩﻡ OBAY ﺘﻡ ﺘﺤﻭﻴﻠﻬﺎ ﻟل CONSUMER GROUP ﺍﻟﺘﻲ ﺘﺴﻤﻲ SYS_GROUP.
SELECT USERNAME,RESOURCE_CONSUMER_GROUP FROM V$SESSION WHERE USERNAME='OBAY'; |
ﻫل ﻻﺤﻅﺕ ﻜﻴﻑ ﺘﻡ ﺘﺤﻭﻴل ﺍلSESSION ﺍﻟﺘﺎﺒﻌﺔ ﻟﻠﻤﺴﺘﺨﺩﻡ OBAY ﻤﻥ ﺍﻟﻤﺠﻤﻭﻋﺔ NEW_GROUP ﺇﻟﻲ ﺍﻟﻤﺠﻤﻭﻋﺔ SYS_GROUP،
ﻓﻠﻭ ﻜﺎﻥ ﻟﻠﻤﺴﺘﺨﺩﻡ OBAY ﻋﺩﺩ ﻤﻥ ﺍلSESSIONS ﻤﺘﺼﻠﺔ ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺴﻭﻑ ﻴﺘﻡ ﺘﺤﻭﻴﻠﻬﺎ ﺠﻤﻴﻌﹰﺎ ﺇﻟﻲ ﺍﻟﻤﺠﻤﻭﻋﺔ SYS_GROUP،
ﻟﻜﻥ ﻤﺎﺫﺍ ﻟﻭ ﺃﺭﺩﻨﺎ ﺘﺤﻭﻴل SESSION ﺒﻌﻴﻨﻬﺎ ﻤﻥ ﻤﺠﻤﻭﻉ ﻫﺫﻩ ﺍلSESSIONS ﺇﻟﻲ ﺍﻟﻤﺠﻤﻭﻋﺔ SYS_GROUP؟ ﻓﻲ ﻤﺜل ﻫﺫﺍ ﺍﻟﺴﻨﺎﺭﻴﻭ ﺴﻨﺴﺘﺨﺩﻡ ﺍﻹﺠﺭﺍﺀ
SWITCH_CONSUMER_GROUP_FOR_SESS ﻹﺴﺘﺨﺩﺍﻡ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﻨﺤﺘﺎﺝ ﻟﻤﻌﺭﻓﺔ SESSION_ID AND SESSION_SERIAL.
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='OBAY'; |
ﺇﺫﺍ ﺃﺭﺩﻨﺎ ﺘﺤﻭﻴل ﻫﺫﻩ ﺍلSESSION ﺇﻟﻲ ﺍﻟﻤﺠﻤﻭﻋﺔ NEW_GROUP ﺴﻨﺴﺘﺨﺩﻡ ﺍﻹﺠﺭﺍﺀ SWITCH_CONSUMER_GROUP_FOR_SESS
ﻤﻊ ﻤﻼﺤﻅﺔ ﺃﻨﻪ ﻟﻭ ﻜﺎﻥ ﻫﻨﺎﻙ ﺃﻜﺜﺭ ﻤﻥ SESSION ﺘﺎﺒﻌﺔ ﻟﻬﺫﺍ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻻ ﺘﺘﺄﺜﺭ ﺒﻬﺫﺍ ﺍﻹﺠﺭﺍﺀ.
DECLARE SESSION_ID NUMBER SESSION_SERIAL NUMBER CONSUMER_GROUP VARCHAR2(200) BEGIN SESSION_ID := 741 SESSION_SERIAL := 32 CONSUMER_GROUP := 'NEW_GROUP' SYS.DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_ SESS ( SESSION_ID, SESSION_SERIAL, CONSUMER_GROUP) COMMIT END |
ﺍﻻﻥ ﻟﻭ ﻗﻤﺕ ﺒﻌﻤل ﺍﺴﺘﻌﻼﻡ ﻋﻥ ﻫﺫﻩ ﺍلSESSION ﻓﺴﺘﺠﺩ ﺃﻨﻬﺎ ﺘﻨﺘﻤﻲ ﻟﻠﻤﺠﻤﻭﻋﺔ NEW_GROUP.
SELECT USERNAME,RESOURCE_CONSUMER_GROUP FROM V$SESSION WHERE USERNAME='OBAY'; |
ﻫﻨﺎﻙ ﺇﺠﺭﺍﺀ ﺍﺨﺭ ﻴﻘﻭﻡ ﺒﻌﻤﻠﻴﺔ ﺘﺤﻭﻴل ﺍلSESSION ﺍﻟﺤﺎﻟﻴﺔ ﻤﻥ GROUP CONSUMER ﺇﻟﻲ ﺍﺨﺭ، ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﻫﻭ SWITCH_CURRENT_CONSUMER_GROUP
ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﺘﺎﺒﻊ ﻟﻠﺤﺯﻤﺔ DBMS_SESSION، ﻻﺤﻅ ﺃﻥ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﻴﻌﻤل ﻋﻠﻲ ﺍلSESSION ﺍﻟﺤﺎﻟﻴﺔ، ﺃﻱ ﻻ ﻴﻤﻜﻥ ﺘﻨﻔﻴﺫﻩ ﻤﻥ ﺨﻼل SESSION ﻭﻨﺤﻥ ﻨﺴﺘﻬﺩﻑ SESSION ﺃﺨﺭﻱ.
DECLARE NEW_CONSUMER_GROUP VARCHAR2(200); OLD_CONSUMER_GROUP VARCHAR2(200); INITIAL_GROUP_ON_ERROR BOOLEAN; BEGIN NEW_CONSUMER_GROUP := ‘NEW_GROUP’; OLD_CONSUMER_GROUP := ‘SYS_GROUP’; INITIAL_GROUP_ON_ERROR := FALSE; SYS.DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUP ( NEW_CONSUMER_GROUP, OLD_CONSUMER_GROUP, INITIAL_GROUP_ON_ERROR ); COMMIT; END; |
------------------------------------------------