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 Shared Servers
Shared Server Architecture
ﻋﻨﺩﻤﺎ ﻴﺘﻡ ﺘﻬﻴﺌﺔ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﺘﻌﻤل ﺒﺎﻟﻨﻤﻁ Shared Server ﻓﺈﻥ ﻫﻨﺎﻙ ﻨﻭﻋﺎﻥ ﻤﻥ ﺍلProcess ﻴﺘﻡ ﺇﻨﺸﺎﺀﻫﻡ (Shared Servers & Dispatchers)،
ﺃﻴﻀﺎ ﻴﺘﻡ ﺇﻨﺸﺎﺀ ﻋﺩﺩ ﻤﻥ ﺍﻟﺼﻔﻭﻑ ﻋﻠﻰ ﺍﻟﺫﺍﻜﺭﺓ SGA، ﻜﻤﺎ ﻴﺘﻡ ﺘﻌﺩﻴل ﺴﻠﻭﻙ ﺍﻟﻤﺴﺘﻤﻊ (Listener) ﻟﻜﻲ ﻴﻌﻤل ﻤﻊ ﺍلShared Server.
ﻭﺍلDispatcher ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ Process ﻴﻌﻤل ﻋﻠﻰ TCP PORT ﻭﻴﺘﻡ ﺘﺴﺠﻴﻠﻪ ﻟﺩﻯ ﺍلListener.
ﻻﺤﻅ ﻤﻌﻲ ﺨﻁﻭﺍﺕ ﻋﻤل ﺍلShared Server Process ﻓﻌﻨﺩﻤﺎ ﻴﻁﻠﺏ ﺍلProcess User ﺍﻻﺘﺼﺎل ﺒﺎلInstance ﻻ ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﻤﻊ ﺒﺈﻨﺸﺎﺀ Server Process
ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎل ﻓﻲ ﺍل Dedicate Server ﻭﻟﻜﻥ ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﻤﻊ ﺒﺈﺒﻘﺎﺀ ﻗﺎﺌﻤﺔ ﺍلDispatchers ﺍﻟﻤﺘﺎﺤﺔ ﺍﻟﺘﻲ ﻴﻘﻭﻡ ﺍﺤﺩﻫﺎ ﺒﺎﺴﺘﻘﺒﺎل ﺫﻟﻙ ﺍﻟﻁﻠﺏ ﻭﺘﻤﺭﻴﺭﻩ ﺇﻟﻰ
ﺍلRequest Queue ﻤﻊ ﺍﻟﻌﻠﻡ ﺃﻥ ﻫﺫﺍ ﺍﻟﺼﻑ ﻴﺤﻭﻯ ﺠﻤﻴﻊ ﺍﻟﻁﻠﺒﺎﺕ ﺍﻟﺘﻲ ﺍﺴﺘﻘﺒﻠﺘﻬﺎ ﺠﻤﻴﻊ ﺍلDispatchers، ﻤﻊ ﺍﻟﻌﻠﻡ ﺃﻥ ﻫﺫﺍ ﺍﻟﺼﻑ ﻴﺘﻡ ﺘﻜﻭﻴﻨﻪ ﺁﻟﻴﺎﹰ ﻋﻨﺩ ﺘﻬﻴﺌﺔ
ﺍلInstance ﻓﻲ ﺍﻟﻨﻤﻁ Shared Server ﻭﺃﻴﻀﺎﹰ ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﻋﺩﺩ ﺍلDispatchers ﺍﻟﺘﻲ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻫﺎ.
ﺒﻌﺩﻤﺎ ﺘﺼل ﺍﻟﻁﻠﺒﺎﺕ ﺇﻟﻰ ﺍلRequest Queue ﺘﻅل ﺠﻤﻴﻊ ﺍلShared Servers ﺘﺭﺍﻗﺏ ﻫﺫﺍ ﺍﻟﺼﻑ ﺍﻟﺫﻱ ﻴﺤﻭﻯ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻁﻠﺒﺎﺕ،
ﻓﻠﺤﻅﺔ ﺍﻨﺘﻬﺎﺀ ﺃﺤﺩ ﺍلShared Server ﻤﻥ ﺨﺩﻤﺔ ﺍﺤﺩ ﺍﻟﻁﻠﺒﺎﺕ ﻴﺘﻡ ﺘﺭﺸﻴﺢ ﻁﻠﺏ ﺁﺨﺭ ﻤﻥ ﺍلRequest Queue ﺇﻟﻰ ﺫﻟﻙ ﺍلShared Server Process ،
ﺒﻌﺩﻤﺎ ﻴﻔﺭﻕ ﺍل Shared server Process ﻤﻥ ﻤﻌﺎﻟﺠﺔ ﺍﻟﻁﻠﺏ ﻴﻘﻭﻡ ﺒﺘﻤﺭﻴﺭﻩ ﺇﻟﻰ ﺍلResponse Queue، ﻭﺍﻟﺤﻘﻴﻘﺔ ﺃﻥ ﻫﻨﺎﻙ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍلResponse Queue
ﺒﻤﻌﺩل ﺼﻑ ﻟﻜل Dispatcher ﻓﻴﻘﻭﻡ ﺍلShared Server ﺒﺘﻤﺭﻴﺭ ﺍﻟﻨﺘﻴﺠﺔ ﺇﻟﻰ ﺍلResponse Queue ﺍﻟﺨﺎﺹ ﺒﺎلDispatcher ﺍﻟﺫﻱ ﻗﺎﻡ ﺒﺎﺴﺘﻘﺒﺎل ﺍﻟﻁﻠﺏ ﺃﻭﻻﹰ،
ﺒﻌﺩ ﺫﻟﻙ ﻴﺘﻡ ﺘﻤﺭﻴﺭ ﺍﻟﺭﺩ ﺃﻭ ﺍﻟﻨﺘﻴﺠﺔ ﻤﻥ ﺍلResponse Queue ﺇﻟﻰ ﺍلDispatcher ﺍﻟﺫﻱ ﺒﺩﻭﺭﻩ ﻴﻘﻭﻡ ﺒﺈﺭﺴﺎل ﺍﻟﺭﺩ ﺇﻟﻰ الUser Process.
The SGA and PGA:
ﻻﺤﻅ ﻤﻌﻲ ﺍﻟﻔﺭﻕ ﻓﻲ ﺘﻜﻭﻴﻥ ﺍﻟﺫﺍﻜﺭﺓ ﻟﻜل ﻤﻥ ﺍلDedicated Server ﻭﺍلShared Server، ﻟﻤﺎ ﻜﺎﻥ ﻟﻜل Process User ﻴﺘﺼل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ process Server ﺨﺎﺹ ﺒﻪ
ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎل ﻓﻲ ﺍلDedicated Server ﺤﻴﺙ ﻴﺘﻡ ﺘﺨﺯﻴﻥ ﺍلUser Session Data ﻭﻫﻰ ﻤﺼﺎﺩﺭ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻲ ﺍلPGA ﻭﻫﻰ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺨﺎﺼﺔ ﺒﻜل Server Process
ﻭﺃﻴﻀﺎﹰ Cursor state ﻭﻟﻜﻥ ﻟﻤﺎ ﻜﺎﻥ ﺍﻷﻤﺭ ﻋﻠﻰ ﺨﻼﻑ ﺫﻟﻙ ﻓﻲ ﺍلShared Server ﺘﻡ ﺘﺨﺯﻴﻥ ﻫﺫﻩ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻓﻲ ﺍلSGA ﻭﻫﻰ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﻌاﻤﺔ
ﺤﻴﺙ ﺘﺘﻡ ﻓﻴﻬﺎ ﺍﻟﻤﺸﺎﺭﻜﺔ، ﻟﻜﻥ ﻻﺤﻅ ﺃﻥ ﻤﻌﻠﻭﻤﺎﺕ ﺍلStack Space ﻓﻲ ﻜﻼ ﺍﻟﺤﺎﻟﻴﻥ ﻴﺘﻡ ﺘﺨﺯﻴﻨﻬﺎ ﻓﻲ ﺍلPGA ﻭﺫﻟﻙ ﻷﻨﻬﺎ ﺘﺤﻭﻯ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﻤﺤﻠﻴﺔ ﻟل.Process.
Configure Oracle Shared Server:
ﻟﺘﻬﻴﺌﺔ ﺍلInstance ﻟﺘﻌﻤل ﻋﻠﻰ ﺍﻟﻨﻤﻁ Shared Server ﻓﻘﻁ ﻴﻠﺯﻤﻨﺎ ﺘﻬﻴﺌﺔ ﺒﻌﺽ ﺍﻟﺘﻐﻴﺭﺍﺕ ﻋﻠﻰ ﻤﻠﻑ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ Parameter File ،
ﺃﻤﺎ ﺍلListener ﻓﻴﺘﻡ ﺘﻬﻴﺌﺘﻬﺎ ﺁﻟﻴﺎﹰ ﺨﻼل Dynamic Instance Registration.
ﻫﻨﺎﻙ ﻤﺘﻐﻴﺭ ﻭﺍﺤﺩ ﻓﻘﻁ ﻻﺒﺩ ﻤﻥ ﺘﻬﻴﺌﺘﻪ ﻭﻫﻭ ﺍﻟﻤﺘﻐﻴﺭ DISPATCHERS ﺃﻤﺎ ﺒﻘﻴﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻓﻬﻲ ﺍﺨﺘﻴﺎﺭﻴﺔ:
1- SHARED_SERVERS:
ﻭﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﺤﺩﻴﺩ ﻋﺩﺩ ﺍلSHARED SERVER ﺍﻟﺘﻲ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻫﺎ ﻟﺤﻅﺔ ﺘﺸﻐﻴلﺍلInstance ﻓﻲ ﺍﻟﻨﻤﻁ Shared Server ﻭﻫﻭ ﻤﺘﻐﻴﺭ ﺁﻟﻲ ﺒﻤﻌﻨﻰ ﺃﻨﻙ ﺘﺴﺘﻁﻴﻊ ﺘﻐﻴﻴﺭ ﻗﻴﻤﺘﻪ ﺩﻭﻥ ﺇﻏﻼﻕ
ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ، ﻭﻴﺤﻤل ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻓﻲ ﺍﻷﺼل ﺍﻟﻘﻴﻤﺔ 0 ﻤﺎﺩﺍﻡ ﺃﻥ ﺍلDispatcher ﻴﺴﺎﻭﻯ NULL.
2- DISPATCHERS:
ﻭﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﺤﺩﻴﺩ ﻋﺩﺩ ﺍلDispatcher ﺍﻟﺘﻲ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻫﺎ ﻟﺤﻅﺔ ﺘﺸﻐﻴل ﺍلInstance ﻓﻲ ﺍﻟﻨﻤﻁ Shared Server ﺤﺴﺏ ﺍلPROTOCOL ﺍﻟﻤﻌﻁﻰ،
ﻭﻴﺄﺨﺫ ﻓﻲ ﺍﻷﺼل ﺍﻟﻘﻴﻤﺔ NULL ﻭﻻﺒﺩ ﻤﻥ ﺘﻬﻴﺌﺔ ﻫﺫﻩ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﻌﻤل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻨﻤﻁ Shared Server .
3- MAX_SHARED_SERVERS:
ﻭﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﺤﺩﻴﺩ ﺃﻗﺼﻰ ﻋﺩﺩ ﻤﻥ ﺍلShared Server ﻴﻤﻜﻥ ﺃﻥ ﻴﺘﻡ ﺘﺸﻐﻴﻠﻪ، ﻭﻫﻭ ﻤﺘﻐﻴﺭ ﺁﻟﻲ ﻴﺴﻤﺢ ﻟلServer Shared ﺒﺯﻴﺎﺩﺓ ﻋﺩﺩ ﺍلServer Shared ﻋﻨﺩﻤﺎ ﺃﺤﺘﺎﺝ ﻟﺫﻟﻙ.
4- SHARED_SERVER_SESSION:
ﻭﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﺤﺩﻴﺩ ﻋﺩﺩ ﺍلSessions ﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺃﻥ ﺘﻔﺘﺢ ﻓﻲ ﻨﻔﺱ ﺍﻟﻠﺤﻅﺔ ﻋﻠﻰ ﺍل Shared Server.
ﻭﻟﻨﻔﺘﺭﺽ ﺍﻵﻥ ﺃﻨﻨﺎ ﻨﺭﻴﺩ ﺘﻐﻴﻴﺭ ﻋﻤل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺍلDedicated Server ﺇﻟﻰ ﺍلShared Server:
1- ﺘﻬﻴﺌﺔ ﺍﻟﻤﺘﻐﻴﺭ DISPATCHERS.
ALTER SYSTEM SET DISPATCHERS='(PROTOCOL=TCP)(DISPATCHERS=50)' scope=spfile; |
2- ﺘﻬﻴﺌﺔ ﺍﻟﻤﺘﻐﻴﺭ SHARED_SERVERS ﻭﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﺨﻴﺎﺭﻱ.
ALTER SYSTEM SET SHARED_SERVERS=10 scope=spfile; |
3- ﺇﻏﻼﻕ ﻭﻓﺘﺢ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
SHUTDOWN IMMEDIATE; STARTUP; |
4- ﺍﻟﺘﺄﻜﺩ ﻤﻥ ﻋﻤل ﺍلDISPATCHERS ﻭﺍلSHARED SERVERS.
SELECT PROGRAM FROM V$PROCESS; |
ﻻﺤﻅ ﻤﻌﻲ ستجد (D000 , D001,D002) ﻭﻫﻜﺫﺍ.
5- ﺍﻟﺘﺄﻜﺩ ﻤﻥ ﺘﺴﺠﻴل ﺍلDISPATCHERS ﻓﻲ ﺍلLISTENER.
LSNRCTL SERVICE |
--------------------------------