Professional Documents
Culture Documents
Arabic Oracle
Arabic Oracle
Arabic Oracle
ﺃﺨﻭﻜﻡ ﻤﺤﻤﺩ.
http://www.cb4a.com/
2
اﻟﻤﻜﻮﻧﺎت:
3
ORACLE ARCHITECTURE
4
ORACLE SERVER
ھﻮ ﻧﻈﺎم ﻻدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و ﯾﺘﻜﻮن ﻣﻦ ﻣﻜﻮﻧﯿﯿﻦ اﺳﺎﺳﯿﯿﻦ ھﻤﺎ :
ﻣﻦ أھﻢ ﻣﻜﻮﻧﺎت اﻷوراﻛﻞ ﯾﺤﺘﻮي ﻋﻠﻰ Memory Structureو .Process structureﻟﺘﺘﻤﻜﻦ ﻣﻦ
اﻟﻮﺻﻮل اﻟﻰ اﻟﺒﯿﺎﻧﺎت " "Dataﯾﺠﺐ أن ﯾﻜﻮن ال Instanceﻓﻲ وﺿﻌﯿﺔ اﻟﻌﻤﻞ ،أي اﻧﮫ ﯾﺘﻢ ﻣﻦ ﺧﻼﻟﮫ
اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ ،وﻻ ﯾﺴﺘﻄﯿﻊ ال Instanceﻓﺘﺢ و ﺗﺸﻐﯿﻞ أﻛﺜﺮ ﻣﻦ Databaseواﺣﺪ ﻓﻘﻂ
ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ،وﻟﻜﻦ ﻣﻦ اﻟﻤﻤﻜﻦ ﻷﻛﺜﺮ ﻣﻦ Instanceاﻟﻌﻤﻞ ﻋﻠﻰ ذات ال .Database
رﺳﻢ 1.1
ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﻠﻔﺎت ﻟﺤﻔﻆ اﻟﺒﯿﺎﻧﺎت واﺳﺘﻌﺎدﺗﮭﺎ ﻋﻨﺪ اﻟﻄﻠﺐ وﯾﻨﻘﺴﻢ اﻟﻰ ﻗﺴﻤﯿﻦ ھﻤﺎ Logical
structureو . Physical structure
ﻣﺜﺎل:
ﻋﻨﺪﻣﺎ ﺗﺸﺎھﺪ ﺻﻮرة ﻋﻠﻰ ﻣﻮﻗﻊ اﻧﺘﺮﻧﺖ ﻓﺈﻧﻚ ﺗﺸﺎھﺪ اﻟﺠﺰء ال Logicalأﻣﺎ اﻟﻤﻠﻒ اﻟﺤﻘﯿﻘﻲ ﻟﻠﺼﻮرة واﻟﺬي
ﻣﺨﺰن ﻓﻲ اﻟﺴﯿﺮﻓﺮ ﯾﻜﻮن اﻟﺠﺰء ال .Physicalﯾﻜﻮن ھﻨﺎﻟﻚ ارﺗﺒﺎط ﺑﯿﻦ اﻟﺠﺰﺋﯿﻦ ﺑﺤﯿﺚ اذا ﺣﺬف أﺣﺪھﻤﺎ ﯾﺠﺐ
ﺣﺬف اﻟﺠﺰء اﻷﺧﺮ ،اذ ﻻ ﻓﺎﺋﺪة ﻣﻦ إﺑﻘﺎء ﻣﻠﻒ اﻟﺼﻮرة ال Physicalﻓﻲ اﻟﺴﯿﺮﻓﺮ اذا ﻛﻨﺖ ﻻ ﺗﺮﯾﺪ ﻋﺮض
اﻟﺼﻮرة ﻋﻠﻰ اﻷﻧﺘﺮﻧﺖ.
5
وﯾﺘﻜﻮن Database physical structureﻣﻦ ﺛﻼث ﻣﻠﻔﺎت ھﻲ :
---------------------------------------------------------------------------------------------------
:Control filesﻣﻠﻔﺎت اﻟﺘﺤﻜﻢ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻼزﻣﺔ ﻟﻠﻤﺤﺎﻓﻈﺔ ﻋﻠﻰ ال Databaseوﯾﺠﺐ ان
ﯾﺘﻮﻓﺮ ﻋﻠﻰ اﻷﻗﻞ ﻣﻠﻒ واﺣﺪ ﻟﯿﻌﻤﻞ .Oracle Database
:Redo Log Filesﺗﻘﻮم ﺑﺘﺴﺠﯿﻞ ﺟﻤﯿﻊ اﻟﻤﺘﻐﯿﺮات اﻟﺘﻲ ﻃﺮأت ﻋﻠﻰ ال Databaseﻣﺜﻞ أﺿﺎﻓﺔ أو ﺣﺬف
ﺑﻌﺾ اﻟﺒﯿﺎﻧﺎت " "Dataﻟﻨﺘﻤﻜﻦ ﻣﻦ اﺳﺘﻌﺎدة اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﺣﺪوث ﺿﯿﺎع ﺑﯿﺎﻧﺎت ﺑﺸﻜﻞ ﻣﻔﺎﺟﺊ )ﻣﺜﻼً :اﻧﻘﻄﺎع
اﻟﺘﯿﺎر اﻟﻜﮭﺮﺑﺎﺋﻲ ﻗﺒﻞ ﺣﻔﻆ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﻐﯿﺮة(.
-------------------------------------------------------------------------------------------------------
وﯾﻮﺟﺪ ﻣﻠﻔﺎت أﺧﺮى ﻓﻲ ال physicalوﻟﻜﻨﮭﺎ ﻟﯿﺴﺖ ﺿﻤﻦ ال Databaseاﻧﻤﺎ ﺿﻤﻦ ال .Oracle Server
وﯾﺠﺐ أن ﺗﺘﻮاﺟﺪ ﻟﺘﺸﻐﯿﻞ واﺳﺘﺨﺪام واﻏﻼق ال Databaseﻣﺜﻞ:
:Password Fileاﻟﺬي ﯾﺤﺘﻮى ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻼزﻣﺔ ﻟﻠﺪﺧﻮل اﻟﻰ ال Instanceﻣﺜﻞ .Privileges
:Archived Redo Log filesﻋﺒﺎرة ﻋﻦ ﻧﺴﺦ ل Redo Log Filesﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻷﻣﺎن ﻓﻲ ﺣﺎﻟﺔ ﺣﺪوث
أي ﺿﯿﺎع ﻟﻠﺒﯿﺎﻧﺎت.
رﺳﻢ 1.2
6
أﻣﺎ ال Logical Structureﯾﺘﻜﻮن ﻣﻦ:
:Blocksﺗﻨﻘﺴﻢ ال Extentاﻟﻰ وﺣﺪات أﺻﻐﺮ ﺗﺴﻤﻰ ال Blocksوھﻲ أﺻﻐﺮ وﺣﺪات ﺗﺨﺰﯾﻦ و ﻗﺮاءة
اﻟﺒﯿﺎﻧﺎت.
رﺳﻢ 1.3
7
ORACLE MEMORY STRUCTURE
ﯾﺘﻜﻮن ﻣﻦ ﻣﻨﻄﻘﺘﯿﻦ ﺗﻌﺮﻓﺎن ﺑﺎﺳﻢ :
) :System Global Area (SGAوھﻲ ال Memory structureاﻟﺨﺎص ﺑﺎل Instanceاﻟﺬي ﺗﻢ
اﻟﺘﺤﺪث ﻋﻨﮫ ﻣﺴﺒﻘﺎً )راﺟﻊ اﻟﺮﺳﻢ (1.1واﻟﺘﻲ ھﻲ أﺣﺪ أھﻢ ﻣﻜﻮﻧﺎت ال Instanceوﺗﺤﺠﺰ اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﺻﺔ ﻟﮭﺎ
ﻣﻦ اﻟﺬاﻛﺮة )أو ﺗﺒﺪأ ﺑﺎﻟﻌﻤﻞ( ﻋﻨﺪ ﺗﺸﻐﯿﻞ ال .Instanceوھﻲ ذاﻛﺮة ﻣﺸﺘﺮﻛﺔ ﺑﯿﻦ اﻷواﻣﺮ " "Processesاﻟﺘﻲ
ﺗﺄﺗﻲ ﻟﻞ Instanceﻣﺜﻞ SQL Query Processواﯾﻀﺎً ﻣﺸﺘﺮﻛﺔ ﺑﯿﻦ ﻣﺴﺘﺨﺪﻣﻲ ال Database
اﻟﻤﺨﺘﻠﻔﯿﻦ ،وﺗﻌﺮف اﯾﻀﺎً ﺑﺎﺳﻢ .Shared Global Area :
) :Program Global Area (PGAوھﻲ اﻟﻤﺴﺎﺣﺔ اﻟﻤﺨﺼﺼﺔ ﻣﻦ اﻟﺬاﻛﺮة ل User Processوﺗﺤﺘﻮي
ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ال .Server Processوھﻲ ذاﻛﺮة ﺧﺎﺻﺔ ﻷﻣﺮ " "Processواﺣﺪ ﻓﻘﻂ.
وﺗﻌﺮف اﯾﻀﺎً ﺑﺎﺳﻢ Private Global Area :أو .Process Global Area
رﺳﻢ 1.4
8
)SYSTEM GLOBAL AREA (SGA
ﺟﻤﯿﻊ ﻣﺴﺘﺨﺪﻣﻲ ال Databaseﯾﺘﺸﺎرﻛﻮن اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ھﺬه اﻟﻤﻨﻄﻘﺔ ﺣﯿﺚ ﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت
اﻟﻤﺸﺘﺮﻛﺔ ﻣﻦ ﻣﺨﺘﻠﻒ اﻷواﻣﺮ " "Database Processesﻟﻜﻲ ﺗﺴﮭﻞ ﻋﻤﻠﯿﺔ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت .ﯾﻘﻮم ال
Oracleﺑﺤﺠﺰ اﻟﻤﺴﺎﺣﺔ اﻟﻤﺨﺼﺼﺔ ﻟﮫ ﻣﻦ اﻟﺬاﻛﺮة ﻋﻨﺪ ﺑﺪاﯾﺔ ﺗﺸﻐﯿﻞ ال Instanceوﯾﻘﻮم ﺑﺘﺤﺮﯾﺮ اﻟﻤﺴﺎﺣﺔ
ﻋﻨﺪ اﻧﮭﺎء ﻋﻤﻞ ال ،Instanceوﺗﻘﺴﻢ اﻟﻰ ﻋﺪة أﻗﺴﺎم ﻣﻨﮭﺎ أﻗﺴﺎم اﺳﺎﺳﯿﺔ ﺿﺮورﯾﺔ وﻣﻨﮭﺎ أﻗﺴﺎم اﺧﺘﯿﺎرﯾﺔ.
اﻟﺮﺳﻢ رﻗﻢ 1.5ﯾﻮﺿﺢ اﻷﻗﺴﺎم اﻻﺳﺎﺳﯿﺔ واﻷﻗﺴﺎم اﻻﺧﺘﯿﺎرﯾﺔ )اﻷﻗﺴﺎم اﻻﺧﺘﯿﺎرﯾﺔ ﺑﺎﻟﻠﻮن اﻻﺣﻤﺮ( ،وﺳﻮف ﯾﺘﻢ
اﻟﺘﻄﺮق اﻟﻰ ﻛﻞ ﻗﺴﻢ ﻋﻠﻰ ﺣﺪه.
رﺳﻢ 1.5
ﺗﻌﺘﺒﺮ ال SGAذاﻛﺮة ﻣﺮﻧﺔ داﯾﻨﺎﻣﯿﻜﯿﺔ أي ان ﺑﺎﺳﺘﻄﺎﻋﺔ أﻗﺴﺎﻣﮭﺎ ان ﺗﻜﺒﺮ أو ﺗﺼﻐﺮ ﻓﻲ اﻟﺤﺠﻢ دون أﻏﻼق ال
Instanceﻷﺳﺒﺎب ﻣﺨﺘﻠﻔﺔ ﻣﺜﻞ ﻛﺜﺮة اﻟﻌﻤﻞ ) ﻛﺜﺮة اﻷواﻣﺮ( ﻋﻠﻰ أﺣﺪ أﻗﺴﺎﻣﮭﺎ اذ أن زﯾﺎدة اﻟﻌﻤﻞ ﻋﻠﻰ اﺣﺪ
اﻷﻗﺴﺎم ﯾﺘﺘﻄﻠﺐ ذاﻛﺮة اﺿﺎﻓﯿﺔ وﻟﻜﻦ ﻻ ﯾﻤﻜﻦ ﻟﻠﺬاﻛﺮة اﻟﻌﺎﻣﺔ ﻟﻞ SGAان ﺗﺘﺨﻄﻰ اﻟﺤﺪ اﻷﻋﻠﻰ اﻟﻤﺤﺪد ﺑﺎﻟﻌﺎﻣﻞ
".SGA_MAX_SIZE "Parameter
;SHOW SGA
9
ﻣﺜﺎل:
اذا ﻛﺎﻧﺖ اﻟﺬاﻛﺮة اﻟﻤﺨﺼﺼﺔ ﻟﻞ SGAﺣﻮاﻟﻲ 100ﻣﯿﻐﺎ ﺑﺎﯾﺖ واﻟﺘﻲ ﺗﻌﺘﺒﺮ " "SGA_MAX_SIZEوﻛﺎن
اﻟﺘﻮزﯾﻊ اﻟﻤﺒﺪﺋﻲ ﻟﻠﺬاﻛﺮة ﻋﻠﻰ اﻷﻗﺴﺎم اﻟﻤﺨﺘﻠﻔﺔ ﻋﻠﻰ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲ:
50 =Shared Pool Areaﻣﯿﻐﺎ ﺑﺎﯾﺖ
25 =Database Buffer Cacheﻣﯿﻐﺎ ﺑﺎﯾﺖ
10 =Redo Log Bufferﻣﯿﻐﺎ ﺑﺎﯾﺖ )ﻣﻨﻄﻘﺔ ﺛﺎﺑﺘﺔ ﻏﯿﺮ ﻣﺘﻐﯿﺮة(
ﺑﺎﻗﻲ اﻷﻗﺴﺎم = 15ﻣﯿﻐﺎ ﺑﺎﯾﺖ) .اﻷﻗﺴﺎم اﻟﻤﺘﻐﯿﺮة(
اﻟﺬاﻛﺮة اﻟﻜﺎﻣﻠﺔ = 100ﻣﯿﻐﺎ ﺑﺎﯾﺖ
وزاد ﺿﻐﻂ اﻟﻌﻤﻞ ﻋﻠﻰ Shared Pool Areaﺑﺤﯿﺚ أن 50ﻣﯿﻐﺎ ﺑﺎﯾﺖ ﻟﻢ ﺗﻌﺪ ﺗﻜﻔﻲ ،ﻓﺒﻤﻘﺪور Shared
Pool Areaﺑﺎن ﺗﺄﺧﺬ ذاﻛﺮة اﺿﺎﻓﯿﺔ ﻣﻦ ﺑﺎﻗﻲ اﻷﻗﺴﺎم وﻟﻜﻦ ﻻ ﯾﻤﻜﻦ ﻟﻠﺬاﻛﺮة اﻟﻜﺎﻣﻠﺔ ﺑﺄن ﺗﺰﯾﺪ ﻋﻦ 100ﻣﯿﻐﺎ
ﺑﺎﯾﺖ.
SGA_MAX_SIZEأﺻﻐﺮ ﻣﻦ 128ﻣﯿﻐﺎ ﺑﺎﯾﺖ ,اذاً ﺣﺠﻢ ﻛﻞ Granuleﯾﺴﺎوي 4ﻣﯿﻐﺎ ﺑﺎﯾﺖ أﻣﺎ اذا ﻛﺎن
ﺣﺠﻢ ال SGA_MAX_SIZEاﻛﺒﺮ ﻣﻦ 128ﻣﯿﻐﺎ ﺑﺎﯾﺖ اذاً ﺣﺠﻢ ﻛﻞ Granuleﯾﺴﺎوي 16ﻣﯿﻐﺎ ﺑﺎﯾﺖ.
10
:SHARED POOL AREA
ﺗﺴﺘﺨﺪم ﻟﺤﻔﻆ أﺧﺮ أو أﺣﺪث أواﻣﺮ ال SQLو PL/SQLوأﺧﺮ اﻟﺒﯿﺎﻧﺎت)اﻟﻤﻌﻠﻮﻣﺎت( اﻟﻤﺴﺘﺨﺮﺟﺔ ﻣﻦ ال
.Data Dictionaryﺗﺘﻜﻮن ﻣﻦ ﻗﺴﻤﯿﻦ ھﻤﺎ Library Cache :و .Data Dictionary Cache
رﺳﻢ 1.6
ﺑﺎﻋﺘﺒﺎرھﺎ ﻣﻨﻄﻘﺔ ﻣﮭﻤﮫ ﺟﺪاً ﻓﻤﻦ اﻟﻤﻤﻜﻦ ﺗﻐﯿﺮ ﺣﺠﻤﮭﺎ داﯾﻨﺎﻣﯿﻜﯿﺎً )ﺑﺪون اﻏﻼق ال (Instanceﺑﺤﯿﺚ ﻻ
ﯾﺘﺠﺎوزاﻟﺰﯾﺎدة ﻓﻲ اﻟﻤﺴﺎﺣﺔ ﻣﺴﺎﺣﺔ ال SGAاﻟﻤﺤﺪده ﺑﺎﻟﻌﺎﻣﻞ ".SGA_MAX_SIZE "Parameter
ﯾﻌﺘﺒﺮ ﺣﺠﻢ ال SHARED POOL AREAﻣﺤﺪدة ﻣﻦ ﻗﺒﻞ اﻟﻌﺎﻣﻞ ""Parameter
SHARED_POOL_SIZE
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ:1.2
ﻓﻲ ﺣﺎﻟﺔ ﻧﺠﺎح اﻷﻣﺮ ﯾﻈﮭﺮ اﻟﺠﻮاب اﻟﺘﺎﻟﻲ ﻣﻦ .System altered : SQL PLUS
أﻣﺎ ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم وﺟﻮد ذاﻛﺮة أﺿﺎﻓﯿﺔ ﻻن ﺗﻀﺎف ل Shared Pool Areaﯾﻈﮭﺮ اﻟﺠﻮاب
اﻟﺘﺎﻟﻲ.Insufficient memory to grow:
11
:Library Cache
ﻣﺜﺎل:
ﻋﻨﺪﻣﺎ ﯾﻘﻮم ﻣﺴﺘﺨﺪم ﻟﻞ Databaseﺑﻄﻠﺐ ﺟﻤﻠﺔ ال SQLﻓﺈن اﻟﺠﻤﻠﺔ وﻃﺮﯾﻘﺔ اﻧﺠﺎز ﻣﮭﺎﻣﮭﺎ ﺗﺨﺰن ﻓﻲ
اﻟﻤﻨ ﻄﻘﺔ رﻗﻢ 1وﺑﺬﻟﻚ ﯾﺴﮭﻞ ﻋﻤﻠﯿﺔ ﺗﻜﺮار اﻧﺠﺎز " "Executeال SQLﻣﻦ اﻟﺬاﻛﺮة ﺑﺴﺮﻋﺔ أﻛﺒﺮ ﻓﻲ ﺣﺎل ﺗﻢ
ﻃﻠﺐ ﻧﻔﺲ اﻟﺠﻤﻠﺔ ﻣﻦ ﻣﺴﺘﺨﺪم أﺧﺮ وﺑﺬﻟﻚ ﺗﻜﻮن اﻟﻌﻤﻠﯿﺔ أﺳﺮع وﺗﺨﻔﻒ اﻟﻌﺒﺊ ﻋﻠﻰ ﻣﺎ ﯾﻌﺮف ﺑﺎﺳﻢ
،Compilationsوﻛﺬﻟﻚ ﯾﻨﻄﺒﻖ اﻟﺤﺎل ﻋﻠﻰ .PL/SQL
ﺧﻄﻮات ﻋﻤﻠﯿﺔ:
اﻟﺨﻄﻮة :1ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻷول ﺑﻄﻠﺐ ﺟﻤﻠﺔ ال SQLاﻟﺘﺎﻟﯿﺔ select * from employees; :
اﻟﺨﻄﻮة : 2ﯾﻘﻮم ال Server Processﺑﺪراﺳﺔ اﻟﺠﻤﻠﺔ وﻣﻌﺮﻓﺔ اﻟﻤﺮاﺣﻞ اﻟﺘﻲ ﺳﻮف ﯾﺘﻢ ﺑﻌﺪھﺎ
اﻧﺠﺎز" "Executeاﻟﺠﻤﻠﺔ ﻋﻠﻰ اﻋﺘﺒﺎر أن ھﺬه اﻟﺠﻤﻠﺔ ﻟﯿﺴﺖ ﻣﺨﺰﻧﺔ ﻓﻲ ال .Library Cache
اﻟﺨﻄﻮة :3ﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟ ﺠﻤﻠﺔ وﻣﺮاﺣﻞ اﻧﺠﺎزھﺎ ﻓﻲ .Library Cache
اﻟﺨﻄﻮة :4ﯾﺘﻢ اﻇﮭﺎر اﻟﺒﯿﺎﻧﺎت اﻟﻨﺎﺗﺠﺔ ﻣﻦ ﺟﻤﻠﺔال SQLﻟﻠﻤﺴﺘﺨﺪم اﻷول ،وﺑﺬﻟﻚ ﺗﻜﻮن ﺟﻤﻠﺔ ال SQLﺗﻢ
اﻧﺠﺎزھﺎ وﺗﻢ ﺗﺴﺠﯿﻞ ﺟﻤﯿﻊ اﻟﻤﺮاﺣﻞ اﻟﺘﻲ ﻣﺮت ﺑﮭﺎ اﻟﺠﻤﻠﺔ ﻓﻲ ال .Library Cache
اﻟﺨﻄﻮة :5ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ﺑﻌﺪ ﻗﻠﯿﻞ ﺑﻜﺘﺎﺑﺔ ﻧﻔﺲ ﺟﻤﻠﺔ ال SQLوھﻲ ;select * from employees
اﻟﺨﻄﻮة :6ﯾﻘﻮم ال Server Processﺑﺪراﺳﺔ اﻟﺠﻤﻠﺔ ﻓﯿﺠﺪ اﻧﮭﺎ ﻣﻮﺟﻮده ﻓﻲ ال Library Cacheﻓﯿﻨﻔﺬ
ﻣﺮاﺣﻞ اﻧﺠﺎز اﻟﺠﻤﻠﺔ دون دراﺳﺔ اﻟﺠﻤﻠﺔ ﺑﺎﻋﺘﺒﺎر ان اﻟﻤﺮاﺣﻞ اﻟﺘﻲ ﺗﻤﺖ ﻻﻧﺠﺎز اﻟﺠﻤﻠﺔ ﻣﺨﺰﻧﺔ ﻓﻲ ذاﻛﺮة ال
.Library Cache
اﻟﺨﻄﻮة :7ﯾﺘﻢ اﻇﮭﺎر اﻟﺒﯿﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ ﻟﻠﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ﺑﺴﺮﻋﺔ أﻛﺒﺮ.
اﻟﻤﻜﻮن اﻟﺜﺎﻧﻲ ل SHARED POOL AREAواﻟﺘﻲ ﯾﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﻣﻦ ال Data Dictionary
ﺣﻮل .Tables, Indexes, Privileges, etc… :وھﻲ ﺗﻌﻤﻞ ﺑﻨﻔﺲ ﻃﺮﯾﻘﺔ ال . Library Cache
وﻋﻨﺪﻣﺎ ﺗﻤﺘﻠﺊ ﻣﻨﻄﻘﺔ Library Cacheأو Data Dictionary Cacheﯾﻘﻮم اﻷوراﻛﻞ ﺑﺎﺧﺮاج أﻗﺪم
ﺑﯿﺎﻧﺎت ﻟﻢ ﯾﺘﻢ ﺗﻜﺮار ﻃﻠﺒﮭﺎ ﻟﺘﻌﻮض ﺑﺒﯿﺎﻧﺎت ﺟﺪﯾﺪة وﺗﻌﺮف اﻟﻄﺮﯾﻘﺔ ﺑﺎﺳﻢLeast Recently Used (LRU) :
12
:DATABASE BUFFER CACHE
ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻓﯿﮭﺎ أﺣﺪث اﻟﺒﯿﺎﻧﺎت اﻟﺘﻰ ﺗﻢ اﺳﺘﺨﺮاﺟﮭﺎ ﻣﻦ اﻟﻤﻠﻔﺎت اﻟﻔﯿﺰﯾﺎﺋﯿﺔ " ، "Data Filesوﻓﻲ ﺣﺎﻟﺔ ﻃﻠﺐ
ذات اﻟﺒﯿﺎﻧﺎت ﻣﻦ ذات اﻟﻤﺴﺘﺨﺪم أو ﻣﻦ ﻣﺴﺘﺨﺪﻣﯿﻦ أﺧﺮﯾﯿﻦ ﻟﻞ Databaseﯾﺘﻢ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺬاﻛﺮة
وﻟﯿﺲ ﻣﻦ .Data Files
ﻣﺜﺎل:
ﻋﻨﺪﻣﺎ ﯾﻘﻮم ﻣﺴﺘﺨﺪم ﻟﻞ Databaseﺑﻄﻠﺐ ﺑﯿﺎﻧﺎت ﻣﺤﺪدة ﻣﻦ ال Databaseﻋﻦ ﻃﺮﯾﻖ ﻣﺜﻼً ﺟﻤﻠﺔ ال SQL
ﻓﺈن اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺘﺨﺮﺟﺔ ﻣﻦ ال Data Filesﺗﺨﺰن ﻓﻲ ال Database Buffer Cacheوﺑﺬﻟﻚ ﯾﺴﮭﻞ
ﻋﻤﻠﯿﺔ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت وﺑﺴﺮﻋﺔ أﻛﺒﺮ ﻓﻲ ﺣﺎل ﺗﻢ ﻃﻠﺐ ﻧﻔﺲ اﻟﺠﻤﻠﺔ ﻣﻦ ذات اﻟﻤﺴﺘﺨﺪم أو ﻣﺴﺘﺨﺪم أﺧﺮ وﺑﺬﻟﻚ
ﯾﺨﻒ اﻟﻌﺒﺊ ﻋﻠﻰ ﻣﺎ ﯾﻌﺮف ﺑﺎﺳﻢ .Input/Output Load
وﺗﺘﻜﻮن ال Database Buffer Cacheﻣﻦ ﺛﻼﺛﺔ أﺟﺰاء ﻣﺴﺘﻘﻠﺔ ﺗﺴﻤﻰ :Sub Cache
:Defaultﯾﺨﺰن ﻓﻲ ھﺬا اﻟﻘﺴﻢ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻟﯿﺴﺖ ﻣﻦ ﺿﻤﻦ اﻷﻗﺴﺎم اﻷﺧﺮى ) .(Keep, Recycleوﯾﺘﺤﻜﻢ
ﺑﻤﺴﺎﺣﺘﮭﺎ اﻟﻌﺎﻣﻞ ".DB_CACHE_SIZE "Parameter
:Recycleﯾﺘﻢ ازاﻟﺔ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ھﺬه اﻟﻤﻨﻄﻘﺔ ﻋﻨﺪ ﻋﺪم اﻟﺤﺎﺟﺔ اﻟﯿﮭﺎ ﻣﺠﺪداً ،وﯾﺘﺤﻜﻢ ﺑﻤﺴﺎﺣﺘﮭﺎ اﻟﻌﺎﻣﻞ
".DB_RECYCLE_CACHE_SIZE "Parameter
13
رﺳﻢ 1.7
14
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :1.3
اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ ﻣﻠﻔﺎت اﻷوراﻛﻞ ﺗﻜﻮن ﻣﺨﺰﻧﺔ ﺑﺸﻜﻞ ﻛﺘﻞ وﻟﺬﻟﻚ ﯾﻄﻠﻖ ﻋﻠﯿﮭﺎ اﺳﻢ Blocksأﻣﺎ اﻟﺒﯿﺎﻧﺎت
اﻟﻤﺨﺰﻧﺔ ﻓﻲ ال Database Buffer Cacheﻓﺘﻌﺮف ﺑﺎﺳﻢ .Data Bufferوﺣﺠﻢ ال Bufferھﻮ ﻧﻔﺴﮫ
ﺣﺠﻢ Blockواﻟﻤﺤﺪد ﺑﺎﻟﻌﺎﻣﻞ ".DB_BLOCK_SIZE "Parameter
ﯾﺴﺎﻋﺪ ﻣﺪﯾﺮ اﻟﺒﯿﺎﻧﺎت ) (DBAﻋﻠﻰ ادارة ال Database Buffer Cacheوﺧﺎﺻﺔ ﻓﻲ أوﻗﺎت اﻟﺬروة ﺣﯿﺚ
ﯾﻘﻮم ﺑﺎﻇﮭﺎر اﺣﺼﺎﺋﯿﺎت وﻣﻌﻠﻮﻣﺎت ﻋﻦ ﻣﺨﺘﻠﻒ ال . Database buffer cache
ﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﻨﺘﺠﮭﺎ اﻟﻌﺎﻣﻞ " "Parameterﻣﻦ .V$DB_CACHE_ADVICE
وﻟﮫ ﺛﻼث ﺣﺎﻻت ھﻲ:
رﺑﻤﺎ ﺗﺘﺴﺎﺋﻞ ﻟﻤﺎذا اذاً ﺗﻮﺟﺪ اﻟﺤﺎﻟﺔ READYﻟﻤﺎذا ﻟﻢ ﺑﺘﻢ اﻻﻛﺘﻔﺎء ﺑﺄول ﺣﺎﻟﺘﯿﯿﻦ ﻓﻘﻂ؟
اﻟﺠﻮاب ﻋﻠﻰ ذﻟﻚ ﯾﻜﻤﻦ ﻓﻲ ان اﻧﺘﻘﺎل اﻟﻌﺎﻣﻞ " "Parameterﻣﻦ وﺿﻌﯿﺔ ال OFFاﻟﻰ ONﻗﺪ ﯾﺆدي اﻟﻰ
أﺧﻄﺎء ﻓﻲ اﻟﺬاﻛﺮة أو ﻓﺸﻞ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﯾﻞ.
15
:REDO LOG BUFFER
ﻣﻦ أھﻢ اﺳﺲ ﺣﻤﺎﯾﺔ اﻟﺒﯿﺎﻧﺎت اذ ﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﻋﻦ ﺟﻤﯿﻊ اﻟﻤﺘﻐﯿﺮات اﻟﺘﻲ ﻃﺮأت ﻋﻠﻰ ال Databaseﻣﺜﻞ
اﻟﺘﻐﯿﺮات اﻟﻨﺎﺗﺠﮫ ﻋﻦ أواﻣﺮ .INSERT,DELETE,ALTER,DROP, CREATE
اﻟﻤﺘﻐﯿﺮات اﻟﺘﻲ ﺣﺪﺛﺖ ﻓﻲ ال Databaseﺗﺴﺠﻞ ﻓﻲ ال Redo Log Bufferﺑﺎﺳﻢ .Redo Entries
ﻣﺴﺎﺣﺔ ال Redo Log Bufferﻣﺤﺪدة ﻣﻦ ﻗﺒﻞ اﻟﻌﺎﻣﻞ " .LOG_BUFFER "Parameter
16
:LARGE POOL
ھﻲ ﻣﻨﻄﻘﺔ ذاﻛﺮة اﺧﺘﯿﺎرﯾﺔ وﻟﯿﺴﺖ اﺳﺎﺳﯿﺔ )اﺟﺒﺎرﯾﺔ( ﯾﻤﻜﻦ ﻟﻞ DBAان ﯾﻘﻮم ﺑﺘﺸﻜﯿﻠﮭﺎ ﺣﯿﻦ اﻟﺤﺎﺟﺔ اﻟﯿﮭﺎ ﺣﯿﺚ
ﺗﻮﻓﺮ ذاﻛﺮة ﻛﺒﯿﺮة ﻟﻌﻤﻠﯿﺎت ﻋﺪﯾﺪة ﻣﺜﻞ .BACKUP and RESTORE
ﻣﻼﺣﻈﺎت:
-1ﻋﻠﻤﯿﺔ ال BACKUPھﻲ اﻟﻌﻤﻠﯿﺔ اﻟﺘﻲ ﯾﻘﻮم ﻓﯿﮭﺎ ال DBAﺑﺤﻔﻆ ﻧﺴﺦ " "Copiesﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻏﺎﻟﺒ ًﺎ
ﻋﻠﻰ أﻗﺮاص ﺻﻠﺒﺔ Hard diskﻟﻜﻲ ﯾﺘﻤﻜﻦ ﻣﻦ اﻟﻤﺤﺎﻓﻈﺔ ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت واﺳﺘﺮﺟﺎﻋﮭﺎ RESTOREﻋﻨﺪ
اﻟﺤﺎﺟﺔ.
-4ﯾﻤﻜﻦ ﺗﻐﯿﺮ اﻟﻤﺴﺎﺣﺔ داﯾﻨﺎﻣﯿﻜﺎً ﺑﺎﺳﺘﺨﺪام ALTER SYSTEMﻛﻤﺎ ﻋﻮ اﻟﺤﺎل ﻣﻊ ال Shared Pool
وﻏﯿﺮھﺎ.
:JAVA POOL
ھﻲ ﻣﻨﻄﻘﺔ ذاﻛﺮة اﺧﺘﯿﺎرﯾﺔ اﺧﺮى ﺗﻮﻓﺮ ذاﻛﺮة ﻟﻌﻤﻠﯿﺎت ال Javaاﻟﻤﺨﺘﻠﻔﺔ وﺗﻌﻤﻞ ﺑﻨﻔﺲ ﻓﻜﺮة ال SQLأو
PL/SQLﻓﻲ ال ،Shared Poolﻣﺴﺎﺣﺔ ال Java Poolﻣﺘﺤﻜﻤﺔ ﻣﻦ ﻗﺒﻞ اﻟﻌﺎﻣﻞ
".JAVA_POOL_SIZE "Parameter
17
CONNECTION
ﻟﻜﻲ ﺗﺴﺘﻄﯿﻊ اﻟﺪﺧﻮل اﻟﻰ ال Databaseﻟﻠﻘﯿﺎم ﺑﻌﻠﻤﯿﺎت ﻣﺨﺘﻠﻔﺔ ﻣﺜﻞ اﺳﺘﺨﺮاج ﺑﯿﺎﻧﺎت ﻋﺒﺮ ﺟﻤﻞ ال ، SQL
ﯾﺠﺐ أوﻻً ان ﯾﻜﻮن اﻟﻤﺴﺘﺨﺪم ﻣﺘﺼﻼً ﺑﺎل .Instance
ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم ﺑﺎﺳﺘﺨﺪام أﺣﺪ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﯾﻤﻜﻦ ﻋﺒﺮھﺎ اﻻﺗﺼﺎل ﺑﺎل Instanceﻣﺜﻞ SQLPLUSﻓﯿﻨﺸﺊ ﻣﺎ
ﯾﻌﺮف ﺑﺎﺳﻢ .User Processوﺑﻌﺪ ان ﯾﺘﻢ اﻟﺪﺧﻮل اﻟﻰ ال Oracle Serverوﯾﺘﻢ اﻻﺗﺼﺎل ﺑﺎل Instance
ﯾﻨﺸﺊ ﻣﺎ ﯾﻌﺮف ﺑﺎﺳﻢ .Server Processﯾﻘﻮم ال Server Processﺑﻌﻤﻠﯿﺔ اﻟﻮﺳﯿﻂ ﺑﯿﻦ اﻟﻤﺴﺘﺨﺪم User
Processوال Instanceﺣﯿﺚ ﯾﻘﻮم ﺑﺘﻨﻔﯿﺬ اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﻃﻠﺒﮭﺎ اﻟﻤﺴﺘﺨﺪم ﻣﺜﻞ ﺟﻤﻞ ال .SQL
رﺳﻢ 1.8
:Process
ﺗﻌﺮﯾﻒ ال Processﺑﺸﻜﻞ ﻋﺎم ﻓﻲ اﻷوراﻛﻞ ھﻲ اﻟﻌﻤﻠﯿﺔ أو اﻟﻮﻇﯿﻔﺔ اﻟﺘﻲ ﺗﻨﻔﺬ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺨﻄﻮات أو
ﻣﮭﻤﺎت ﻣﺤﺪدة.
ﯾﻮﺟﺪ ﺛﻼث أﻧﻮاع ﻣﻦ ال Processesﻓﻲ اﻷوراﻛﻞ ھﻢUser Process , Server Process, :
.Background Process
:Session
ال Sessionھﻮ ﺣﺎﻟﺔ اﻻﺗﺼﺎل اﻟﻤﻮﺟﻮدة ﺑﯿﻦ اﻟﻤﺴﺘﺨﺪم و ال .Oracle Serverﯾﺒﺪأ ال Sessionﻋﻨﺪ دﺧﻮل
اﻟﻤﺴﺘﺨﺪم ال Oracle Serverوﯾﻨﺘﮭﻲ ﻋﻨﺪ ﺧﺮوج اﻟﻤﺴﺘﺨﺪم ﻣﻦ ال Oracle Serverﺳﻮاء ﺑﺈرادة
اﻟﻤﺴﺘﺨﺪم )ﻋﻨﺪ اﻧﺘﮭﺎء اﻟﻤﮭﻤﺔ( أو ﻻ ارادﯾﺎً )ﻋﻨﺪ ﺣﺪوث ﻋﻄﻞ ﻣﺎ(.
ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم اﻟﻮاﺣﺪ اﯾﻦ ﯾﻜﻮٌن أﻛﺜﺮ ﻣﻦ Sessionواﺣﺪ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ اذا اﺳﺘﺨﺪم أﻛﺜﺮ ﻣﻦ ﺑﺮﻧﺎﻣﺞ ﻣﺜﻞ
SQL PLUSو ORACLE FORMSﻋﺪا ﺑﻌﺾ اﻟﺤﺎﻻت اﻟﻘﻠﯿﻠﺔ.
18
):PROCESSING A STATEMENT (DML
اذا ﻛﺎﻧﺖ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ ﻏﯿﺮ ﻣﺘﻮﻓﺮة ﻓﻲ ال Database Buffer Cacheﻓﯿﻘﻮم ال Server ·
Processﺑﺎﺣﻀﺎر اﻟﺒﯿﺎﻧﺎت ﻣﻦ .Data Files
ﯾﻘﻮم ال Server Processﺑﻮﺿﻊ ﻗﯿﻮد " "Locksﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﺘﻢ ﺗﻌﺪﯾﻠﮭﺎ ،وﯾﺘﻢ ﺗﺨﺰﯾﻦ ·
اﻟﺒﯿﺎﻧﺎت اﻟﺴﺎﺑﻘﺔ )ﻗﺒﻞ اﻟﺘﻌﺪﯾﻞ( ﻓﻲ ﻣﻨﻄﻘﺔ ﺗﺴﻤﻰ ROLLBACK (SEGMENT) BLOCK
ﺣﺘﻰ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم ﺑﺎﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت اﻷﺻﻠﯿﺔ ﻏﯿﺮ اﻟﻤﻌﺪﻟﺔ اذا ﺗﻢ اﺧﺘﯿﺎر Rollbackﻋﻮﺿﺎً
ﻋﻦ .Commit
اذا ﺗﻢ اﺧﺘﯿﺎر Commitﻓﺈن اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﺪﻟﺔ ﯾﺘﻢ ﻧﻘﻠﮭﺎ اﻟﻰ . Data Files ·
19
)PROGRAM GLOBAL AREA (PGA
ھﻲ ﻣﻨﻄﻘﺔ ذاﻛﺮة ﻏﯿﺮ ﻣﺸﺘﺮﻛﺔ و ﺧﺎﺻﺔ ﻟﻌﻤﻠﯿﺔ واﺣﺪة ﻓﻘﻂ " ." Processﺗﺨﺼﺺ ذاﻛﺮة ال PGAﻟﻜﻞ
ﻋﻤﻠﯿﺔ " " Processﻋﻨﺪ ﺑﺪاﯾﺔ اﻟﻌﻤﻠﯿﺔ " " Processو ﺗﺰال ذاﻛﺮة ال PGAﻋﻨﺪ ﻧﮭﺎﯾﺔ اﻟﻌﻤﻠﯿﺔ
" . "Processوﺗﺤﺘﻮي ذاﻛﺮة ال PGAﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺨﺎﺻﺔ ﻟﺘﻠﻚ اﻟﻌﻤﻠﯿﺔ " ،"Processﻣﻜﻮﻧﺎت ال PGA
ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺗﻌﺮﯾﻒ ال Serverﺣﯿﺚ ﯾﻮﺟﺪ ﺗﻌﺮﯾﻔﺎن ھﻤﺎ Dedicatedو.Shared
ﻓﻲ ﻧﻈﺎم ال Dedicated Serverﯾﺘﻜﻮن Server Processواﺣﺪ ﺧﺎص ﻟﻄﻠﺒﺎت User Processواﺣﺪ
)ﻣﺴﺘﺨﺪم واﺣﺪ( ،أﻣﺎ ﻓﻲ ال Shared Serverﻓﯿﺘﻢ اﻟﻤﺸﺎرﻛﺔ ﻓﻲ ال Server Processﻣﻦ ﻗﺒﻞ أﻛﺜﺮ ﻣﻦ
) User Processﯾﻤﻜﻦ ان ﯾﻜﻮن ھﻨﺎك أﻛﺜﺮ ﻣﻦ Server Processesو ﻟﯿﺲ ﺑﺎﻟﻀﺮورة واﺣﺪ ﻓﻘﻂ أي ﻣﺜﻼً
ﯾﻤﻜﻦ ان ﯾﻮﺟﺪ ﺧﻤﺴﺔ Server Processesﯾﺘﺸﺎرك ﺑﮭﻢ ﺧﻤﺴﯿﻦ ﻣﺴﺘﺨﺪم (User Processes
:SORT AREAﺣﯿﺚ ﺗﺨﺼﺺ ﻷي ﻃﻠﺐ ﻣﻦ ﻗﺒﻞ ال Processﯾﺤﺘﻮي ﻋﻠﻰ اﻷواﻣﺮ اﻟﺘﺎﻟﯿﺔ: ·
Distinct , Order By, Group By,أو ال Set Operatorsﻣﺜﻞ Union, Minus,
.Intersect
20
BACKGROUND PROCESSES
.Instance ﻣﺘﻮﻓﺮة وﺟﺎھﺰة ﻟﻠﻌﻤﻞ ﺑﻌﺪ ﺗﺸﻐﯿﻞ الBackground Processes ﺗﻜﻮن ال
Background وﯾﻮﺟﺪ ﻧﻮﻋﯿﯿﻦ ﻣﻦ، ﻣﺴﺆول ﻋﻦ ﻣﮭﻤﺎت ﺧﺎﺻﺔBackground Process ﻛﻞ
.( ھﻤﺎ أﺧﺘﯿﺎري و إﻟﺰاﻣﻲ ) أو إﺟﺒﺎريProcesses
:أﻣﺜﻠﺔ
21
):DATABASE WRITER (DBWn
ﯾﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﻐﯿﺮة " "Dirty Buffersﻣﻦ ال Database Buffer Cacheاﻟﻰ ال Data
Filesﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺮﺳﻢ ،1.9وﺑﺬﻟﻚ ﯾﺘﻢ ﺗﻔﺮﻏﺔ Buffersﺑﺎﺳﺘﻤﺮار ﻣﻦ أﺟﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﻐﯿﺮة اﻟﻼﺣﻘﺔ.
اﻟﺮﺳﻢ 1.9
22
):LOG WRITER (LGWR
ﯾﻘﻮم ﺑﻨﻘﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ ال Log Buffer Cacheاﻟﻰ ال Redo Log Filesﺑﺸﻜﻞ دوري ﻣﻤﺎ
ﯾﺴﺎﻋﺪ ﻋﻠﻰ اﺧﻼء ذاﻛﺮة ﻟﻞ Redo Entriesاﻟﺠﺪﯾﺪة ،ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺮﺳﻢ .1.10
اﻟﺮﺳﻢ 1.10
23
):SYSTEM MONITOR (SMON
ﻓﻲ ﺣﺎﻟﺔ ﺣﺪوث اي ﻋﻄﻞ ﻣﻔﺎﺟﺊ ﻟﻞ Instanceﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ال ) Instanceﻣﺜﻞ ﺑﯿﺎﻧﺎت ال
(Database Buffer Cacheاﻟﺘﻲ ﻟﻢ ﯾﺘﻢ ﻧﻘﻠﮭﺎ اﻟﻰ ال Data Filesﻋﻠﻰ اﻟﻘﺮص اﻟﺼﻠﺐ ﺗﻀﯿﻊ أو ﺗﻤﺴﺢ.
ﺑﻌﺪ ھﺬه اﻟﺤﺎﻟﺔ ﻣﻦ ﺿﯿﺎع ﺑﯿﺎﻧﺎت ال Instanceﯾﻌﻤﻞ ال SMONﺑﺸﻜﻞ اﺗﻮﻣﺎﺗﯿﻜﻲ ﻻﺳﺘﺮﺟﺎع ﺑﯿﺎﻧﺎت ال
Instanceو ﺗﺴﻤﻰ اﻟﻌﻤﻠﯿﺔ ب .Instance Recovery
اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﻐﯿﺮة اﻟﺘﻲ ﺗﻢ ﺗﺴﺠﯿﻞ ﻣﺎ ﻃﺮأ ﻋﻠﯿﮭﺎ ﻣﻦ ﺗﻐﯿﺮ ﻓﻲ ال Redo Log Filesوﻟﻜﻦ ﻟﻢ ·
ﯾﺘﻢ ﺗﺴﺠﯿﻠﮭﺎ ﻓﻲ ال .Data Filesﺣﯿﺚ ﯾﻘﻮم ال SMONﺑﻘﺮاءة ال Redo Log Filesو ﻣﻌﺮﻓﺔ
اﻟﺘﻐﯿﺮات اﻟﺘﻲ ﻃﺮأت ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت و ﺗﻐﯿﯿﺮ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ال .Data Files
اﻋﺎدة ﺗﺠﮭﯿﺰ ال Databaseﻟﯿﺘﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟﺪﺧﻮل ﻣﺠﺪداً . ·
اﻟﻐﺎء ﺟﻤﯿﻊ ال Transactionsاﻟﺘﻲ ﻟﻢ ﯾﺤﺪث ﻟﮭﺎ Commitوازاﻟﺔ اﻟﻘﯿﻮد ﻋﻦ اﻟﺒﯿﺎﻧﺎت " Data ·
. "Lock
ﺗﺤﺮﯾﺮ ال Temporary Segmentsواﺳﺘﻌﺎدة ﻣﺴﺎﺣﺘﮭﺎ اﻟﻰ ال .Data Files ·
ﺟﻤﻊ اﻟﻤﺴﺎﺣﺎت اﻟﺨﺎﻟﯿﺔ اﻟﺼﻐﯿﺮة اﻟﻀﺎﺋﻌﺔ اﻟﺘﻲ ﺗﻨﺸﺊ ﺑﯿﻦ اﻟﺒﯿﺎﻧﺎت ﻧﺘﯿﺠﺔ ﻟﻠﺘﻐﯿﺮات اﻟﺘﻲ ﺗﺤﺪث و ·
ﺗﻌﯿﺪھﺎ اﻟﻰ اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﻟﯿﺔ اﻟﺮﺋﯿﺴﯿﺔ.
ﻓﻲ ﺣﺎﻟﺔ ﺣﺪوث أي ﻋﻄﻞ ﻟﻞ Processesﻗﺪ ﯾﺆدي اﻟﻰ ﻣﺸﺎﻛﻞ داﺧﻠﯿﺔ ﻓﻲ ال Databaseﻓﯿﻘﻮم ال PMON
ﺑﺘﻨﻈﯿﻒ أﺧﻄﺎء ال .Processes
24
) :CHECKPOINT (CKPT
ال Checkpointھﻲ ﻋﻤﻠﯿﺔ ﻛﺘﺎﺑﺔ ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﻐﯿﺮة ﻓﻲ Database Buffer Cacheاﻟﻰ ال Data
Filesﻋﺒﺮ ال .DBWnﻣﻦ ﻓﻮاﺋﺪ ال Checkpointان اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺘﻐﯿﺮ ﺑﺎﺳﺘﻤﺮار ﺗﻨﻘﻞ ﺑﺸﻜﻞ ﻧﻈﺎﻣﻲ و
دوري اﻟﻰ ال Data Filesوﺑﺬﻟﻚ ﯾﺘﻢ ﺣﻔﻆ اﻟﺒﯿﺎﻧﺎت ﺑﺸﻜﻞ أﻣﻦ.
ال Checkpoint Processﯾﻘﻮم ﺑﺘﺠﺪﯾﺪ " "Updateال Data Files Headerو ال .Control Files
ﺳﻮف ﯾﺘﻢ اﻟﺘﻄﺮق ﻻﺣﻘﺎ ًﻓﻲ اﻟﻔﺼﻮل اﻟﺘﺎﻟﯿﺔ ﻟﻞ Data Files Headerو ال Log Sequenceوال SCN
واﺳﻤﺎء ال .Archived Log
):ARCHIVER (ARCn
ھﻮ Processاﺧﺘﯿﺎري و ﻟﯿﺲ اﺟﺒﺎري ووﻇﯿﻔﺘﮫ ﺗﻜﻤﻦ ﻓﻲ ﻧﻘﻞ ﺑﯿﺎﻧﺎت ال Redo Log Filesاﻟﻰ Archived
.Log Filesﺑﺎﻋﺘﺒﺎره اﺧﺘﯿﺎري ﻓﻠﮫ ﺣﺎﻟﺘﯿﯿﻦ إﻣﺎ ﯾﻌﻤﻞ أو ﻣﻐﻠﻖ .و ﻟﻮﺿﻌﮫ ﻓﻲ وﺿﯿﻌﺔ اﻟﻌﻤﻞ ﯾﺠﺐ أن ﯾﻜﻮن ال
Databaseﻓﻲ وﺿﻌﯿﺔ ال ،ARCHIVELOGوﻓﻲ ﺣﺎل ﺗﻢ وﺿﻊ ال Databaseﺗﺤﺖ ھﺬه اﻟﻮﺿﻌﯿﺔ ﻓﺈن
ARCnﯾﻌﻤﻞ.
اذاً ھﻨﺎك ﺣﺎﻟﺘﯿﯿﻦ ﻟﻮﺿﻌﯿﺔ ال Databaseﺗﺤﺪدان ﻋﻤﻞ أو اﯾﻘﺎف ال ARCnھﻤﺎ:
:Archivelog
ﻋﻨﺪ اﻣﺘﻼء اﻟﻤﻠﻒ اﻷول ﻣﻦ ﻣﻠﻔﺎت ال Redo Log Filesﯾﺘﻢ اﻟﺒﺪأ ﻓﻲ ﻛﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻟﻤﻠﻒ اﻟﺜﺎﻧﻲ وﺗﺴﻤﻰ
ھﺬه اﻟﻌﻤﻠﯿﺔ ، Log Switchﺛﻢ ﯾﻘﻮم ال ARCnﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ ﺑﻨﻘﻞ ﺑﯿﺎﻧﺎت اﻟﻤﻠﻒ اﻷول اﻟﻰ ال
.Archived Log Files
رﺳﻢ 1.11
: NoArchivelog
ﻋﻨﺪ اﻣﺘﻼء ﺟﻤﯿﻊ ﻣﻠﻔﺎت ال Redo Log Filesﯾﺘﻢ اﻋﺎدة ﻛﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت " "Overwriteﻓﻲ اﻟﻤﻠﻒ اﻷول
ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺴﺎﺑﻘﺔ ،وﻟﻜﻦ ﻻ ﯾﺘﻢ ﻛﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت ﻓﻮق اﻟﺒﯿﺎﻧﺎت اﻟﺴﺎﺑﻘﺔ ﻗﺒﻞ ان ﯾﺤﺪث Checkpointﻟﻠﻤﻠﻒ
أو ﻣﺠﻤﻮﻋﺔ اﻟﻤﻠﻔﺎت اﻟﻤﻤﺘﻠﺌﺔ.
ﺳﻮف ﯾﺘﻢ اﻟﺘﻄﺮق ﻻﺣﻘﺎً ﻟﻜﯿﻔﯿﺔ وﺿﻊ ال Databaseﺗﺤﺖ ﺣﺎﻟﺔ ال Archivelogأو ﺣﺎل .Noarchivelog
25
26
DATABASE ADMINISTRATION TOOLS
: " ﻓﻲ اﻻوراﻛﻞ أھﻤﮭﺎTools" ﯾﺘﻮﻓﺮ ﻋﺪد ﻣﻦ اﻷدوات
SQL PLUS ·
" ﺗﺴﺘﻄﯿﻊ ﺑﺪأ الWindows" ﻓﻲ ﻧﻈﺎم اﻟﻮﯾﻨﺪوز." اﻻوراﻛﻞInstall" ﻟﺘﻨﺼﯿﺐOUI ﯾﻤﻜﻦ اﺳﺘﺨﺪام ال
.runInstaller ﻓﯿﺠﺐ ﻛﺘﺎﺑﺔUnix أﻣﺎ ﻓﻲ ﻧﻈﺎم ال، Setup.exe ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻠﻒ اﻟﺘﻨﺼﯿﺐ الOUI
2.1 اﻟﺮﺳﻢ
27
ﻣﻦ أھﻢ ﻣﻤﯿﺰات ال :OUI
ﯾﻤﻜﻦ ﺗﻨﺼﯿﺐ اﻷوراﻛﻞ اﻛﺜﺮ ﻣﻦ ﻣﺮة ﻋﻠﻰ ذات ﻣﻮﻗﻊ اﻟﺘﺨﺰﯾﻦ ﻣﺜﻞ ال Hard Diskﺑﺎﺳﺘﺨﺪام اﺳﻢ ·
ﻣﺨﻠﺘﻒ ﻟﻞ ORACLE HOMEاﻟﻤﻮﺿﺢ ﻓﻲ رﺳﻢ ) 2.1أﺳﻔﻞ ﻛﻠﻤﺔ (Destinationو ﯾﻤﻜﻦ
ﺗﻨﺼﯿﺐ ﻧﺴﺨﺔ ﻗﺪﯾﻤﺔ " "Old Versionﻟﻼوراﻛﻞ ﻣﻊ ﻧﺴﺨﺔ ﺟﺪﯾﺪة " "New Versionﻓﻲ ذات
اﻟﻤﻮﻗﻊ.
ﯾﻤﻜﻦ ﺗﻨﺼﯿﺐ اﻷوراﻛﻞ ﻣﻦ اﻹ ﻧﺘﺮﻧﺖ ﻋﺒﺮ وﺻﻠﺔ ال HTTPﺣﯿﺚ ﺗﻮاﺟﺪ ﻧﺴﺨﺔ اﻷوراﻛﻞ ،وﺑﺬﻟﻚ ﯾﻤﻜﻦ ·
ﺗﻨﺼﯿﺐ اﻷوراﻛﻞ ﻣﻦ ﻗﺒﻞ ﻓﺮع ﺷﺮﻛﺔ ﻓﻲ دوﻟﺔ ﻏﯿﺮ اﻟﺪوﻟﺔ اﻟﺘﻲ ﯾﻮﺟﺪ ﺑﮭﺎ ﻣﻘﺮھﺎ اﻷﺻﻠﻲ ) ﺣﯿﺚ ﺗﺘﻮاﺟﺪ
ﻧﺴﺨﺔ اﻷوراﻛﻞ(.
ﯾﻌﻤﻞ ﺑﻌﺪد ﻣﺨﺘﻠﻒ ﻣﻦ اﻟﻠﻐﺎت ﻣﺜﻞ اﻻﻧﺠﻠﯿﺰي و اﻟﻔﺮﻧﺴﻲ و اﻷﻟﻤﺎﻧﻲ و ﻏﯿﺮھﺎ. ·
ﯾﻤﻜﻦ ان ﯾﻌﻤﻞ ﺗﺤﺖ اﻷﻧﻈﻤﺔ اﻟﺘﻲ ﻻ ﺗﻮﻓﺮ ﻧﻈﺎم ال GUIواﻟﺘﻲ ﺗﻜﻮن ﻓﯿﮭﺎ اﻷواﻣﺮ ﺑﺸﻜﻞ ﻛﺘﺎﺑﻲ ·
Commandوﻟﯿﺲ ﻛﻤﺎ ﻓﻲ ال Windowsاﻟﺬي ﯾﻌﻤﻞ ﺗﺤﺖ ﻧﻈﺎم ال GUIﻣﺜﻞ اﻟﺮﺳﻢ .2.1
وﺗﺴﻤﻰ اﻟﻄﺮﯾﻘﺔ ﺑﺎﺳﻢ اﻟﻄﺮﯾﻘﺔ اﻟﺼﺎﻣﺘﺔ " "Silent Modeوﯾﺘﻢ اﺳﺘﻌﻤﺎل ﻣﻠﻒ ﯾﺴﻤﻰ Response
.File
:Response File
ھﻮ ﻣﻠﻒ ) (any name.txtﯾﺤﻔﻆ اﻟﺒﯿﺎﻧﺎت اﻟﻼزﻣﺔ ﻟﻌﻤﻠﯿﺔ اﻟﺘﻨﺼﯿﺐ ﻣﺜﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ ﻓﻲ اﻟﺮﺳﻢ 2.1
) ﻣﺜﻞ ﺑﯿﺎﻧﺎت ال Sourceو ال .(Destination
28
رﺳﻢ 2.2
:SQL PLUS
ھﻲ اداة ﺗﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟﺘﻔﺎﻋﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت ،ﺣﯿﺚ ﺗﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟﺪﺧﻮل اﻟﻰ اﻟﺒﯿﺎﻧﺎت ،اﺳﺘﺨﺮاج
ﺑﯿﺎﻧﺎت ،اﺿﺎﻓﺔ ﺑﯿﺎﻧﺎت ،ﺗﻌﺪﯾﻞ ﺑﯿﺎﻧﺎت ،واﻏﻼق اﻟﺒﯿﺎﻧﺎت " ."Databaseﻣﻦ اﻟﻤﻔﺮوض أن ﺗﻜﻮن ﻗﺪ ﻋﻤﻠﺖ ﻣﻊ
ال SQL PLUSﺧﻼل دراﺳﺘﻚ ﻟﻞ SQLوﺗﻌﺮﻓﺖ ﻋﻠﯿﮫ ﺟﯿﺪاً.
رﺳﻢ 2.3
29
):ORACLE ENTERPRISE MANAGER (OEM
ھﻮ ﻧﻈﺎم أداري ﯾﻌﻤﻞ ﻋﻠﻰ اﻟﺘﺤﻜﻢ ﺑﻤﻜﻮﻧﺎت اﻷوراﻛﻞ وادارة اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺧﻼل ﻧﻈﺎم ال )GUIاي ﯾﺘﻢ اﻟﻘﯿﺎم
ﺑﻤﻌﻈﻢ اﻷواﻣﺮ ﻣﻦ ﺧﻼل اﺳﺘﻌﻤﺎل اﻟﻔﺄرة ".("Mouse
CONSOLE ·
ORACLE MANAGEMENT SERVER ·
MANAGED NODES ·
رﺳﻢ 2.4
:Console
أداة " "GUI Toolﻣﻦ اﻷدوات اﻟﮭﺎﻣﺔ ﺣﯿﺚ ﺗﻌﻤﻞ ﻛﻤﺤﻄﺔ ﻹدارة ﺟﻤﯿﻊ اﻟﻤﮭﻤﺎت ﻓﻲ أوراﻛﻞ .ﻣﻦ ھﻨﺎ ﯾﻤﻜﻦ
اﻟﺘﺤﻜﻢ ﺑﺎل Instanceوﯾﻤﻜﻦ اﻟﺘﺤﻜﻢ ﺑﺎل Tablesو ﻏﯿﺮھﺎ و ﺗﻨﻔﯿﺬ اﻟﻤﮭﻤﺎت ﻋﻦ ﻃﺮﯾﻖ اﻟﻔﺄرة ""Mouse
واﻹﺧﺘﯿﺎرات اﻟﻤﺘﻌﺪدة ﻋﻮﺿﺎً ﻋﻦ ﺗﻨﻔﯿﺬ اﻟﻤﮭﻤﺎت ﺑﻮاﺳﻄﺔ ﺟﻤﻞ ال .SQL
30
رﺳﻢ 2.5
ﻣﻦ اﻟﻤﻼﺣﻆ ﻣﻦ اﻟﺮﺳﻢ 2.4أن ال Consoleﯾﺴﺘﻄﯿﻊ اﻟﺪﺧﻮل اﻟﻰ Oracle Serverﺑﻄﺮﯾﻘﺘﯿﯿﻦ ھﻤﺎ:
:Standaloneﺑﻄﺮﯾﻘﺔ ﻣﺒﺎﺷﺮة دون اﻟﺤﺎﺟﺔ اﻟﻰ ) .Oracle Management Serverﺳﮭﻢ رﻗﻢ (2
ﻋﺒﺮ ال :OMSﻋﺒﺮ ال ) .Oracle Management Serverأﺳﮭﻢ رﻗﻢ (1
:DBA Tools
أھﻢ ﻣﻜﻮﻧﺎت ال Oracle Enterprise Managerﯾﻘﻮم ﺑﺪور اﻟﻮﺳﯿﻂ ﺑﯿﻦ ال Consoleو ال Managed
Nodesﻓﻲ ﺗﺒﺎدل اﻟﺒﯿﺎﻧﺎت ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ ادارة User Accountsوﻋﻤﻠﯿﺎت ﻣﺨﺘﻠﻔﺔ ﻣﺜﻞ .Jobs, Events
ﯾﻘﻮم ﺑﺎﺳﺘﻌﻤﺎل ال Repositoryﻟﺘﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت اﻟﻨﻈﺎم " "System Dataوﺑﯿﺎﻧﺎت اﻟﺒﺮاﻣﺞ واﻷدوات و
ﺑﯿﺎﻧﺎت ال .Managed Nodes
31
:Managed Nodes
ﺣﯿﺚ ان ال Fileھﻮ اﺳﻢ اﻟﻤﻠﻒ وﻣﻮﻗﻌﮫ ﻋﻠﻰ اﻟﺠﮭﺎز ،وال Passwordھﻲ ﻛﻠﻤﺔ اﻟﺴﺮ اﻟﺨﺎﺻﺔ ب
SYSDBAو ،SYSOPERوال Entriesﺗﻤﺜﻞ اﻟﻌﺪد اﻷﻗﺼﻰ ﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ اﻟﺬﯾﻦ ﯾﺤﻖ ﻟﮭﻢ اﻟﺪﺧﻮل
اﻟﻰ ال Databaseﻓﻲ ھﯿﺌﺔ SYSDBAاو .SYSOPER
ﻋﻨﺪﻣﺎ ﺗﻘﻮم ﺑﺎﻟﺪﺧﻮل ﻛﻤﺴﺘﺨﺪم ال SYSDBAﻓﺎﻧﻚ ﺗﺪﺧﻞ اﻟﻰ SYS Schemaوﻟﯿﺲ ال Schemaاﻟﺨﺎص
ﺑﻚ وﻛﺬﻟﻚ ﻋﻨﺪ اﻟﺪﺧﻮل ﻛﻤﺴﺘﺨﺪم ال SYSOPERﻓﺎﻧﻚ ﺗﺪﺧﻞ اﻟﻰ .PUBLIC Schema
32
AUTHENTICATION METHODS
ﻋﻨﺪ ﺑﺪاﯾﺔUser Accounts " ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﻜﻮﯾﻦ اﺛﻨﯿﻦDatabase" ﻟﻠﻘﯿﺎم ﺑﺎﻟﻤﮭﻤﺎت اﻹدارﯾﺔ ﻟﻠﺒﯿﺎﻧﺎت
ﻓﻲPrivileges اﻟﺬﯾﻦ ﯾﻤﻠﻜﺎن ﺟﻤﯿﻊ الSYSTEM و الSYS " ھﻤﺎDatabase" ﺗﻜﻮﯾﻦ اﻟﺒﯿﺎﻧﺎت
.DBA Role اﻷوراﻛﻞ أو ﻣﺎ ﯾﺴﻤﻰ ال
اﻣﺎ ﻛﻠﻤﺔ اﻟﺴﺮ ﻟﻞchange_on_install ﻋﻨﺪ ﺑﺪاﯾﺔ ﺗﻜﻮﯾﻦ اﻟﺒﯿﺎﻧﺎت ھﻲSYS ﻛﻠﻤﺔ اﻟﺴﺮ ﻟﻞ:ﻣﻼﺣﻈﺔ
.manager ھﻲSYSTEM
Database اﻟﺪﺧﻮل اﻟﻰ الDBA Role ھﻨﺎك ﻃﺮﯾﻘﺘﺘﯿﻦ ﯾﻤﻜﻦ اﻟﺴﻤﺎح ﻓﯿﮭﺎ ﻟﻠﻤﺴﺘﺨﺪﻣﯿﻦ اﻟﺬﯾﻦ ﯾﻤﻠﻜﻮن ال
.Operating System Authentication وPassword File Authentication :وادارة اﻟﺒﯿﺎﻧﺎت ھﻤﺎ
وﻟﺘﺸﻐﯿﻞ ھﺬا اﻟﻨﻈﺎم ﯾﺠﺐ، واﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻓﻲ ھﺬا اﻟﻨﻈﺎمPassword File Utility ﻟﻘﺪ ﺗﻄﺮﻗﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ ﻟﻞ
:اﺗﺒﺎع اﻟﺨﻄﻮات اﻟﺘﺎﻟﯿﺔ
:2 اﻟﺨﻄﻮة
SHOW PARAMETER REMOTE_LOGIN_PASSWORDFILE;
.Initialization Parameter File ﻓﯿﺠﺐ ﺗﻐﯿﯿﺮ اﻟﺤﺎﻟﺔ ﻓﻲ الEXCLUSIVE اذا ﻛﺎﻧﺖ اﻟﺤﺎﻟﺔ ﻏﯿﺮ
:3 اﻟﺨﻄﻮة
GRANT SYSDBA TO Ahmad;
33
:OPERATING SYSTEM AUTHENTICATION
ﺑﻤﺠﺮد اﻟﺪﺧﻮل اﻟﻰ ال ) Operating Systemﻣﺜﺎل :اﻟﻮﯾﻨﺪوز( ﺗﺴﺘﻄﯿﻊ اﻟﺪﺧﻮل اﻟﻰ ال Databaseدون
اﻟﺤﺎﺟﺔ اﻟﻰ ﻛﻠﻤﺔ ﺳﺮ أو اﺳﻢ ﻣﺴﺘﺨﺪم.
;CONNECT / AS SYSDBA
ﺣﺎﻻت ال :Remote_Login_Passwordfile
34
OPTIMAL FLEXIBLE ARCHITECTURE
ﯾﻌﺘﺒﺮ ال OFAﻧﻈﺎم ﻟﺘﺮﺗﯿﺐ و ﺗﻮزﯾﻊ ﻣﻠﻔﺎت ال Databaseاﻟﻤﺨﺘﻠﻔﺔ ﻋﻠﻰ ﺣﺴﺐ ﻧﻮﻋﮭﺎ أو اﺳﺘﺨﺪاﻣﮭﺎ ،وھﻮ
ﻣﻌﺘﻤﺪ ﻓﻲ ﺟﻤﯿﻊ اﻷﻧﻈﻤﺔ اﻟﺘﻲ ﯾﻌﻤﻞ ﺑﮭﺎ اﻷوراﻛﻞ ﻣﺜﻞ .Windows, UNIX
ﺑﺎﺳﺘﺨﺪام ﻧﻈﺎم ال OFAﯾﻤﻜﻦ ان ﻧﺤﻘﻖ ﻋﺪة ﻓﻮاﺋﺪ ﻣﻨﮭﺎ ﺳﮭﻮﻟﺔ اﻟﺘﻤﯿﯿﺰ ﺑﯿﻦ اﻟﻤﻠﻔﺎت اﻟﻤﺨﺘﻠﻔﺔ وﺳﮭﻮﻟﺔ اﯾﺠﺎدھﺎ
وﺳﮭﻮﻟﺔ ادارة اﻷوراﻛﻞ ﺑﺘﻮزﯾﻊ اﻟﻤﻠﻔﺎت ﻛﻞٌ ﺣﺴﺐ ﻧﻮﻋﮫ ،وﺗﺴﮭﯿﻞ اﻟﺘﺤﻜﻢ ﻓﻲ اﻟﺘﻮﺳﻊ اﻟﺬي ﯾﻄﺮأ ﻋﻠﻰ ال
Databaseﻓﻲ اﻟﻤﺴﺘﻘﺒﻞ.
اﻋﺘﻤﺎد اﺳﻠﻮب ﺛﺎﺑﺖ ﻟﺘﺴﻤﯿﺔ اﻟﻤﻠﻔﺎت ﻟﻜﻲ ﻧﺴﺘﻄﯿﻊ اﯾﺠﺎد اﻟﻤﻠﻔﺎت ﺑﺴﮭﻮﻟﺔ. ·
ﺗﻔﺮﯾﻖ ﻣﻠﻔﺎت ال Data filesﻋﻦ ﻣﻠﻔﺎت ال Control Filesﻋﻦ ﻣﻠﻔﺎت ال .Redo Log Files ·
رﺳﻢ 2.6
ﻛﻤﺎ ﺗﻼﺣﻆ ﺗﻮزﯾﻊ ﻣﻠﻔﺎت ال Databaseاﻟﻤﺨﺘﻠﻔﺔ اﻟﻰ ﻣﺠﻠﺪات ﻣﺨﺘﻠﻔﺔ .ﻓﻤﺜﻼً ﺗﺠﺪ ﻣﻠﻒ ال Password File
ﺗﺤﺖ ﻣﺠﻠﺪ ال dbsﺑﺎﻟﻤﻘﺎﺑﻞ ﺗﺠﺪ ﻣﻠﻔﺎت ال Control Filesﺗﺤﺖ ﻣﺠﻠﺪ oradataوھﻜﺬا...
35
INITIALIZATION PARAMETER FILE
:PFILEﯾﻄﻠﻖ ﻋﻠﯿﮫ اﺳﻢ اﻟﻤﻠﻒ اﻟﺜﺎﺑﺖ " "Static Fileوﯾﻌﺮف ﺑﺎﺳﻢ initSID.ora ·
:SPFILEﯾﻄﻠﻖ ﻋﻠﯿﮫ اﺳﻢ اﻟﻤﻠﻒ اﻟﻤﻘﺎوم " "Persistent Fileوﯾﻌﺮف ﺑﺎﺳﻢ spfileSID.ora ·
ﻣﻼﺣﻈﺔ :ال SIDﻋﺒﺎرة ﻋﻦ رﻣﺰ ﻹﺳﻢ ال .Instanceﻓﺎذا ﻛﺎن اﺳﻢ ال "DbB" Instanceﻓﯿﻜﻮن اﺳﻢ
اﻟﻤﻠﻒ ).(initDbB.ora
رﺳﻢ 2.7
:PFILE
ھﻮ ﻣﻠﻒ ﻣﻦ ﻧﻮﻋﯿﺔ ال TXTاﻟﺬي ﯾﻤﻜﻦ ﻓﺘﺤﮫ وﺗﻐﯿﯿﺮه ﺑﻮاﺳﻄﺔ ال Notepadوﻏﯿﺮھﺎ ﻣﻦ ﺑﺮاﻣﺞ اﻟﻜﺘﺎﺑﺔ.
ﯾﺘﻢ ﻗﺮاءة ﻣﺤﺘﻮﯾﺎﺗﮫ ﻋﻨﺪ ﺑﺪاﯾﺔ ﺗﺸﻐﯿﻞ ال Instanceوﻣﻌﻈﻢ اﻟﻌﻮاﻣﻞ " "Parametersاﻟﻤﻮﺟﻮدة داﺧﻠﮫ ﻻ
ﺗﻌﻤﻞ ﺑﺸﻜﻞ داﯾﻨﺎﻣﯿﻜﻲ ) ﯾﺴﺘﻠﺰم اﻏﻼق وﻓﺘﺢ ال Instanceﻣﻦ ﺟﺪﯾﺪ ﻟﻜﻲ ﯾﺤﺪث اﻟﺘﻐﯿﯿﺮ( ﻋﺪا ﺑﻌﺾ اﻟﻌﻮاﻣﻞ
" "Parametersاﻟﺘﻲ ﯾﻤﻜﻦ ﺗﻌﺪل داﯾﻨﺎﻣﯿﻜﯿﺎً ﻓﻲ اﻟﺬاﻛﺮة وﻟﻜﻦ ﺗﻈﻞ ﻓﻲ ال PFILEﻛﻤﺎ ھﻲ )أي اﻧﮫ ﻋﻨﺪ
ﺗﺸﻐﯿﻞ ال Instanceﻣﺮة أﺧﺮى ﯾﺮﺟﻊ اﻟﻮﺿﻊ اﻟﻰ ﻗﺒﻞ اﻟﺘﻌﺪﯾﻞ اﻟﺪاﯾﻨﺎﻣﯿﻜﻲ(.
ﯾﻮﻓﺮ ال OUIﻣﻠﻒ ﻣﺒﺪﺋﻲ ﻋﻨﺪ ﺑﺪاﯾﺔ ﺗﻜﻮﯾﻦ ال Databaseاﺳﻤﮫ init.oraﯾﻤﻜﻦ اﺳﺘﻌﻤﺎﻟﮫ ﻟﺘﻜﻮﯾﻦ ال
.PFILE
36
:PFILE ﺑﻌﺾ ﻣﻜﻮﻧﺎت ال
db_block_size=4096
db_cache_size=33554432
open_cursors=300
background_dump_dest=C:\oracle2\ora92\admin\dbname\bdump
core_dump_dest=C:\oracle2\ora92\admin\dbname\cdump
timed_statistics=TRUE
user_dump_dest=C:\oracle2\ora92\admin\dbname\udump
db_domain=oracle
remote_login_passwordfile=EXCLUSIVE
control_files=("C:\oracle2\ora92\oradata\dbname\CONTROL01.CTL",
"C:\oracle2\ora92\oradata\dbname\CONTROL02.CTL",
"C:\oracle2\ora92\oradata\dbname\CONTROL03.CTL")
compatible=9.0.0
db_name=dbname
instance_name=dbname
java_pool_size=33554432
large_pool_size=1048576
shared_pool_size=33554432
processes=150
fast_start_mttr_target=300
sort_area_size=524288
undo_management=AUTO
undo_tablespace=UNDOTBS
" اﻟﻮاﺣﺪ ﻓﯿﺠﺐ وﺿﻊ اﻟﻘﯿﻢ داﺧﻞ ﻗﻮﺳﯿﻦ وParameter" اذا ﻛﺎن ھﻨﺎك أﻛﺜﺮ ﻣﻦ ﻗﯿﻤﺔ ﻟﻠﻌﺎﻣﻞ ·
.Control_Files ﺗﻔﺮﯾﻘﮭﻢ ﺑﻔﺎﺻﻠﺔ ﻛﻤﺎ ﻓﻲ
وﻻ ﯾﻘﺮأھﺎDBA ( ﻓﻲ اﻟﻤﻠﻒ ﻟﻮﺿﻊ ﻣﻼﺣﻈﺎت داﺧﻞ اﻟﻤﻠﻒ )ھﺬه اﻟﺒﯿﺎﻧﺎت ﻟﻞ#) ﯾﻤﻜﻦ اﺳﺘﻌﻤﺎل ·
.(اﻷوراﻛﻞ
37
:SPFILE
ھﻮ ﻣﻠﻒ ﻣﻦ ﻧﻮﻋﯿﺔ ال binaryاﻟﺬي ﯾﻘﻮم ﺑﺎدارﺗﮫ ال )Oracle Serverﻓﺘﺤﮫ و ﺗﻌﺪﯾﻠﮫ( وﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ ﺟﻤﯿﻊ
ﻗﯿﻢ اﻟﻌﻮاﻣﻞ " "Parametersاﻟﻤﻮﺟﻮدة داﺧﻠﮫ ﺑﺸﻜﻞ داﯾﻨﺎﻣﯿﻜﻲ )اي ﺑﺎﺳﺘﺨﺪام ال (ALTER SYSTEM
ﺑﺤﯿﺚ ﯾﺘﻢ ﺗﻌﺪﯾﻞ ﺑﯿﺎﻧﺎت ال SPFILEﻓﻲ اﻟﺬاﻛﺮة أو اﻟﻤﻠﻒ أو اﻷﺛﻨﯿﻦ ﻣﻌﺎً )أي اﻧﮫ ﻋﻨﺪ ﺗﺸﻐﯿﻞ ال Instance
ﻣﺮة أﺧﺮى ﺗﻜﻮن اﻟﺘﻐﯿﺮات اﻟﺘﻲ اﺟﺮﯾﺖ ﻋﻠﻰ ال SPFILEﺑﻮاﺳﻄﺔ ال ALTER SYSTEMﻣﻮﺟﻮدة
وﺛﺎﺑﺘﺔ(.
ﻻ ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﻜﻮﯾﻦ ﻣﻠﻒ SPFILEاﺑﺘﺪاﺋﻲ ﻛﻤﺎ ﯾﺤﺪث ﻣﻊ ال PFILEوﻟﻜﻦ ﯾﺘﻢ ﺗﻜﻮﯾﻦ ال SPFILE
ﻣﻦ ال PFILEﻛﺎ ﺳﯿﺄﺗﻲ ﺷﺮﺣﮫ ﺑﻌﺪ ﻗﻠﯿﻞ.
ﻣﻼﺣﻈﺔ :اﺳﺘﺨﺪام ال ] [ ﻓﻲ اﻟﻘﻮاﻋﺪ ﯾﺪل ﻋﻠﻰ أن ھﺬا اﻟﺠﺰء اﺧﺘﯿﺎري و ﻓﻲ ﺣﺎﻟﺔ ﻟﻢ ﯾﺘﻢ ﻛﺘﺎﺑﺘﮫ ﯾﺨﺘﺎر اﻷوراﻛﻞ
ال . Defaultوال Defaultﯾﻜﻮن أﺣﺪ اﻟﺤﻼت اﻷﻛﺜﺮ ﺷﯿﻮﻋﺎً وھﻲ ﺗﻢ اﺧﺘﯿﺎرھﺎ ﻣﺴﺒﻘﺎً ﻣﻦ ﻗﺒﻞ ﻣﺒﺮﻣﺠﻲ
اﻷوراﻛﻞ.
:MEMORYﯾﺘﻢ ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ " "Valueال Parameterﻓﻘﻂ ﻓﻲ اﻟﺬاﻛﺮة ،أي ﻋﻨﺪ ﺗﺸﻐﯿﻞ ال ·
Instanceﻣﺮة أﺧﺮى ﺗﻠﻐﻰ اﻟﺘﻐﯿﺮات.
:BOTHﯾﺘﻢ ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ " "Valueﻟﻠﻌﺎﻣﻞ " "Parameterﻓﻲ ﻣﻠﻒ ال SPFILEواﻟﺬاﻛﺮة ·
ﻣﻌﺎً.
'*. background_dump_dest='C:\oracle2\ora92\admin\dbname\bdump
*. compatible='9.0.0' *.db_block_size=4096 *.db_cache_size=33554432
'*. db_domain='oracle
………………
38
ﻟﯿﺴﺖ ﻛﻞ اﻟﻌﻮاﻣﻞ " "Parametersﻓﻲ ال SPFILEاﺧﺘﯿﺎرﯾﺔ ،ﯾﻮﺟﺪ ﺳﺒﻊ ﻋﻮاﻣﻞ " "Parametersﯾﺠﺐ
ان ﺗﺤﺪد ھﻲ:
.BACKGROUND_DUMP_DEST ·
USER_DUMP_DEST ·
DB_NAME ·
SHARED_POOL_SIZE ·
COMPATIBLE ·
DB_BLOCK_BUFFERS ·
CONTROL_FILES ·
:Create SPFILE
ﯾﻤﻜﻦ اھﻤﺎل ذﻛﺮ اﺳﻢ و ﻣﻮﻗﻊ ﻣﻠﻒ ال SPFILEﻓﻲ اﻟﻘﺎﻋﺪة اذ ﯾﻤﻜﻦ ﻟﻸوراﻛﻞ ﺗﻜﻮﯾﻦ اﻷﺳﻢ ﻋﻠﻰ اﻟﻨﻤﻂ
اﻟﻤﺬﻛﻮر ﺳﺎﺑﻘﺎً ) (spfileSID.oraوﻓﻲ اﻟﻤﻮﻗﻊ ال Defaultوھﻮ ﺿﻤﻦ اﻟﻤﺠﻠﺪ .dbsﻛﺬﻟﻚ اﻟﺤﺎل ﺑﺎﻟﻨﺴﺒﺔ ﻟﻞ
PFILEﺣﯿﺚ ﯾﺨﺘﺎر اﻷوراﻛﻞ اﻟﻤﻠﻒ اﻟﻤﻌﺮف ﺑﺎﻷﺳﻢ initSID.oraوﺿﻤﻦ اﻟﻤﺠﻠﺪ .dbs
ﻣﻼﺣﻈﺔ :ﻗﺪ ﯾﺨﺘﻠﻒ اﻟﻤﻮﻗﻊ ال Defaultﻣﻦ ﻧﺴﺨﺔ أوراﻛﻞ اﻟﻰ أﺧﺮى .ﺑﻌﺾ ﻧﺴﺦ اﻷوراﻛﻞ ﺗﻜَﻮن اﻟﻤﻠﻒ ﺿﻤﻦ
اﻟﻤﺠﻠﺪ .database
;CONNECT / AS SYSDBA
39
ﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ ال SPFILEﻣﻦ ال CONSOLEﺑﺎﺗﺨﺎذ اﻟﺨﻄﻮات اﻟﺘﺎﻟﯿﺔ:
رﺳﻢ 2.8
40
START UP A DATABASE
ﯾﻮﺟﺪ ﺛﻼث ﺣﺎﻻت ﯾﻤﻜﻦ أن ﻧﺒﺪأ ﺗﺸﻐﯿﻞ ال Databaseوﻟﻜﻞ ﻣﻨﮭﺎ ﺧﺎﺻﯿﺘﮫ واﻟﻮﻇﺎﺋﻒ اﻟﺘﻲ ﯾﻤﻜﻦ اﺟﺮاﺋﮭﺎ ﻓﻲ
ﺗﻠﻚ اﻟﺤﺎﻟﺔ ،اﻟﺤﺎﻻت اﻟ ﺜﺎﻟﺜﺔ ﺑﺎﻟﺘﺮﺗﯿﺐ .NOMOUNT , MOUNT , OPEN :
:NOMOUNT
ﺗﺴﻤﻰ ﻋﻤﻠﯿﺔ Staring the Instanceﻷﻧﮫ ﻓﻲ ھﺬه اﻟﻤﺮﺣﻠﺔ ﻓﻘﻂ ﯾﺒﺪأ ﺗﺸﻐﯿﻞ ال Instanceدون ﺑﺎﻗﻲ أﺟﺰاء
ال .Oracle Database
ﺗﺘﻢ ﻗﺮاءة ﻣﻠﻒ ال Initialization Parameter Fileﺑﺤﯿﺚ ﯾﺒﺤﺚ اﻷوراﻛﻞ ﻋﻠﻰ ﻣﻠﻒ ·
SPFILEإن ﻟﻢ ﯾﺠﺪ ﯾﺒﺤﺚ ﻋﻦ PFILEوإن ﻟﻢ ﯾﺠﺪ ﺗﺘﻢ ﻗﺮاءة اﻟﻤﻠﻒ .init.ora
ﺣﺠﺰ ﻣﺴﺎﺣﺔ ﻣﻦ اﻟﺬاﻛﺮة ﻟﻞ .SGA ·
ﺑﺪأ ال .Background Processes ·
ﻓﺘﺢ ﻣﻠﻒ ﯾﺴﻤﻰ alertSID.logوﻣﻠﻔﺎت ﺗﺴﻤﻰ ال .Trace Files ·
ﻣﻼﺣﻈﺔ :ﯾﺠﺐ ﺗﺤﺪﯾﺪ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ " DB_NAME "Parameterﻟﻜﻲ ﯾﻌﻤﻞ ال .NOMOUNT
:MOUNT
41
:OPEN
ھﻲ اﻟﺤﺎﻟﺔ اﻟﻌﺎدﯾﺔ اﻟﺘﻲ ﺗﻢ اﻟﻌﻤﻞ ﻓﯿﮭﺎ ﺑﻮاﺳﻄﺔ ال SQLPLUSوﯾﺘﻢ اﺟﺮاء ﺗﻌﺪﯾﻞ وﺣﺬف واﺿﺎﻓﺔ ﺑﯿﺎﻧﺎت
وﻏﯿﺮھﺎ ﻣﻦ اﻟﻤﮭﺎم.
ﻓﻲ ﺣﺎﻟﺔ ﻓﺸﻞ ﻓﺘﺢ ﻣﻠﻔﺎت ال Data Filesوال Redo Filesاو ﻓﻲ ﺣﺎﻟﺔ ﺣﺬﻓﮭﺎ أو ﻧﻘﻠﮭﺎ ﻣﻦ ﻣﻮاﻗﻌﮭﺎ اﻟﻤﺤﺪدة
ﻓﻲ ال Control Filesﻓﻼ ﯾﻤﻜﻦ ان ﺗﻌﻤﻞ اﻟﺤﺎﻟﺔ .OPEN
:STARTUP Command
ﻣﻼﺣﻈﺔ :اﺳﺘﺨﺪام ال | ﻓﻲ اﻟﻘﻮاﻋﺪ ﯾﺪل ﻋﻠﻰ اﻧﮭﺎ )أو( " ."ORﻓﻤﺜﻼً ﻻ ﯾﻤﻜﻦ ﻟﻞ MOUNTو ال OPEN
ان ﯾﻜﺘﺒﺎ ﻣﻌﺎً.
:PFILEﺳﺒﻖ ذﻛﺮ ان اﻷوراﻛﻞ ﯾﺒﺤﺚ ﻋﻦ اﻟﻤﻠﻒ ﻋﻨﺪ ﺑﺪاﯾﺔ ﻣﺮﺣﻠﺔ ال NOMOUNTوﻟﻜﻦ ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم
ﺗﺤﺪﯾﺪ ﻣﻠﻒ ﻣﺤﺪد ﻋﻮﺿﺎً ﻋﻠﻰ ان ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺎﻟﺒﺤﺚ ﻋﻨﮫ.
:RESTRICTﺗﺤﺪد اﻟﻤﺴﺘﺨﺪﻣﯿﻦ اﻟﺬﯾﻦ ﯾﺤﻖ ﻟﮭﻢ اﻟﺪﺧﻮل اﻟﻰ ال Databaseوھﻢ ﻣﻦ ﯾﻤﻠﻚ ال
Restricted Session Privilegeاﻟﺘﻲ ﺳﻮف ﯾﺘﻢ اﻟﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً.
:FORCEاذا ﻛﺎن ال Instanceﯾﻌﻤﻞ ﻓﻲ اﺣﺪ اﻟﺤﺎﻻت ﻓﯿﻤﻜﻦ اﻏﻼﻗﮫ ﺛﻢ ﺗﺸﻐﯿﻠﮫ ﻣﺒﺎﺷﺮة ﻓﻲ اﻟﺤﺎﻟﺔ اﻟﻌﺎدﯾﺔ.
اذاً ھﻲ ﻣﺜﻞ ﻋﻤﻠﯿﺔ ال " "Restartﻓﻲ اﻟﻮﯾﻨﺪوز.
42
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :2.5
43
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :2.7
ﺑﯿﻨﻤﺎ ال Databaseﻓﻲ اﻟﺤﺎﻟﺔ اﻟﻌﺎدﯾﺔ " "READ WRITEﯾﻤﻜﻦ اﻟﺘﺤﻮﯾﻞ ﺑﻜﺘﺎﺑﺔ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ:
ﻣﻦ اﻟﻮﻇﺎﺋﻒ اﻟﺘﻲ ﯾﻤﻜﻦ اﻟﻘﯿﺎم ﺑﮭﺎ ﺑﯿﻨﻤﺎ ال Databaseﻓﻲ وﺿﻌﯿﺔ ال :READ ONLY
:Restricted Mode
ﯾﻤﻜﻦ ﺗﺸﻐﯿﻞ ال Databaseﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻹﻋﻄﺎء اﻟﻤﺠﺎل ﻟﻠﻤﺴﺘﺨﺪﻣﯿﻦ اﻟﺬي ﯾﻤﻠﻜﻮن
Restricted Session Privilegeﻣﻦ اﻟﻘﯿﺎم ﺑﻤﮭﺎت ﺧﺎﺻﺔ.
;STARTUP RESTRICTED
:Kill a Session
ﻓﻲ ﺑﻌﺾ اﻷوﻗﺎت )وﺧﺎﺻﺔ ﺑﻌﺪ وﺿﻊ ال (Restrictedﯾﺮﯾﺪ ال ) DBAأو ﻣﻦ ﯾﻤﻠﻚ اﻟﺼﻼﺣﯿﺎت( ﺑﺎﺧﺮاج
ﺑﻌﺾ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻣﻦ ال Databaseﻟﻠﻘﯿﺎم ﺑﺒﻌﺾ اﻟﻤﮭﻤﺎت .ﯾﻤﻜﻦ اﻟﻘﯿﺎم ﺑﮭﺬه اﻟﻤﮭﻤﺔ ﻋﺒﺮ:
ال SIDھﻮ رﻗﻢ ال Sessionاﻟﺨﺎص )ﯾﻌﻄﻰ ﻟﻜﻞ Sessionﻋﻨﺪ ﺑﺪاﯾﺔ ﺗﺸﻐﯿﻠﮫ رﻗﻢ ﺧﺎص ﺑﮫ( ﯾﻤﻜﻦ اﺳﺘﺨﺮاﺟﮫ
ﻣﻦ .V$SESSION
ال SERIAL#ھﻮ رﻗﻢ أﺧﺮ ﻣﻤﯿﺰ " "Uniqueﯾﻌﻄﻰ ﻟﻜﻞ Sessionوﯾﻤﻜﻦ اﺳﺘﺨﺮاﺟﮫ ﻣﻦ اﯾﻀﺎً ﻣﻦ ال
.V$SESSION
44
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :2.9
· ﯾﺠﺐ أن ﯾﻜﻮن ھﻨﺎﻟﻚ أﻛﺜﺮ ﻣﻦ ﻣﺴﺘﺨﺪم ﯾﻌﻤﻠﻮن ﻋﻠﻰ ال Databaseﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ،ﻟﻠﻘﯿﺎم ﺑﺬﻟﻚ
ادﺧﻞ اﻟﻰ SQLPLUSأوﻻً ﺑﺎﺳﻢ ﻣﺴﺘﺨﺪم ﺛﻢ اﻓﺘﺢ ال SQLPLUSﻣﺮة أﺧﺮى وادﺧﻞ ﺑﺎﺳﻢ
ﻣﺴﺘﺨﺪم اﺧﺮ.
اﺳﺘﺨﺪم SYSTEMو اﺳﺘﺨﺪم username = SCOTT , password =TIGER
رﺳﻢ 2.9
45
SHUTTING DOWN THE DATABASE
:NORMAL
ﻣﻼﺣﻈﺔ :ﻻ ﯾﺴﺘﻠﺰم ان ﺗﺘﻢ ﻋﻤﻠﯿﺔ Recoveryﻟﻠﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻛﺎﻧﺖ ﻣﻮﺟﻮدة ﻓﻲ ال Instanceﺑﺎﻋﺘﺒﺎر اﻧﮭﺎ
ﻧﻘﻠﺖ اﻟﻰ اﻟﻤﻠﻔﺎت اﻟﻔﯿﺰﯾﺎﺋﯿﺔ .وﻋﻤﻠﯿﺔ ال Recoveryھﻲ اﻟﻌﻤﻠﯿﺔ اﻟﻤﺸﺎﺑﮭﮫ ﻟﻮﻇﺎﺋﻒ ال PMONو . SMON
:TRANSACTIONAL
ﻓﻲ ﺣﺎﻟﺔ اﻏﻼق ال Databaseﺑﮭﺬه اﻟﺤﺎﻟﺔ ﯾﺘﻢ ﺟﻤﯿﻊ ﺧﻄﻮات ال NORMALﻋﺪا اﻹﺧﺘﻼﻓﺎت اﻟﺘﺎﻟﯿﺔ:
ﻻ ﯾﻐﻠﻖ ال Databaseﻗﺒﻞ اﻧﮭﺎء اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﻃﻠﺒﮭﺎ ﺟﻤﯿﻊ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻣﻨﮫ ،أي أن اﻷوراﻛﻞ ﯾﻨﺘﻈﺮ ·
ﺣﺘﻰ ﯾﻔﺮغ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻣﻦ ﻣﮭﺎﻣﮭﻢ اﻟﺘﻲ ﻃﻠﺒﻮھﺎ ﻗﺒﻞ ﺣﺪوث أﻣﺮ اﻻﻏﻼق وﻻ ﯾﻨﺘﻈﺮ أن ﯾﺨﺮج
اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻣﻦ ال Databaseﻟﺘﺘﻢ ﻋﻤﻠﯿﺔ اﻻﻏﻼق ﻛﻤﺎ ﯾﺤﺪث ﻓﻲ ال .NORMAL
ﻻ ﯾﺴﻤﺢ ﺑﺎﻟﻘﯿﺎم ﺑﻤﮭﻤﺎت ﺟﺪﯾﺪة ﻣﻦ ﻗﺒﻞ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﺑﻌﺪ أﻣﺮ اﻹﻏﻼق. ·
ﯾﺘﻢ اﺧﺮاج اﻟﻤﺴﺘﺨﺪم ﻣﻦ ال Databaseﻋﻨﺪ اﻧﺘﮭﺎء اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﻃﻠﺒﺖ ﻗﺒﻞ ﻋﻤﻠﯿﺔ اﻻﻏﻼق. ·
46
:IMMEDIATE
ﻓﻲ ﺣﺎﻟﺔ اﻏﻼق ال Databaseﺑﮭﺬه اﻟﺤﺎﻟﺔ ﯾﺘﻢ ﺟﻤﯿﻊ ﺧﻄﻮات ال NORMALﻋﺪا اﻹﺧﺘﻼﻓﺎت اﻟﺘﺎﻟﯿﺔ:
ﯾﺘﻢ اﻏﻼق ال Databaseﻓﻮراً دون اﻧﺘﻈﺎر ﺧﺮوج اﻟﻤﺴﺘﺨﺪﻣﯿﻦ أو اﻧﮭﺎء ﻣﮭﺎﻣﮭﻢ اﻟﺘﻲ ﻃﻠﺒﻮھﺎ ﻗﺒﻞ ·
أﻣﺮ اﻻﻏﻼق.
اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﺗﻢ ﻃﻠﺒﮭﺎ ﻗﺒﻞ أﻣﺮ اﻻﻏﻼق ﺗﻠﻐﻰ وأﯾﺔ ﺗﻌﺪﯾﻼت ﻃﺮأت ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت ﺑﺴﺒﺒﮭﺎ ﺗﺰال وﺗﻤﺴﺢ ·
)ﺑﺸﺮط ان ﺗﻜﻮن اﻟﻤﮭﻤﺔ ﻣﺎ ﺗﺰال ﺗﻌﻤﻞ ﻋﻨﺪ أﻣﺮ اﻹﻏﻼق( وﯾﺤﺪث ﻟﮭﺎ .ROLLBACK
:ABORT
ﻓﻲ ﺑﻌﺾ اﻟﺤﻼت اﻟﺨﺎﺻﺔ ﻋﻨﺪ ﻋﺪم اﺳﺘﻄﺎﻋﺔ اﻷوراﻛﻞ اﻏﻼق ال Databaseﺑﺄﺣﺪ اﻟﺤﻼت اﻟﺜﻼث اﻟﺴﺎﺑﻘﺔ ﯾﺘﻢ
اﺳﺘﺨﺪام ھﺬه اﻟﺤﺎﻟﺔ.
ﻓﻲ ﺣﺎﻟﺔ اﻏﻼق ال Databaseﺑﮭﺬه اﻟﺤﺎﻟﺔ ﯾﺘﻢ اﻟﺘﺎﻟﻲ:
ﯾﺘﻢ اﻏﻼق ال Databaseﻓﻮراً دون اﻧﺘﻈﺎر ﺧﺮوج اﻟﻤﺴﺘﺨﺪﻣﯿﻦ أو اﻧﮭﺎء ﻣﮭﺎﻣﮭﻢ اﻟﺘﻲ ﻃﻠﺒﻮھﺎ ﻗﺒﻞ ·
أﻣﺮ اﻻﻏﻼق.
اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﺗﻢ ﻃﻠﺒﮭﺎ ﻗﺒﻞ أﻣﺮ اﻻﻏﻼق ﺗﻠﻐﻰ و أﯾﺔ ﺗﻌﺪﯾﻼت ﻃﺮأت ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت ﺑﺴﺒﺒﮭﺎ ﺗﺰال وﺗﻤﺴﺢ ·
)ﺑﺸﺮط ان ﺗﻜﻮن اﻟﻤﮭﻤﺔ ﻣﺎ ﺗﺰال ﺗﻌﻤﻞ ﻋﻨﺪ أﻣﺮ اﻹﻏﻼق( وﻻ ﯾﺤﺪث ﻟﮭﺎ .ROLLBACK
ﻻ ﯾﺘﻢ ﻧﻘﻞ ﺑﯿﺎﻧﺎت ال Redo Log Bufferاﻟﻰ ال .Redo Log Files ·
ﻻ ﯾﺘﻢ ﻧﻘﻞ ﺑﯿﺎﻧﺎت ال Database Buffer Cacheاﻟﻰ ال Data Files ·
اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﻟﻢ ﯾﺤﺪث ﻟﮭﺎ COMMITﻻ ﯾﺤﺪث ﻟﮭﺎ .ROLLBACK ·
ﯾﺘﻢ اﻏﻼق ال Databaseوال Instanceﺑﺸﻜﻞ ﻓﻮري. ·
ﻣﻼﺣﻈﺔ :2ﺗﺄﺛﯿﺮات ال STARTUP FORCEو ﻋﻨﺪ ﺣﺪوث أي ﻋﻄﻞ ﻓﻲ ال Instanceﯾﺆدي اﻟﻰ اﻏﻼﻗﮫ
ھﻲ ذات اﻟﺘﺄﺛﯿﺮات ﻟﻞ .SHUTDOWN ABORT
47
DIAGNOSTIC FILES
ﺗﻌﺘﺒﺮ ﻣﻠﻔﺎت ال Diagnosticﻣﻠﻔﺎت ﻣﮭﻤﺔ ﻹدارة ال Instanceﻷﻧﮭﺎ ﺗﺨﺰن ﺑﯿﺎﻧﺎت ﺣﻮل اﻟﻌﻤﻠﯿﺎت اﻟﻤﺨﺘﻠﻔﺔ
اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ ال .Databaseﯾﻮﺟﺪ ﻋﺪد ﻣﻦ ﻣﻠﻔﺎت ال Diagnosticﻣﻨﮭﺎ:
· :ALERT LOG FILEﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﺣﻮل اﻟﻌﻤﻠﯿﺎت أو اﻟﻤﮭﺎم اﻟﯿﻮﻣﯿﺔ اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ ال
.Database
:USER TRACE FILEﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﺣﻮل اﻷﺧﻄﺎء اﻟﻔﺎدﺣﺔ اﻟﺘﻲ ﯾﻘﻮم ﺑﮭﺎ اﻟﻤﺴﺘﺨﺪﻣﻮن ·
واﻟﺘﻲ ﻗﺪ ﺗﺆدي اﻟﻰ ﺗﻌﻄﻞ ال Databaseوﺑﺬﻟﻚ ﺗﺴﺎﻋﺪ ﻋﻠﻰ اﻛﺘﺸﺎف اﻻﺳﺒﺎب اﻟﺘﻲ أدت ﻟﺘﻌﻄﻞ ال
.Database
ﻟﻜﻞ Instanceﻣﻠﻒ Alert Logﺑﺤﯿﺚ اذا ﻟﻢ ﯾﻘﻢ اﻟﻤﺴﺘﺨﺪم ﺑﺘﻜﻮﯾﻨﮫ ﯾﻘﻮم اﻷوراﻛﻞ ﺧﻼل ﺑﺪأ ال Instance
ﺑﺘﻜﻮﯾﻦ اﻟﻤﻠﻒ )ﺧﻼل ﻣﺮﺣﻠﺔ ال (NOMOUNTوھﻮ ﯾﻌﺮف ﺑﺎﺳﻢ .alertSID.logﯾﻌﺘﺒﺮ ال Alert Log
ھﻮ اﻟﻤﺮﺟﻊ اﻷول ﻓﻲ اﻟﺒﺤﺚ ﻋﻦ اﻷﺧﻄﺎء )ﺗﺸﺨﯿﺺ( اﻟﺘﻲ ﺣﺪﺛﺖ ﻓﻲ ال Databaseﺑﺸﻜﻞ ﯾﻮﻣﻲ.
ﻣﻮﻗﻊ ال Alert Fileﻣﺤﺪد ﻣﻦ ﻗﺒﻞ اﻟﻌﺎﻣﻞ ".BACKGROUND_DUMP_DEST "Parameter
48
:BACKGROUND TRACE FILES
ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﺣﻮل اﻻﺧﻄﺎء اﻟﺘﻲ ﺗﺤﺪﺛﮭﺎ ال .Background Processesﯾﺘﻢ ﺗﻜﻮﯾﻦ اﻟﻤﻠﻔﺎت ﻓﻘﻂ ﻋﻨﺪﻣﺎ
ﺗﺤﺪث اﻷﺧﻄﺎء )أي اﻧﮫ ﻓﻲ ﺣﺎل ﻋﺪم ﺣﺪوث اﺧﻄﺎء ﻻ ﺗﻜﻮن اﻟﻤﻠﻔﺎت ﻣﺘﻮاﺟﺪه(.
ﻣﻮﻗﻊ اﻟﻤﻠﻔﺎت ﻣﺤﺪد ﻣﻦ ﻗﺒﻞ اﻟﻌﺎﻣﻞ ".BACKGROUND_DUMP_DEST "Parameter
ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﺣﻮل اﻷﺧﻄﺎء اﻟﻔﺎدﺣﺔ اﻟﺘﻲ ﯾﻘﻮم ﺑﮭﺎ اﻟﻤﺴﺘﺨﺪﻣﻮن واﻟﺘﻲ ﻗﺪ ﺗﺆدي اﻟﻰ ﺗﻌﻄﻞ ال Database
وﺑﯿﺎﻧﺎت ﺣﻮل ال SQLاﻟﺘﻲ ﺗﻢ ﻃﻠﺐ ﻣﺮاﻗﺒﺘﮭﺎ " ." Traceﻣﻮﻗﻊ اﻟﻤﻠﻒ ﻣﺤﺪد ﻣﻦ ﻗﺒﻞ اﻟﻌﺎﻣﻞ
".USER_DUMP_DEST "Parameter
ﯾﺘﺤﻜﻢ ﻓﻲ ﺣﺠﻢ اﻟﻤﻠﻒ اﻟﻌﺎﻣﻞ " MAX_DUMP_FILE_SIZE "Parameterو اﻟﻤﺤﺪد ب 10ﻣﯿﻐﺎ
ﺑﺎﯾﺖ .ﯾﻤﻜﻦ ﺗﺸﻐﯿﻞ أو اﯾﻘﺎف اﻟﻤﻠﻒ ﻓﻲ ال Sessionاﻟﻮاﺣﺪ او ﻓﻲ ال ) Instanceﻛﻞ ال Sessionsاﻟﺘﻲ
ﻣﻮﺟﻮدة ﻓﻲ ال (Instanceﻋﺒﺮ ﻛﺘﺎﺑﺔ اﻟﺘﺎﻟﻲ:
ﻓﻲ ال :Session
ﻓﻲ ال :Instance
او ﻋﻨﺪ وﺿﻊ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ " "Parameterاﻟﺘﺎﻟﻲ ﻓﻲ ال :Initialization Parameter File
SQL_TRACE = TRUE
وﺑﺬﻟﻚ ﯾﺘﻢ ﺗﻌﻘﺐ " "Traceﺟﻤﯿﻊ ﺟﻤﻞ ال SQLوﺗﺴﺠﯿﻞ ﺑﯿﺎﻧﺎت ﺣﻮﻟﮭﺎ واﻷﺧﻄﺎء اﻟﺘﻲ ﺳﺒﺒﺘﮭﺎ.
وﻛﺬﻟﻚ اﻟﺤﺎل ﺑﺎﻟﻨﺴﺒﺔ ﻟﻤﻠﻔﺎت ال User Traceﻓﻲ ﺗﺴﻤﻰ ﺑﺎﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ ﻓﻲ ﻧﺴﺨﺔ اﻷوراﻛﻞ اﻟﺨﺼﺔ ﺑﻲ:
ORAPID.trcﻣﺜﻞ .ORA00853.trc
ﻣﻼﺣﻈﺔ :ﻗﺪ ﺗﺨﺘﻠﻒ ﻗﺎﻋﺪة اﻟﺘﺴﻤﯿﺔ ﻣﻦ ﻧﺴﺨﺔ أوراﻛﻞ اﻟﻰ أﺧﺮى وﻟﻜﻦ ال Trace Filesﺗﻨﺘﮭﻲ داﺋﻤﺎً ب )(.trc
49
)ORACLE MANAGED FILES (OMF
ﺗﺴﮭﻞ ال OMFادارة ﻋﺪد ﻣﻦ ﻣﻠﻔﺎت اﻷوراﻛﻞ اذ ﯾﻜﻔﻲ ﺗﺤﺪﯾﺪ ﻣﻮاﻗﻊ اﻟﻤﻠﻔﺎت ﻓﯿﻘﻮم اﻷوراﻛﻞ ﺑﺎﻻھﺘﻤﺎم
ﺑﺎﻟﻤﻠﻔﺎت و ﺗﻜﻮﯾﻨﮭﺎ وﺣﺬﻓﮭﺎ وﺗﺴﻤﯿﺘﮭﺎ .ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ ﻣﻮاﻗﻊ اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام ﻋﺎﻣﻠﯿﻦ " "Parametersاﺛﻨﯿﻦ
ﺟﺪﯾﺪن ﻣﻦ ﻋﻮاﻣﻞ ﻣﻠﻒ ال Initialization Parameter Fileاﺿﯿﻔﺎ ﻓﻲ اﻟﻨﺴﺨﺔ اﻟﺘﺎﺳﻌﺔ ﻣﻦ اﻷوراﻛﻞ
" "Oracle9iھﻤﺎ:
ﻣﻼﺣﻈﺔ :ﯾﻤﻜﻦ اﺳﺘﺨﺪام أﺣﺪھﻤﺎ أو ﻛﻼھﻤﺎ ,وﻻ ﯾﺸﺘﺮط اﺳﺘﺨﺪام اﻻﺛﻨﯿﻦ ﻣﻌﺎً.
'DB_CREATE_FILE_DEST = 'C:\oracle\ora92\oradata\u01
'DB_CREAE_ONLINE_LOG_DEST_1 = 'C:\oracle\ora92\oradata\u02
'DB_CREAE_ONLINE_LOG_DEST_2 = 'C:\oracle\ora92\oradata\u03
ﺑﻌﺪ ان ﯾﺘﻢ ﺗﺤﺪﯾﺪ اﻟﻌﻮاﻣﻞ ") "Parameterﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل (2.10ﺗﺘﻢ ﻋﻤﻠﯿﺔ ﺗﻜﻮﯾﻦ ال Databaseﺑﺎﺳﺘﺨﺪام
أﻣﺮ .CREATE DATABASEاذا ﻓﺸﻞ ﺗﻜﻮﯾﻦ ال Databaseﯾﻘﻮم اﻷوراﻛﻞ ﺑﺤﺬف اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﺗﻜﻮﻧﺖ
ﻣﻦ ﺧﻼل .OMF
ﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﺗﻜﻮﻧﺖ ﺑﻄﺮﯾﻘﺔ ال OMFﻣﻦ DBA_DATAFILEو
.V$LOGFILE
50
51
PRE-CREATING STAGES
ﻋﻤﻠﯿﺔ ﺗﻜﻮﯾﻦ ال Databaseﺗﺤﺘﺎج اﻟﻰ ﺗﺨﻄﯿﻂ وﺗﺤﻀﯿﺮ ﻣﺴﺒﻖ ،ﯾﺠﺐ ﻋﻠﻰ ال DBAاﻋﺪاد اﻟﺘﺎﻟﻲ:
اﻟﺤﺠﻢ اﻟﻜﺎﻓﻲ ﻟﻜﻞ ﻣﻦ اﻟﻘﺮص اﻟﺼﻠﺐ " "Hard Diskو اﻟﺬاﻛﺮة ﻓﻲ اﻟﺴﯿﺮﻓﺮ. ·
وﺿﻊ ﺧﻄﺔ ﻟﺘﻮزﯾﻊ اﻟﻤﻠﻔﺎت ﻓﻲ ﻣﻮﻗﻊ اﻟﺘﺨﺰﯾﻦ ﻟﺤﻤﺎﯾﺔ ﻣﻠﻔﺎت ال .Database ·
اﺧﺘﯿﺎر ﻧﻈﺎم اﻟﺤﻤﺎﯾﺔ ) Operating Systemاو (Password Fileو ﺗﻮﻓﺮ ال .SYSDBA ·
ﻣﻌﺮﻓﺔ اذا ﻛﺎن ﯾﺮاد ﺗﻜﻮﯾﻦ Databaseﺟﺪﯾﺪة أو ﯾﺮاد ﻧﻘﻞ ال Databaseاﻟﻤﻮﺟﻮدة ﻣﻦ ﻧﺴﺨﺔ ·
أوراﻛﻞ أﻗﺪم اﻟﻰ ﻧﺴﺨﺔ أﺟﺪ ،ﻋﻨﺪ ذﻟﻚ ﯾﺠﺐ اﺳﺘﺨﺪام ال Data Migration Assistant
ﺗﺤﺪﯾﺪ اﻟﻄﺮﯾﻘﺔ اﻟﺘﻲ ﺳﻮف ﯾﺘﻢ ﺑﮭﺎ ﺗﻜﻮﯾﻦ ال Databaseاﻟﺠﺪﯾﺪة ،إﻣﺎ ﻋﻦ ﻃﺮﯾﻖ اﺳﺘﺨﺪام ·
CREATE DATABASEﻓﻲ ال ) SQLﺗﺴﻤﻰ اﻟﻄﺮﯾﻘﺔ اﻟﯿﺪوﯾﺔ( او ﻋﻦ ﻃﺮﯾﻖ Database
.Configuration Assistant
ﻧﻘﺎط ﻣﮭﻤﺔ:
-1ﯾﻨﺼﺢ ﺑﺘﻮزﯾﻊ ﻣﻠﻔﺎت ال Control Fileﻋﻠﻰ ﻣﻮاﻗﻊ ﻣﺨﺘﻠﻔﺔ أو أﻗﺮاص ﺻﻠﺒﺔ ﻣﺨﺘﻠﻔﺔ.
-2ﯾﻨﺼﺢ ﺑﺘﻮزﯾﻊ اﻟﻤﻠﻔﺎت اﻟﻤﺘﺸﺎﺑﺔ ﻓﻲ ﻣﺠﻤﻮﻋﺎت ال Redo Logاﻟﻰ ﻣﻮاﻗﻊ ﻣﺨﺘﻠﻔﺔ أو أﻗﺮاص ﻣﺨﺘﻠﻔﺔ.
-4ﺗﻔﺮﯾﻖ ﻋﻨﺎﺻﺮ ال Databaseاﻟﺘﻲ ﻟﮭﺎ ﻣﺮاﺣﻞ ﺣﯿﺎة ﻣﺨﺘﻠﻔﺔ)ﻗﺼﯿﺮة أو ﻃﻮﯾﻠﺔ( اﻟﻰ ﻣﻮاﻗﻊ ﻣﺨﺘﻠﻔﺔ ﻟﻜﻲ ﯾﻘﻞ
ﻣﺎ ﯾﻌﺮف ﺑﺎﺳﻢ .Disk Fragmentation
52
DATABASE CONFIGURATION ASSISTANT
ﯾﻤﻜﻦ ﻋﺒﺮ ال) (DBCAاﻟﻘﯿﺎم ﺑﺎﻟﺘﺎﻟﻲCreate a Database, Configure Database Options, :
.Delete a Database, and Manage Templates
:CREATE A DATABASE
ﺑﺪون ال :Data Filesﻓﻘﻂ اﺧﺘﯿﺎرت ال Databaseدون اﻟﻤﻠﻔﺎت )ﻟﻤﻌﺮﻓﺔ اﻻﺧﯿﺎرات اﺿﻐﻂ ﻋﻠﻰ ·
" .("Show Detailsﺗﻜﻤﻦ ﻓﺎﺋﺪﺗﮫ اﻧﮫ ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﺟﻤﯿﻊ اﻷﺧﺘﯿﺎرات وال Initialization
Parametersﺑﻌﺪ ﺗﻜﻮﯾﻦ اﻟﻘﺎﻟﺐ "."Template
ﻣﻊ ال :Data Filesﯾﻜﻮن اﻟﻘﺎﻟﺐ ﻣﺘﻜﻮﻧﺎً ﻣﻦ اﺧﺘﯿﺎرات ال Databaseﻣﻊ وﺟﻮد ﻣﻠﻔﺎت ال Data ·
.Filesﯾﺘﻢ ﺗﻜﻮﯾﻦ ال Control Filesو ال Redo Log Groupsﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ ،ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ
اﺳﻤﺎء وﻣﻮاﻗﻊ ال ،Data Filesوﻟﻜﻦ ﻻ ﯾﻤﻜﻦ ﺣﺬف ال Data Filesوﺗﻜﻮﯾﻨﮭﺎ ﻣﻦ ﺟﺪﯾﺪ وﻛﺬﻟﻚ
ﯾﻨﻄﺒﻖ اﻟﺤﺎل ﻋﻠﻰ ،Tablespacesوﻻ ﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ ال Initialization Parametersﺑﻌﺪ ﺗﻜﻮﯾﻦ
اﻟﻘﺎﻟﺐ "."Template
ﯾﻮﺟﺪ ﻋﺪد ﻣﻦ اﻟﻘﻮاﻟﺐ اﻟﻤﻌﺪة ﻣﺴﺒﻘﺎً " "Template Nameﺗﻈﮭﺮ ﺑﺎﻟﺮﺳﻢ :3.1
رﺳﻢ 3.1
53
ﺑﻌﺪ أن ﯾﺘﻢ اﺧﺘﯿﺎر أﺣﺪ اﻟﻘﻮاﻟﺐ " "Templatesﯾﻄﻠﺐ اﺧﺘﯿﺎر اﺳﻢ ال Databaseواﺳﻢ ال Instance
اﻟﻤﻌﺮف ﺑﺎﻟﺮﻣﺰ .SID
رﺳﻢ 3.2
ﻓﻲ ﺣﺎل ﺗﻢ اﺧﺘﯿﺎر اﻟﻘﺎﻟﺐ " "New Databaseﯾﺘﻢ اﺧﺘﯿﺎر اﻟﻤﻤﯿﺰات " "Featuresاﻟﺘﻲ ﺗﺮﯾﺪ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ
ال .Database
رﺳﻢ 3.3
54
اﻟﻤﺮﺣﻠﺔ اﻟﺘﺎﻟﯿﺔ ﯾﺘﻢ اﺧﺘﯿﺎر اﻟﺒﯿﺌﺔ اﻟﺘﻲ ﺳﻮف ﯾﻌﻤﻞ ﺑﮭﺎ ال .Database
رﺳﻢ 3.4
ﺑﻌﺪ ذﻟﻚ ﯾﺘﻢ ﺗﺤﺪﯾﺪ ﻋﻮاﻣﻞ " "Parametersال Initialization Parameter Fileاﻟﻤﺨﺘﻠﻔﺔ.
رﺳﻢ 3.5
55
ﯾﺘﻢ ﺑﻌﺪ ذﻟﻚ ﻋﺮض اﺳﻤﺎء اﻟﻤﻠﻔﺎت اﻟﻔﯿﺰﯾﺎﺋﯿﺔ وال Tablespacesوﻣﻮاﻗﻌﮭﺎ وﻟﺪﯾﻚ اﻟﺨﯿﺎر ﺑﺤﺬف أو اﺿﺎﻓﺔ
ﻣﻠﻔﺎت اﺧﺮى.
رﺳﻢ 3.6
ﻓﻲ اﻟﻤﺮﺣﻠﺔ اﻟﺘﺎﻟﯿﺔ ﯾﺘﻢ اﺧﺘﯿﺎر ﻧﻮﻋﯿﺔ اﻟﺘﻜﻮﯾﻦ ،ھﻞ ﺗﺮﯾﺪ ﺗﻜﻮﯾﻦ Databaseأو ﺗﺮﯾﺪ ﺗﻜﻮﯾﻦ ﻓﻘﻂ ﻗﺎﻟﺐ
" "Templateأو ھﻞ ﺗﺮﯾﺪ ﺗﻜﻮﯾﻦ ﺟﻤﻞ SQL Scriptsاﻟﺘﻲ ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻣﻊ أﻣﺮ
.CREATE DATABASE
رﺳﻢ 3.7
56
:CONFIGURE DATABASE OPTIONS
ﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ ال Databaseاﻟﺘﻲ ﺗﻢ ﺗﻜﻮﯾﻨﮭﺎ ﺳﺎﺑﻘﺎً ﻣﻦ ﻧﺎﺣﯿﺔ ال Oracle Featuresواﻟﺒﯿﺌﺔ اﻟﺘﻲ ﺗﻌﻤﻞ ﻋﻠﯿﮭﺎ
) Shared Serverأو .(Dedicated Server
:DELETE A DATABASE
:MANAGE A TEMPLATE
ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻟﺘﻜﻮﯾﻦ ﻗﺎﻟﺐ " "Templateأو ﻟﺤﺬف ﻗﺎﻟﺐ " "Templateﻣﻮﺟﻮد .ﻋﻨﺪ ﺗﻜﻮﯾﻦ ﻗﺎﻟﺐ
" "Templateﺟﺪﯾﺪ ﯾﻤﻜﻦ اﻻﺧﺘﯿﺎر ﺑﯿﻦ ﺛﻼت ﺧﯿﺎرات ھﻲ:
ﻣﻦ ﻗﺎﻟﺐ " "Templateأﺧﺮ ﻣﻮﺟﻮد ،اذ ﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ ﻣﻮاﺻﻔﺎت اﻟﻘﺎﻟﺐ " "Templateﻟﺼﻨﻊ ﻗﺎﻟﺐ ·
" "Templateﺟﺪﯾﺪ.
ﻣﻦ ﻣﻮاﺻﻔﺎت Databaseﻣﻮﺟﻮدة )ﺗﻢ ﺗﻜﻮﯾﻨﮭﺎ ﺳﺎﺑﻘﺎً( ،اذ ﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ ﻗﺎﻟﺐ ""Template ·
ﻣﺸﺎﺑﮫ ﻟﻤﻮاﺻﻔﺎت ال Databaseوﻟﻜﻦ دون ﻣﻠﻔﺎت ال .Data Files
ﻣﻦ Databaseﻣﻮﺟﻮدة ،اذ ﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ ﻧﺴﺨﺔ ﻣﻄﺎﺑﻘﺔ ل Databaseﻣﻮﺟﻮدة ﻣﻊ ال Data ·
Filesوﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت.
رﺳﻢ 3.8
57
CREATE A DATABASE MANUALLY
ﯾﺠﺪ ﺗﺤﺪﯾﺪ ﻣﺎ ﯾﻌﺮف ﯾﺎﺳﻢ الUNIX ﻋﻠﻰ ﻧﻈﺎم الDatabase اذا ﻛﻨﺖ ﺗﻘﻮم ﺑﺘﻜﻮﯾﻦ ال:ﻣﻼﺣﻈﺔ
: وﻣﻨﮭﺎEnvironmental Variables
. أﺧﺮInstance واﻟﺬي ﯾﺠﺐ ان ﯾﻜﻮن ﻏﯿﺮ ﻣﺘﺸﺎﺑﮫ ﻣﻊ اﺳﻢInstance ﺗﺤﺪد اﺳﻢ ال:ORACLE_SID
58
أﻣﺎ ال اﻟﺮﻣﻮز ال C3،C2 ،C1ﻓﺘﺮﻣﺰ اﻟﻰ ﺟﺰء ﻣﻦ اﻟﻘﺎﻋﺪة ﺗﻢ ﺗﺨﻔﯿﻔﺔ اﻟﻰ رﻣﻮز ﻟﺴﮭﻮﻟﺔ ﻗﺮاءة اﻟﻘﺎﻋﺪة:
ﻣﻼﺣﻈﺔ :2ﻋﻨﺪ ﻋﺪم اﺳﺘﺨﺪام ﻛﻠﻤﺔ ال SIZEﯾﺠﺐ اﺳﺘﺨﺪام ﻛﻠﻤﺔ ال REUSEواﻟﻌﻜﺲ ﺻﺤﯿﺢ.
] :[name of databaseاﺳﻢ ال Databaseاﻟﻤﺮاد ﺗﻜﻮﯾﻨﮫ .ﻓﻲ ﺣﺎل ﻋﺪم ﻛﺘﺎﺑﺘﮫ ﯾﺆﺧﺬ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ·
.DB_NAME
] :[CONTROLFILE REUSEﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻟﻄﻠﺐ اﻋﺎدة اﺳﺘﺨﺪام " "Overwrite ·
ﻣﻠﻔﺎت ال Control Filesاﻟﻤﻌﺮﻓﺔ ﻓﻲ ال Initialization Parameter Fileﻋﻮﺿﺎً ﻋﻦ ﺗﻜﻮﯾﻦ
ﻣﻠﻔﺎت ﺟﺪﯾﺪة.
] :[MAXLOGFILES numberﺗﺤﺪد اﻟﻌﺪد اﻷﻗﺼﻰ ﻟﻤﺠﻤﻮﻋﺎت ال Redo Log Filesاﻟﺘﻲ ·
ﯾﻤﻜﻦ ﺗﻜﻮﯾﻨﮭﺎ ﻓﻲ ال Databaseﻋﻠﻰ ﻣﺪى ﺣﯿﺎة ال ،Databaseاﻟﻌﺪد اﻷدﻧﻰ ھﻮ .2
] :[MAXLOGMEMBERS numberﺗﺤﺪد اﻟﻌﺪد اﻷﻗﺼﻰ ﻟﻤﻠﻔﺎت ال Redo Logﺿﻤﻦ ·
اﻟﻤﺠﻤﻮﻋﺎت.
] :[MAXLOGHISTORY numberﺗﺤﺪد ﻋﺪد ال Archived Log Filesاﻟﺘﻲ ﺗﺴﺨﺪم ﻓﻲ ·
ﻋﻤﻠﯿﺔ ال .Media Recovery
] :[AUTOEXTENDﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً. ·
] :[MAXDATAFILESﺗﺤﺪد اﻟﻌﺪد اﻷﻗﺼﻰ ﻣﻦ ال Data Filesاﻟﺬي ﯾﻤﻜﻦ ﺗﻜﻮﯾﻨﮫ ﻋﻠﻰ ﻣﺪى ·
ﺣﯿﺎة ال .Database
] :[MAXINSTANCESﺗﺤﺪد اﻟﻌﺪد اﻷﻗﺼﻰ ﻣﻦ ال Instancesاﻟﺬﯾﻦ ﯾﺴﺘﻄﯿﻌﻮن اﻟﻌﻤﻞ ﻋﻠﻰ ال ·
Databaseﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ.
] :[CHARACTER SET charﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً. ·
] :[NATIONAL CHARACTER SETﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً. ·
] :[DEFAULT TEMPORARY TABLESPACEﻟﺘﻜﻮﯾﻦ ال Default Temporary ·
Tablespaceاﻟﺘﻲ ﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً ،اذا ﻟﻢ ﺗﺤﺪد ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﻜﻮﯾﻨﮭﺎ ﻟﻠﻤﺴﺘﺨﺪم.
] :[UNDO TABLESPACEﻟﺘﻜﻮﯾﻦ ال Undo Tablespaceاﻟﺘﻲ ﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً. ·
] :[SET TIME_ZONEﺗﺤﺪﯾﺪ وﻗﺖ ال .Database ·
59
:3.1 ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ
وﻟﻜﻦ ﯾﺘﻢ، ﺑﺸﻜﻞ ﯾﺪويDatabase ﺑﻌﺪ اﻻﻧﺘﮭﺎء ﻣﻦ ﺗﻜﻮﯾﻦ الData Dictionary ﻻ ﯾﺘﻜﻮن ال:ﻣﻼﺣﻈﺔ
.V$DATAFILE ﻣﺜﻞ الDynamic Views ﺗﻜﻮﯾﻦ ال
.Database ﯾﺴﮭﻞ ﻋﻤﻠﯿﺔ ﺗﻜﻮﯾﻦ الOracle Managed Files (OMF) ان اﺳﺘﺨﺪام ال:ﺗﺬﻛﺮ
60
DATA DICTIONARY
:BASE TABLESﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﺣﻮل ال Databaseﻓﻲ ال .Base Tablesﺗﻌﺘﺒﺮ أول ·
ﺟﺰء " "Objectﻣﻦ ال Databaseﯾﺘﻢ ﺗﻜﻮﯾﻨﮫ ،و ﯾﺘﻢ ﺗﻜﻮﯾﻨﮭﺎ ﺑﺸﻜﻞ أﺗﻮﻣﺎﺗﯿﻜﻲ ﻣﻦ ﻗﺒﻞ اﻷوراﻛﻞ
ﺑﺎﺳﺘﺨﺪام اﻟﻤﻠﻒ " "Scriptاﻟﻤﺴﻤﻰ ﺑﺎﺳﻢ .sql.bsqﻻ ﯾﺠﺐ ﺗﻌﺪﯾﻞ ال Base Tablesأواﻟﻌﺒﺚ ﺑﮭﺎ
ﻷﻧﮭﺎ ﺿﺮورﯾﺔ ﻟﺘﺸﻐﯿﻞ ال ،Databaseوﻟﻜﻦ ﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ واﺣﺪة ﻓﻘﻂ وھﻲ ال ، AUD$ﻣﻊ اﻟﻌﻠﻢ أﻧﮫ
ﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ال Base Tablesﺑﺸﻜﻞ ﻣﺸﻔﺮ.
ﻣﻌﻠﻮﻣﺎت ﺗﻔﺼﯿﻠﯿﺔ ﺣﻮل ﺟﻤﯿﻊ ﻋﻨﺎﺻﺮ " "Objectsال Databaseﻣﺜﻞ ال Tables, Indexes, ·
Views, Synonyms, Data files, Control Filesوﻏﯿﺮھﺎ.
61
QUERYING DATA DICTIONARY
_ :DBAﺗﺤﺘﻮي ال Viewsﻋﻠﻰ ﺟﻤﯿﻊ ﺑﯿﺎﻧﺎت اﻟﻌﻨﺎﺻﺮ " "Objectsﻓﻲ ال ،Databaseوھﻲ ·
ﺧﺎﺻﺔ ﻟﻞ DBAو ﻛﻞ ﻣﺴﺘﺨﺪم ﻟﺪﯾﮫ ال Privilegesاﻟﻼزﻣﺔ ﻟﻠﺪﺧﻮل اﻟﻰ ﺑﯿﺎﻧﺎﺗﮭﺎ.
_ :ALLﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﺣﻮل ﺟﻤﯿﻊ اﻟﻌﻨﺎﺻﺮ " "Objectsاﻟﺘﻲ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم اﺳﺘﺨﺮاج ·
اﻟﺒﯿﺎﻧﺎت ﻣﻨﮭﺎ ،ﺳﻮاء ﻣﺎ ﻛﺎن ﻣﻨﮭﺎ ﺿﻤﻦ ال Schemaاﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم أو ﻣﺴﺘﺨﺪﻣﯿﻦ أﺧﺮﯾﻦ أو
ال .Public Schema
_ :USERﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﺣﻮل اﻟﻌﻨﺎﺻﺮ " "Objectاﻟﺘﻲ ﯾﻤﻠﻜﮭﺎ اﻟﻤﺴﺘﺨﺪم )أي اﻟﻌﻨﺎﺻﺮ ﻓﻲ ·
ال Schemaاﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم(.
ﯾﻤﻜﻦ ﻣﻌﺮﻓﺔ ﺟﻤﯿﻊ ال Viewsاﻟﻤﺘﻮﻓﺮة ﻓﻲ ال Data Dictionaryﻣﻦ ﺧﻼل اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﺮوﺿﺔ ﻣﻦ ال
.DICTIONARY view
DYNAMIC PERFORMANCE
ﻃﻮال ﻓﺘﺮة ﻋﻤﻞ ال ،Databaseﯾﻘﻮم Oracle Serverﺑﺘﺴﺠﯿﻞ ﺑﯿﺎﻧﺎت ﺣﻮل ﻋﻤﻞ ال Databaseﻓﻲ
اﻟﺬاﻛﺮة ﻋﻠﻰ ﺷﻜﻞ Tablesوﻋﻨﺪ اﻏﻼق ال Databaseأو اﻏﻼق اﻟﺴﯿﺮﻓﺮ ﺗﻀﯿﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺬاﻛﺮة.
ﺗﻌﺘﺒﺮ ال Dynamic Performance Viewﻣﻦ ﺿﻤﻦ ال ،SYS Schemaوھﻲ ﺗﺴﺘﺨﺪم ﺑﺸﻜﻞ اﺳﺎﺳﻲ
ﻟﻤﺮاﻗﺒﺔ ال Databaseوﻻ ﯾﺴﻤﺢ اﻟﻘﯿﺎم ﺑﺄواﻣﺮ ) Data Manipulation Language(DMLﻋﻠﯿﮭﺎ.
62
63
CONTROL FILE
ﯾﻌﺘﺒﺮ Control Fileﺿﺮوري ﺟﺪً ﻟﺘﺸﻐﯿﻞ وﻋﻤﻞ ال ،Databaseﺣﯿﺚ ﺗﺘﻢ ﻗﺮاﺋﺘﮫ ﻣﻦ ﻗﺒﻞ ال Oracle
Serverﻗﺒﻞ ﺑﺪء ﺗﺸﻐﯿﻞ ال ،Databaseاذ ﯾﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﻣﮭﻤﺔ ﺣﻮل ال Databaseﻣﺜﻞ اﺳﻤﺎء
وﻣﻮاﻗﻊ ﻣﻠﻔﺎت ال .Data Filesﺗﺘﻢ ﺗﻐﯿﺮ ﺑﯿﺎﻧﺎﺗﮫ أو ﺗﺠﺪﯾﺪھﺎ " "Updateﻋﺒﺮ ال Oracle Serverﻓﻘﻂ ،
اذ ﻻ ﯾﺴﺘﻄﯿﻊ أي ﻣﺴﺘﺨﺪم أو ال DBAاﻟﻘﯿﺎم ﺑﮭﺬه اﻟﻤﮭﻤﺔ.
ﯾﺘﻢ ﺗﻜﻮﯾﻦ ال Control Fileﺑﻌﺪ ﺗﻜﻮﯾﻦ ال Databaseﻣﺒﺎﺷﺮة وﻻ ﯾﺴﺘﻄﯿﻊ ال Control Fileاﻟﻮاﺣﺪ
اﻟﻌﻤﻞ ﻋﻠﻰ أﻛﺜﺮ ﻣﻦ Databaseواﺣﺪة ،وﯾﻠﺰم Control Fileواﺣﺪ ﻓﻘﻂ ﻋﻠﻰ اﻷﻗﻞ ﻟﺘﺸﻐﯿﻞ ال Database
ﻣﻼﺣﻈﺔ :ﺗﺴﻤﻰ ﻋﻤﻠﯿﺔ ﺗﻜﻮﯾﻦ أﻛﺜﺮ ﻣﻦ ﻧﺴﺨﺔ ﻣﺘﻄﺎﺑﻘﺔ ﻣﻦ ﻣﻠﻔﺎت ال ) Control Filesﯾﻨﻄﺒﻖ اﻟﺤﺎل ﻋﻠﻰ ال
Redo Logاﯾﻀﺎ( ﺑﻌﻤﻠﯿﺔ ال ، Multiplexوﯾﻔﻀﻞ ﺗﻮزﯾﻌﮭﺎ ﻋﻠﻰ ﻣﻮاﻗﻊ أو اﻗﺮاص ﺻﻠﺒﺔ ﻣﺨﺘﻠﻔﺔ.
MAXLOGFILES ·
MAXLOGMEMBERS ·
MAXLOGHISTORY ·
MAXINSTANCES ·
MAXDATAFILES ·
64
MULTIPLEXING CONTROL FILES
ﻟﻠﺤﻤﺎﯾﺔ ﻣﻦ أﯾﺔ ﺧﻠﻞ ﻗﺪ ﯾﺤﺪث ﻟﻞ Databaseﻧﺘﯿﺠﺔ ﺗﻌﻄﻞ ال Control Fileﯾﻨﺼﺢ ﺑﺸﺪة ﺑﺎﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ ال
Multiplexﻟﻞ Control Fileﺑﯿﺤﺚ ﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﻨﺴﺦ اﻟﻤﺘﻄﺎﺑﻘﺔ ﻓﻲ ﻣﻮاﻗﻊ ﺗﺨﺰﯾﻦ ﻣﺨﺘﻠﻔﺔ ﻟﻜﻲ ﯾﺘﺴﻨﻰ
اﺳﺘﻌﺎدة Control Fileﻓﻲ ﺣﺎل ﺗﻌﻄﻠﮫ أو ﺿﯿﺎع ﺑﯿﺎﻧﺎﺗﮫ.
ﻟﻠﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ ال Multiplesﯾﺠﺐ اﺳﺘﺨﺪام إﻣﺎ ال SPFILEأو ال . init.ora
ﻧﺴﺦ ﻣﻠﻒ ال Control Fileاﻟﻰ اﻟﻤﻮاﻗﻊ اﻟﺘﻲ ﺣﺪدت ﺑﺎﻟﻨﻘﻄﺔ اﻷوﻟﻰ )اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ اﻟﻨﺴﺦ ﻛﻤﺎ ﻓﻲ ·
ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ،اي ﻓﻲ اﻟﻮﯾﻨﺪوز ﯾﺴﺘﺨﺪم اﻟﻔﺄرة ﻣﻊ COPYو .(PASTE
ﻧﺴﺦ ﻣﻠﻒ ال Control Fileاﻟﻰ اﻟﻤﻮاﻗﻊ اﻟﺠﺪﯾﺪة اﻟﺘﻲ ﺳﻮف ﺗﺤﺪد ﻓﻲ اﻟﻨﻘﻄﺔ اﻟﺜﺎﻟﺜﺔ. ·
65
.( ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻟﻼﺧﺘﺼﺎر ﻓﻘﻂ...) اﺳﺘﺨﺪام اﻟﺜﻼث ﻧﻘﺎط:ﻣﻼﺣﻈﺔ
:USING OMF
ﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ ال.Oracle Managed Files ﺑﺎﺳﺘﺨﺪام الControl File ﯾﻤﻜﻦ ﺗﺴﮭﯿﻞ إدارة ﻣﻠﻔﺎت ال
اذا ﻟﻢ ﯾﺘﻢ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻞDatabase ﺑﺸﻜﻞ أﺗﻮﻣﺎﺗﯿﻜﻲ ﻋﻨﺪ ﺗﻜﻮﯾﻦ الOMF ﻃﺒﻘﺎً ﻟﻄﺮﯾﻘﺔ الControl Files
وﺗﻢ ﺗﺤﺪﯾﺪInitialization Parameter Files ﻓﻲ الCONTROL_FILES "Parameter"
.DB_CREATE_ONLINE_LOG_DEST_n OMF " الParameters" ﻋﺎﻣﻞ
ﻓﻲ الControl File ﯾﺠﺐ ﺗﺴﺠﯿﻞ اﺳﻢ وﻣﻮﻗﻊ الOMF ﺑﻄﺮﯾﻘﺔ الControl File ﺑﻌﺪ ﺗﻜﻮﯾﻦ ال
. ﻓﺈن اﻻﺳﻤﺎء ﺗﺴﺠﻞ ﺑﺸﻜﻞ اﺗﻮﻣﺎﺗﯿﻜﻲSPFILE اﻣﺎ اذا ﻛﻨﺖ ﺗﺴﺘﺨﺪم ال، PFILE
Control Files ﯾﻤﻜﻦ اﺳﺘﺨﺪام ھﺬه ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻮاﻗﻊ واﺳﻤﺎء ال:SHOW PARAMTER ·
.alertSID.log ﺑﻌﺪ ﺗﻜﻮﯾﻨﮭﺎ ﻣﻦ ﻣﻠﻒ الControl Files ﯾﻤﻜﻦ اﻟﺤﺼﻮل اﯾﻀﺎً ﻋﻠﻰ اﺳﻤﺎء ال:ﻣﻼﺣﻈﺔ
66
REDO LOG FILES
ﺗﻌﺘﺒﺮ ﻣﻠﻔﺎت ال Redo Logﺿﺮورﯾﺔ ﺟﺪاً ﻟﻌﻤﻞ ال ، Databaseاذ ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻛﻞ ﻣﺎ ﺟﺮى وﯾﺠﺮي ﻋﻠﻰ
اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺗﻐﯿﺮات ﻟﻜﻲ ﯾﺘﻢ اﺳﺘﻌﺎدة اﻟﺒﯿﺎﻧﺎت " "Recoveryﻓﻲ ﺣﺎﻟﺔ ﺣﺪوث ﺿﯿﺎع ﻟﻠﺒﯿﺎﻧﺎت ﻋﻨﺪ ﺣﺪوث ﻋﻄﻞ
ﻣﻔﺎﺟﺊ .ﺗﻨﻘﺴﻢ ﻣﻠﻔﺎت ال Redo Logاﻟﻰ ﻣﺠﻤﻮﻋﺎت " "Groupsﻛﻞ ﻣﺠﻤﻮﻋﺔ ﺗﺤﻮي أﻋﻀﺎء
" ،"Membersو اﻷﻋﻀﺎء " "Membersﺿﻤﻦ اﻟﻤﺠﻤﻮﻋﺔ اﻟﻮاﺣﺪة ﻋﺒﺎرة ﻋﻦ ﻧﺴﺦ ﻣﺘﻄﺎﺑﻘﺔ
" "Copiesﺗﺤﻮي ﻋﻠﻰ ﻧﻔﺲ اﻟﺒﯿﺎﻧﺎت وﯾﺘﻢ ﻧﻘﻞ اﻟﺒﯿﺎﻧﺎت ﻟﮭﺎ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ.
ﯾﺘﻄﻠﺐ اﻷوراﻛﻞ ﻋﻠﻰ اﻷﻗﻞ ﻣﺠﻤﻮﻋﺘﯿﻦ ﻣﻦ ﻣﺠﻤﻮﻋﺎت ال Redo Log Filesوﻛﻞ ﻋﻀﻮ " "Memberﺿﻤﻦ
اﻟﻤﺠﻤﻮﻋﺔ ﯾﻜﻮن ﻟﮫ ﻧﻔﺲ اﻟﺤﺠﻢ وذات ال .Log Sequence Number
ﯾﻘﻮم اﻷوراﻛﻞ ﺑﻮاﺳﻄﺔ ال LGWRﺑﻨﻘﻞ ﺑﯿﺎﻧﺎت ال Redo Log Bufferاﻟﻰ ال Redo Log Filesﺣﯿﺚ
ﺗﺘﻢ اﻟﻜﺘﺎﺑﺔ ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ واﺣﺪة ﻓﻘﻂ وﻋﻨﺪﻣﺎ ﺗﻤﺘﻠﺊ اﻟﻤﺠﻤﻮﻋﺔ اﻷوﻟﻰ ﯾﻘﻮم ال LGWRﺑﻜﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت ﻓﻲ
اﻟﻤﺠﻤﻮﻋﺔ اﻟﺜﺎﻧﯿﺔ وﺑﻌﺪ إﻣﺘﻼء اﻟﻤﺠﻤﻮﻋﺔ اﻷﺧﯿﺮة ﯾﻌﻮد ال LGWRﺑﺎﻟﻜﺘﺎﺑﺔ ﻓﻲ اﻟﻤﺠﻤﻮﻋﺔ اﻷوﻟﻰ ،وﺗﺴﻤﻰ
ھﺬه اﻟﻌﻤﻠﯿﺔ ﺑﺎل Log Switchوﺗﺴﻤﻰ اﻟﻤﺠﻤﻮﻋﺔ اﻟﺘﻲ ﯾﺘﻢ ﻧﻘﻞ اﻟﺒﯿﺎﻧﺎت ﻟﮭﺎ ﺑﺎﺳﻢ اﻟﻤﺠﻤﻮﻋﺔ اﻟﺤﺎﻟﯿﺔ أو
"."Current Online Redo Log Group
ﺗﺬﻛﺮ :ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﺣﻮل ال Log Switchﻓﻲ ال .Alert Log File
رﺳﻢ 4.1
ﻛﻞ ﻣﺠﻤﻮﻋﺔ Redo Log Fileﻣﻌﺮﻓﺔ ﺑﺮﻗﻢ ﻣﻤﯿﺰ ﯾﺴﻤﻰ Log Sequence Numberﯾﻤﻨﺤﮫ اﻷوراﻛﻞ ﻟﻜﻞ
ﻣﺠﻤﻮﻋﺔ ﻋﻨﺪ ﺑﺪاﯾﺔ ﻛﺘﺎﺑﺔ اﻟﺒﯿﺎﻧﺎت ﺑﮭﺎ ﺣﯿﺚ ﯾﺘﻢ ﺗﺠﺪﯾﺪ اﻟﺮﻗﻢ " "Overwrittenﻛﻞ ﻣﺮة ﯾﺘﻢ إﻋﺎدة اﺳﺘﺨﺪام
اﻟﻤﺠﻤﻮﻋﺔ.
67
Alert Log File ·
:Checkpoint
ﺗﻌﺮﺿﻨﺎ ﻟﻞ Checkpointﻓﻲ اﻟﻔﺼﻞ اﻷول وذﻛﺮﻧﺎ اﻧﮫ ﯾﻘﻮم ﺑﻜﺘﺎﺑﺔ ال Log Sequence Numberﻓﻲ ال
.Control Fileوﻧﺘﻄﺮق ﻟﻞ Checkpointﻣﺮة أﺧﺮى ﻷن اﻟﻌﻼﻗﺔ ﺑﯿﻦ ال Checkpointوال Log
Switchﻣﺘﺰاﻣﻨﺔ ﺑﺤﯿﺚ ﻋﻨﺪ ﺣﻮدث ال Log Switchﺗﺤﺪث ﻋﻤﻠﯿﺔ ال .Checkpointوﯾﻘﻮم ال Alert
Log Fileﺑﺘﺨﺰﯾﻦ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ال Checkpointﻛﻤﺎ ﯾﻘﻮم ﺑﺬﻟﻚ ﻣﻊ ال Log Switchوﻟﻜﻦ ﯾﺠﺐ وﺿﻊ
اﻟﻌﺎﻣﻞ " "Parameterاﻟﺘﺎﻟﻲ LOG_CHECKPONT_TO_ALERTﻓﻲ ﺣﺎﻟﺔ Trueﻋﻜﺲ اﻟﺤﺎﻟﺔ
اﻹﻓﺘﺮاﺿﯿﺔ " "Defaultوھﻲ .False
ﻋﻨﺪﻣﺎ ﻃﻠﺐ ال DBAﯾﻤﻜﻦ اﻟﻘﯿﺎم ﺑﮭﺎ ﺑﻜﺘﺎﺑﺔ ﺟﻤﻠﺔ SQLﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل .4.1 ·
ﯾﺪل ﻋﻠﻰ ﻋﻤﻠﯿﺔ ال Recoveryﯾﺠﺐ أن ﻻ ﯾﺰﯾﺪ وﻗﺘﮭﺎ ﻋﻦ 400ﺛﺎﻧﯿﺔ ﺣﯿﺚ أن ﻣﻦ ﺿﻤﻦ ﻋﻤﻠﯿﺔ ال
Recoveryﻋﻤﻠﯿﺔ ال Checkpointوﻋﻤﻠﯿﺔ ال .Log Switch
68
MAINTAINING REDO LOG FILES
ﺳﻮف ﻧﺘﻄﺮق اﻟﻰ ﻋﺪد ﻣﻦ اﻟﻤﮭﺎم اﻟﺘﻲ ﯾﻤﻜﻦ اﺟﺮاﺋﮭﺎ ﻟﻞ Redo Log Filesﻟﺤﻤﺎﯾﺘﮭﺎ أو ﻟﺘﻌﺪﯾﻠﮭﺎ.
:MULTIPLEXING
ﻟﺤﻤﺎﯾﺔ ال Databaseﯾﺠﺐ اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ ال Multiplexﻋﻠﻰ ال ، Redo Log Filesﺑﺤﯿﺚ ﯾﻘﻮم ال
LGWRﺑﻜﺘﺎﺑﺔ ذات اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﻟﻨﺴﺦ اﻟﻤﺘﺸﺎﺑﮫ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ .ﻛﻞ اﻟﻨﺴﺦ اﻟﻤﺘﺸﺎﺑﮫ ﺗﻜﻮن ﺿﻤﻦ ﻣﺠﻤﻮﻋﺔ
" "Groupو ﯾﻄﻠﻖ ﻋﻠﻰ اﻟﻨﺴﺦ اﻟﻤﺘﺸﺎﺑﮫ اﺳﻢ .Membersﯾﻔﻀﻞ ﻓﺼﻞ اﻟﻨﺴﺦ اﻟﻤﺘﺸﺎﺑﮫ ﻋﻦ ﺑﻌﺾ واﺑﻘﺎﺋﮭﺎ
ﻓﻲ ﻣﻮﻗﻊ ﻣﺨﺘﻠﻒ أو ﻋﻠﻰ ﻗﺮص ﺻﻠﺐ ﻣﺨﺘﻠﻒ )أو أي وﺳﯿﻠﺔ ﻟﺤﻔﻆ اﻟﺒﯿﺎﻧﺎت( ﻛﻤﺎ ﻓﻲ اﻟﺮﺳﻢ 4.1ﯾﻈﮭﺮأن
اﻷﻋﻀﺎء ) (Member1 , Member2ﻓﻲ ذات اﻟﻤﺠﻤﻮﻋﺔ ﻋﻠﻰ ﻗﺮﺻﯿﻦ ﻣﺨﺘﻠﻔﯿﻦ ).(Disk1, Disk2
ﻓﻲ ﺣﺎل ﻋﺪم ﺗﻮﻓﺮ أي ﻋﻀﻮ " "Memberﻣﻦ أي ﻣﺠﻤﻮﻋﺔ ﻟﻨﻘﻞ اﻟﺒﯿﺎﻧﺎت إﻟﯿﮫ ﯾﺘﻢ اﻏﻼق ال Database
وﺗﺒﺪأ ﻋﻤﻠﯿﺔ Recoveryﻟﻞ .Instance
ﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ أﻛﺜﺮ ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻣﺠﻤﻮﻋﺎت ال Redo Log Filesﻋﻨﺪ ﺗﻜﻮﯾﻦ ال Databaseأو ﯾﻤﻜﻦ
اﺿﺎﻓﺔ ﻣﺠﻤﻮﻋﺔ أﺧﺮى ﻻﺣﻘﺎً.
ﯾﻨﺼﺢ ﺑﺘﻔﺮﯾﻖ اﻷﻋﻀﺎء ﺿﻤﻦ اﻟﻤﺠﻤﻮﻋﺔ اﻟﻮاﺣﺪة اﻟﻰ ﻣﻮاﻗﻊ أو اﻗﺮاص ﺻﻠﺒﺔ ﻣﺨﺘﻠﻔﺔ ،ﻟﻜﻲ ﻻ ﯾﺤﺪث ·
أﻏﻼق ﻟﻞ Databaseﻓﻲ ﺣﺎل ﺗﻌﻄﻞ اﻟﻘﺮص اﻟﺼﻠﺐ اﻟﺬي ﯾﺤﻮي اﻟﻤﻠﻔﺎت.
ﯾﻨﺼﺢ ﺑﺘﻔﺮﯾﻖ ال Online Redo Log Filesﻋﻦ ال Archived Log Filesاﻟﻰ أﻗﺮاص ·
ﻣﺨﺘﻠﻔﺔ أو ﻣﻮاﻗﻊ ﻣﺨﺘﻠﻔﺔ ﻟﻜﻲ ﻻ ﯾﺤﺪث ﺗﺪاﺧﻞ ﺑﯿﻦ ﻋﻤﻞ ال LGWRو ال .ARCn
ﯾﻨﺼﺢ ﺑﺘﻔﺮﯾﻖ ﻣﻠﻔﺎت ال Redo Logو ﻣﻠﻔﺎت ال Data Filesاﻟﻰ ﻣﻮاﻗﻊ أو اﻗﺮاص ﻣﺨﺘﻠﻔﺔ ،ﻟﻜﻲ ·
ﻻ ﯾﺤﺪث ﺗﺪاﺧﻞ ﺑﯿﻦ ال DBWnوال .LGWR
أﺻﻐﺮ ﺣﺠﻢ ﯾﻤﻜﻦ ان ﯾﻜﻮن ﻋﻠﯿﺔ ال Redo Log Fileھﻮ ، 50 KBأﻣﺎ اﻛﺒﺮ ﺣﺠﻢ ھﻮ أﻛﺒﺮ ﺣﺠﻢ ﯾﺴﻤﺢ ﺑﮫ
ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ )ﻣﺜﻞ وﯾﻨﺪوز أو .(UNIX
ﯾﻤﻜﻦ ﻟﻞ DBAﺗﺤﺪﯾﺪ ﺣﺠﻢ ال Redo Log Filesﺑﺎﻷﺧﺬ ﺑﺎﻟﻤﻌﻄﯿﺎت اﻟﺘﺎﻟﯿﺔ:
اﻟﺤﺠﻢ اﻟﻤﺘﻮﻗﻊ ﻟﻞ Redo Entriesواﻟﺬي ﯾﻌﺘﻤﺪ ﻋﻠﻰ اﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﺗﺠﺮي ﻋﻠﻰ ال Database ·
واﻟﺘﻲ ﺗﺆدي اﻟﻰ ﺗﻐﯿﯿﺮ اﻟﺒﯿﺎﻧﺎت.
69
:ADDING ONLINE GROUP
ﻓﻲ ﺣﺎل وﺟﺪ ال DBAأن ال Databaseﺑﺤﺎﺟﺔ اﻟﻰ ﻣﺠﻤﻮﻋﺔ ﺟﺪﯾﺪة ،ﯾﻤﻜﻦ ﺗﻜﻮﯾﻨﮭﺎ ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل :4.2
ﻓﻲ ﺣﺎﻟﺔ وﺟﻮد اﺳﻢ اﻟﻌﻀﻮ ﻋﻠﻰ اﻟﺠﮭﺎز وﺑﻨﻔﺲ اﻟﺤﺠﻢ )أي اﻟﻤﻠﻒ ﻣﻮﺟﻮد ﻣﺴﺒﻘﺎً( ﯾﺠﺐ اﺳﺘﺨﺪام ﻛﻠﻤﺔ
REUSEاﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ اﻟﻰ اﻟﺠﻤﻠﺔ اﻷﺧﯿﺮة ﻓﻠﺪﯾﻚ ﺧﯿﺎران إﻣﺎ أن ﺗﺬﻛﺮ رﻗﻢ اﻟﻤﺠﻤﻮﻋﺔ أو اﺳﻤﺎء اﻷﻋﻀﺎء
اﻟﺤﺎﻟﯿﯿﻦ ﻓﻲ اﻟﻤﺠﻤﻮﻋﺔ اﻟﺘﻲ ﺗﺮﯾﺪ اﺿﺎﻓﺔ ﻋﻀﻮ ﺟﺪﯾﺪ ﻟﮭﺎ.
70
:DROPPING ONLINE LOG GROUP
اذا أردت زﯾﺎدة ﺣﺠﻢ أﺣﺪى ﻣﺠﻤﻮﻋﺎت ال Redo Logﯾﻤﻜﻦ ازاﻟﺔ اﻟﻤﺠﻤﻮﻋﺔ وﺗﻜﻮﯾﻦ ﻣﺠﻤﻮﻋﺔ ﺟﺪﯾﺪة ﺑﺤﺠﻢ
أﻛﺒﺮ ،ﺣﯿﺚ ﺗﺴﺘﻄﯿﻊ ازاﻟﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻣﺠﻤﻮﻋﺎت ال Redo Logﺑﺎﺗﺒﺎع اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ:
ﯾﺠﺐ أن ﻻ ﺗﻜﻮن اﻟﻤﺠﻤﻮﻋﺔ اﻟﻤﺰاﻟﺔ ھﻲ اﻟﻤﺠﻤﻮﻋﺔ اﻟﺤﺎﻟﯿﺔ " "Currentأو ان ﺗﻜﻮن ﻓﻲ وﺿﻌﯿﺔ Activeﺑﻞ
ﯾﺠﺐ أن ﺗﻜﻮن ﻓﻲ وﺿﻌﯿﺔ .Inactiveﻻ ﯾﺴﻤﺢ اﻷوراﻛﻞ ﺑﺤﺬف اﻟﻤﺠﻤﻮﻋﺔ اذا ﻛﺎن ذﻟﻚ ﺳﻮف ﯾﺆدي اﻟﻰ ﺑﻘﺎء
ﻣﺠﻤﻮﻋﺔ واﺣﺪة ﻓﻘﻂ ،اذ أن اﻷوراﻛﻞ ﯾﺤﺘﺎج ﻋﻠﻰ اﻷﻗﻞ اﻟﻰ ﻣﺠﻤﻮﻋﺘﯿﻦ ﻣﻦ ﻣﺠﻤﻮﻋﺎت ال .Redo Log Files
ﺑﺎﺗﺒﺎع اﻟﻘﺎﻋﺪة اﻟﺴﺎﺑﻘﺔ ﯾﻤﻜﻦ ﺣﺬف اﻟﻤﺠﻤﻮﻋﺔ ﻣﻦ ﺗﻌﺮﯾﻒ اﻷوراﻛﻞ ﻓﻘﻂ ،اﻣﺎ ﻣﻠﻔﺎت ال Redo Logاﻟﺤﻘﯿﻘﯿﺔ
اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻤﻮﻗﻊ اﻟﻤﺤﺪد )ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل :4.3ﻣﻠﻒ (log14.logﻻ ﺗﻤﺴﺢ وﯾﺠﺐ ﺣﺬﻓﮭﺎ ﺑﻄﺮﯾﻘﺔ ﯾﺪوﯾﺔ
)ﻛﻤﺎ ﻓﻲ أواﻣﺮ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ،ﻓﻲ اﻟﻮﯾﻨﺪوز اﺳﺘﺨﺪم أﻣﺮ .(Delete
ﯾﻤﻜﻦ أﯾﻀﺎ ﺗﺤﻮﯾﻞ ﺣﺎﻟﺔ ال Redo Log Fileاﻟﻰ ﺣﺎﻟﺔ ال Inactiveﺑﻮاﺳﻄﺔ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ:
ﺳﻮف ﻧﺘﻄﺮق اﻟﻰ اﻟﺤﻼت اﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﻜﻮن ﻋﻠﯿﮭﺎ اﻟﻤﺠﻤﻮﻋﺔ أو اﻟﻌﻀﻮ ﺑﻌﺪ ﻗﻠﯿﻞ.
ﻛﻤﺎ ﯾﻤﻜﻦ ﺣﺬف ﻣﺠﻤﻮﻋﺔ ﯾﻤﻜﻦ ﺣﺬف ﻋﻀﻮ )أو أﻛﺜﺮ( ﻣﻦ اﻟﻤﺠﻤﻮﻋﺔ وﻟﻜﻦ ﯾﺠﺐ أن ﯾﺒﻘﻰ ﻋﻠﻰ اﻷﻗﻞ ﻋﻀﻮ ﻓﻌﺎل
" "Validﻓﻲ اﻟﻤﺠﻤﻮﻋﺔ وإﻻ ﻓﺈن أوراﻛﻞ ﻟﻦ ﯾﺴﻤﺢ ﺑﻌﻤﻠﯿﺔ اﻟﺤﺬف .ﻛﻤﺎ ﻓﻲ ﺣﺬف اﻟﻤﺠﻤﻮﻋﺔ ﯾﺠﺐ أن ﻻ ﯾﻜﻮن
اﻟﻌﻀﻮ ھﻮ اﻟﻌﻀﻮ اﻟﺤﺎﻟﻲ " "Currentو اﻟﻤﻠﻔﺎت اﻟﻔﯿﺰﯾﺎﺋﯿﺔ ﻻ ﺗﺤﺬف ﻣﻦ ﻣﻜﺎن ﺗﻮاﺟﺪھﺎ .ﯾﻮﺟﺪ ﺣﺎﻟﺔ أﺧﺮى ﻻ
ﯾﺴﻤﺢ اﻷوراﻛﻞ ﺑﺤﺬف اﻟﻌﻀﻮ ،ذﻟﻚ ﻋﻨﺪﻣﺎ ﯾﻜﻮن ال Databaseﻓﻲ ﺣﺎﻟﺔ ال Archivelogوﻟﻢ ﯾﺘﻢ ﻋﻤﻞ
Archiveﻟﻠﻤﺠﻮﻋﺔ اﻟﺘﻲ ﯾﻨﺘﻤﻰ ﻟﮭﺎ اﻟﻌﻀﻮ.
71
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :4.5
اذا ﻛﻨﺖ ﺗﺮﯾﺪ ﻧﻘﻞ ﻋﻀﻮ" "Memberﻣﻦ ﻣﻮﻗﻊ اﻟﻰ أﺧﺮ أو ﺗﺮﯾﺪ ﺗﻐﯿﯿﺮ اﺳﻢ اﻟﻌﻀﻮ ﯾﺠﺐ اﺗﺒﺎع اﻟﺘﺎﻟﻲ:
ﻗﻢ ﺑﺘﺸﻐﯿﻞ ال Databaseوﻗﻢ ﺑﻌﻤﻠﯿﺔ Backupﻟﻞ Control Fileﻋﻠﻰ اﻋﺘﺒﺎر أن ﻣﺤﺘﻮﯾﺎﺗﮫ ·
ﺗﻐﯿﺮت.
ﻓﻲ ﺣﺎل ﺣﺪوث ﻓﺴﺎد ﻟﻠﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة داﺧﻞ ﻣﻠﻔﺎت ال Redo Logﯾﻤﻜﻦ ﺗﻨﻈﯿﻒ اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام اﻟﻘﺎﻋﺪة
اﻟﺘﺎﻟﯿﺔ:
ﯾﻤﻜﻦ اﻟﻌﺪول ﻋﻦ ﻋﻤﻠﯿﺔ ﺣﺬف ﺛﻢ اﺿﺎﻓﺔ ﻣﻠﻒ Redo Logﺑﺎﻟﻘﯿﺎم ﺑﺘﻨﻈﯿﻒ ﻣﺤﺘﻮﯾﺎت اﻟﻤﻠﻒ ﻟﻤﺎ ﺗﻮﻓﺮه اﻟﻌﻤﻠﯿﺔ
ﻣﻦ ﺗﺴﮭﯿﻼت ،اذ ﯾﻤﻜﻦ ﺗﻨﻈﯿﻒ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻣﺠﻤﻮﻋﺎت ال Redo Logﺣﺘﻰ وﻟﻮ وﺟﺪ ﻣﺠﻤﻮﻋﺘﯿﯿﻦ ﻓﻘﻂ
وﺑﺪاﺧﻞ ﻛﻞ ﻣﺠﻤﻮﻋﺔ ﻋﻀﻮ واﺣﺪ ﻓﻘﻂ ،وﯾﻤﻜﻦ ﺗﻨﻈﯿﻒ اﻟﻤﺠﻤﻮﻋﺔ اذا ﻛﺎﻧﺖ ال Databaseﻓﻲ ﺣﺎﻟﺔ ال
Archivelogوﻟﻢ ﯾﺤﺪث ﻋﻤﻠﯿﺔ Archiveﻟﻠﻤﺠﻤﻮﻋﺔ وﻟﻜﻦ ﯾﺠﺐ اﺳﺘﺨﺪام ﻛﻠﻤﺔ UNARCHIVEDﻓﻲ
اﻟﻘﺎﻋﺪة.
72
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :4.6
أو ﺑﺬﻛﺮ اﺳﻤﺎء أﻋﻀﺎء اﻟﻤﺠﻤﻮﻋﺔ ﻋﻮﺿﺎً ﻋﻦ اﻟﻤﺠﻤﻮﻋﺔ ورﻗﻤﮭﺎ ﻛﻤﺎ ﺟﺎء ﺳﺎﺑﻘﺎً.
:USING OMF
ﻟﺘﺴﮭﯿﻞ ﻋﻤﻠﯿﺔ ادارة ال Redo Log Filesﯾﻨﺼﺢ ﺑﺎﺳﺘﺨﺪام ال OMFاﻟﺘﻲ ﺟﺎء ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎً .ﺑﻮاﺳﻄﺔ ال
OMFﺗﻜﻮﯾﻦ ﻋﻤﻠﯿﺔ ﺗﻜﻮﯾﻦ ﻣﺠﻤﻮﻋﺔ ﺟﺪﯾﺪة أو ﺣﺬف ﻣﺠﻤﻮﻋﺔ أﺳﮭﻞ و ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺤﺬف اﻟﻤﻠﻔﺎت
اﻟﻔﯿﺰﯾﺎﺋﯿﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ ﻣﻮﻗﻊ اﻟﺘﺨﺰﯾﻦ ﺑﺸﻜﻞ أﺗﻮﺗﻮﻣﺎﺗﯿﻜﻲ ﻋﻨﺪ ﺣﺬف أي ﻣﺠﻤﻮﻋﺔ.
ﻻﺳﺘﺨﺪام ﻃﺮﯾﻘﺔ ال ، OMFﯾﺠﺐ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻞ DB_CREATE_ONLINE_LOG_DEST_nﻓﻲ
ال Initialization Parameter Fileوﻟﻠﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ ال Multiplexﻋﻠﻰ ال Redo Log Filesﯾﺠﺐ
اﺳﺘﺒﺪال ال nﻓﻲ اﻟﻌﺎﻣﻞ " " Parameterﺑﺮﻗﻢ ﻣﻦ 1اﻟﻰ .5
ﺣﯿﺚ ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﺤﺪﯾﺪ رﻗﻢ اﻟﻤﺠﻤﻮﻋﺔ واﺧﺘﯿﺎر اﺳﻤﺎء اﻷﻋﻀﺎء أوﺗﻮﻣﺎﺗﯿﻜﯿﺎً.
'DB_CREATE_ONLINE_LOG_DEST_1 = '…\oradata\db01
'DB_CREATE_ONLINE_LOG_DEST_2 = '…\oradata\db02
'DB_CREATE_ONLINE_LOG_DEST_3 = '…\oradata\db03
73
:QUERYING LOG FILE INFORMATION
V$LOG ·
V$LOGFILE ·
:V$LOG
ﺗﺤﺘﻮى ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﺣﻮل اﻟﻤﺠﻤﻮﻋﺎت وأﺣﺠﺎﻣﮭﺎ واﻟﺤﺎﻟﺔ اﻟﺘﻲ ھﻲ ﻓﯿﮭﺎ ،ﯾﻮﺟﺪ 7ﺣﺎﻻت ﯾﻤﻜﻦ أن ﺗﺘﻮاﺟﺪ ﻓﯿﮭﺎ
اﻟﻤﺠﻤﻮﻋﺔ وھﻢ:
:UNUSEDﺗﺪل ﻋﻠﻰ أن اﻟﻤﺠﻤﻮﻋﺔ ﻟﻢ ﺗﺴﺘﺨﺪم ﻋﻠﻰ اﻷﻃﻼق ﻓﻲ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ،ﻏﺎﻟﺒﺎً ﻣﺎ ﯾﻜﻮن ·
ھﺬا اﻟﻨﻮع ﻟﻠﻤﺠﻤﻮﻋﺎت اﻟﻤﻀﺎﻓﺔ ﺣﺪﯾﺜﺎً.
:CURRENTﺗﺪل ﻋﻠﻰ اﻟﻤﺠﻤﻮﻋﺔ اﻟﺤﺎﻟﯿﺔ اﻟﺘﻲ ﯾﺴﺘﺨﺪﻣﮭﺎ ال LGWRﻓﻲ ﻧﻘﻞ ﺑﯿﺎﻧﺎت ال Redo ·
.Log Buffer
:ACTIVEﺗﺪل ﻋﻠﻰ أن اﻟﻤﺠﻤﻮﻋﺔ ﺟﺎھﺰة ﻟﻌﻤﻠﯿﺔ ال .Recovery ·
:CLEARINGﺗﺪل أن اﻟﻤﺠﻤﻮﻋﺔ ﻓﻲ ﺣﺎﻟﺔ ﺗﻨﻈﯿﻒ ﻟﺒﯿﺎﻧﺎﺗﮭﺎ ﺑﻌﺪﻣﺎ ﻃﻠﺐ ال DBAذﻟﻚ ﺑﻮاﺳﻄﺔ ·
ﺟﻤﻠﺔ ال SQLاﻟﺘﻲ ﺗﻄﺮﻗﻨﺎ ﻟﮭﺎ ﻗﺒﻞ ﻗﻠﯿﻞ وﺑﻌﺪ ان ﺗﻨﻈﻒ اﻟﻤﺠﻤﻮﻋﺔ ﺗﺘﺤﻮل اﻟﺤﺎﻟﺔ اﻟﻰ .UNUSED
:CLEARING_CURRENTﺗﺪل أن اﻟﻤﺠﻤﻮﻋﺔ ﺗﻢ ﺗﻨﻈﯿﻔﮭﺎ ﺑﻌﺪ ﻃﻠﺐ ﺟﻤﻠﺔ ال .SQL ·
:INACTIVEﺗﺪل ﻋﻠﻰ أن ال Databaseﻟﯿﺲ ﺑﺤﺎﺟﺔ اﻟﻰ اﻟﻤﺠﻤﻮﻋﺔ وﻻ ﺗﻠﺰم ﻓﻲ ﻋﻤﻠﯿﺔ ال ·
، Recoveryوھﺬا ھﻮ اﻟﻨﻮع اﻟﺬي ﯾﻤﻜﻦ ﺣﺬف.
:V$LOGFILE
ﺗﺤﺘﻮى ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﺣﻮل أﻋﻀﺎء اﻟﻤﺠﻤﻮﻋﺎت .ﯾﻮﺟﺪ 4ﺣﺎﻻت ﯾﻤﻜﻦ أن ﯾﺘﻮاﺟﺪ ﻓﯿﮭﺎ اﻟﻌﻀﻮ وھﻢ:
74
ARCHIVED LOG FILES
ﻣﻦ أھﻢ اﻷﻣﻮر اﻟﺘﻲ ﯾﺠﺐ ﺗﺤﺪﯾﺪھﺎ ﻣﻦ ﻗﺒﻞ ال DBAھﻮ ﻗﺮار وﺿﻊ ال Databaseﻓﻲ وﺿﻌﯿﺔ ال
Archivelogأو .Noarchivelogﺗﻮﺟﺪ ال Databaseﻓﻲ اﻟﺤﺎﻟﺔ اﻷﻓﺘﺮاﺿﯿﺔ " "Defaultﻓﻲ وﺿﻌﯿﺔ
ال Noarchivelogوﻟﻜﻦ وﺿﻌﯿﺔ ال Archivelogﻣﻔﯿﺪة ﺟﺪاً ﺣﯿﺚ أن ﻣﻦ ﻓﻮاﺋﺪھﺎ ﺗﺴﮭﯿﻞ ﻋﻤﻠﯿﺔ ال
Backupوﺗﻀﻤﻦ اﺳﺘﻌﺎدة " "Recoveryاﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺣﺪث ﻟﮭﺎ .Commitﯾﻤﻜﻦ أن ﺗﺘﻢ ﻋﻤﻠﯿﺔ ال
Archiveﻟﻤﻠﻔﺎت ال Redo Logﺑﻄﺮﯾﻘﺘﯿﯿﻦ ھﻤﺎ :ﯾﺪوﯾﺔ أو أوﺗﻮﻣﺎﺗﯿﻜﯿﺔ واﻟﺬي ﯾﺘﺤﻜﻢ ﺑﮭﺎ ﻋﺎﻣﻞ ﻣﻦ ﻋﻮاﻣﻞ
ال Intialazation Parameter Fileھﻮ .LOG_ARCHIVE_START
ﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻗﯿﻤﺔ ال LOG_ARCHIVE_STARTﺗﺴﺎوي Trueﻓﺈن ﻋﻤﻠﯿﺔ ال Archivingﺗﺤﺪث
ﺑﺸﻜﻞ أﺗﻮﺗﻮﻣﺎﺗﯿﻜﻲ ﻟﻠﻤﺠﻤﻮﻋﺔ اﻟﻤﻤﺘﻠﺌﺔ ﺑﻮاﺳﻄﺔ ال ARCnﺑﻌﺪ ﺣﺪوث ﻋﻤﻠﯿﺔ .Log Switch
أﻣﺎ ﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻗﯿﻤﺔ ال ARCHIVE_START_LOGﺗﺴﺎوي ، Falseﻓﺄن ﻋﻤﻠﯿﺔ ال Archiving
ﯾﺠﺐ أن ﺗﺤﺪث ﺑﻄﺮﯾﻘﺔ ﯾﺪوﯾﺔ ﻋﺒﺮ اﺳﺘﺨﺪام ﺟﻤﻞ ال .SQL
ﻣﻼﺣﻈﺎت:
ﺗﺬﻛﺮ :ﻻ ﯾﻤﻜﻦ اﺳﺘﺨﺪام ال Redo Log Fileﺣﺘﻰ ﺗﺘﻢ ﻋﻤﻠﯿﺔ ال Checkpointوﯾﺘﻢ ﻋﻤﻠﯿﺔ Archiving
ﻟﻠﻤﻠﻒ )ھﺬه اﻟﺤﺎﻟﺔ ﺗﺤﺪث ﻋﻨﺪﻣﺎ ﯾﻜﻮن اﻟﻮﺿﻊ ، Archivelogإﻣﺎ ﻋﻨﺪ ﺣﺎﻟﺔ Noarchivelogﻓﻘﻂ ﻋﻤﻠﯿﺔ ال
Checkpointﯾﺠﻠﺐ أن ﺗﺤﺪث(.
75
76
TABLESPACE
:CREATING TABLESPACES
أﻣﺎ ال اﻟﺮﻣﻮز ال ،C2 ،C1ﻓﺘﺮﻣﺰ اﻟﻰ ﺟﺰء ﻣﻦ اﻟﻘﺎﻋﺪة ﺗﻢ ﺗﺨﻔﯿﻔﮫ اﻟﻰ رﻣﻮز ﻟﺴﮭﻮﻟﺔ ﻗﺮاءة اﻟﻘﺎﻋﺪة:
ﺳﻮف ﯾﺄﺗﻲ ﺷﺮح ﺑﺎﻟﺘﻔﺼﯿﻞ ﻟﻌﻮاﻣﻞ ال C2اﻟﻤﺒﯿﻨﺔ )… (Initial, Next,و ﺟﻤﻠﺔ ال .AUTOEXTEND
77
أﻣﺎ أواﻣﺮ اﻟﻘﺎﻋﺪة ﻓﮭﻲ :
] :[MINIMUM EXTENTﺗﺤﺪد ﺣﺠﻢ ﺟﻤﯿﻊ ال Extentsاﻟﺬﯾﻦ ﯾﻨﺘﻤﻮن اﻟﻰ ال ·
Tablespaceﺑﺤﯿﺚ ﯾﻜﻮن اﻟﺤﺠﻢ ﻣﻀﺎﻋﻔﺎت اﻟﺮﻗﻢ اﻟﻤﻮﺟﻮد ﺑﺠﺎﻧﺐ اﻟﺠﻤﻠﺔ ،ﯾﻌﻨﻲ اذا ﻛﺎن اﻟﺮﻗﻢ ھﻮ 4
ﻓﯿﻜﻮن أﺣﺠﺎم ال Extentsﻣﻀﺎﻋﻔﺎت ھﺬا اﻟﺮﻗﻢ )….(4, 8, 16,
] :[BLOCKSIZEﻟﺘﺤﺪﯾﺪ ﺣﺠﻢ ال Block Sizeﺗﻌﺮﻓﻨﺎ اﻟﻰ اﻟﻌﺎﻣﻞ DB_BLOCK_SIZE ·
واﻟﺬي ﯾﺤﺪد اﻟﺤﺠﻢ اﻟﻤﺴﻤﻰ ﺑﺎل Standardوﻟﻜﻦ ﯾﺴﻤﺢ اﻷوراﻛﻞ ﺑﻮﺟﻮد أرﺑﻌﺔ أﺣﺠﺎم أﺧﺮى ﻟﻞ
Block Sizeﺗﺴﻤﻰ Non-Standardﻓﻲ ﺣﺎﻟﺔ أن ﺣﺠﻢ ال Standardﻻ ﯾﻨﺎﺳﺐ ال
Tablespaceوﻋﻨﺪﺋﺬ ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ ال Block Sizeﺑﻮاﺳﻄﺔ ھﺬه اﻟﺠﻤﻠﺔ وﯾﻜﻮن ﺣﺠﻢ ال Non-
Standardﺑﯿﻦ 2KBاﻟﻰ .32KB
] :[LOGGINGﺗﺤﺪد أن ﺟﻤﯿﻊ ﻋﻨﺎﺻﺮ ال Tablespaceﻣﻦ Tablesو Indexesوﻏﯿﺮھﺎ ·
ﯾﺠﺐ أن ﯾﺘﻢ ﻛﺘﺎﺑﺔ اﻟﻤﺘﻐﯿﺮات اﻟﺘﻲ ﺗﻄﺮأ ﻋﻠﯿﮭﺎ اﻟﻰ ال .Redo Log Files
] :[NOLOGGINGﺗﺤﺪد أن ﺟﻤﯿﻊ ﻋﻨﺎﺻﺮ ال Tablespaceﻣﻦ Tablesو Indexes ·
وﻏﯿﺮھﺎ ﯾﺠﺐ أن ﻻ ﯾﺘﻢ ﻛﺘﺎﺑﺔ اﻟﻤﺘﻐﯿﺮات اﻟﺘﻲ ﺗﻄﺮأ ﻋﻠﯿﮭﺎ اﻟﻰ ال .Redo Log Files
] :[DEFAULT C2ﺗﺤﺪد ﻋﻮاﻣﻞ ﺧﺎﺻﺔ ﺗﺴﻤﻰ ﻋﻮاﻣﻞ اﻟﺘﺨﺰﯾﻦ ""Storage Parameters ·
اﻟﺘﻲ ﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻻﺣﻘﺎً.
] :[OFFLINEﯾﻮﺟﺪ ﻋﺪد ﻣﻦ اﻟﺤﺎﻻت اﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﻜﻮن ﻋﻠﯿﮭﺎ ال Tablespaceﺑﻌﺪ ﺗﻜﻮﯾﻨﮭﺎ ·
واﻟﺤﺎﻟﺔ ﺗﺤﺪد أﻧﮭﺎ ﻏﯿﺮ ﺟﺎھﺰة ﻟﻼﺳﺘﺨﺪام )ﺿﺪ .(Online
] :[PERMANENTﺗﺤﺪد أن ﻧﻮﻋﯿﺔ ال Tablespaceﻣﻦ اﻟﻨﻮع اﻟﺬي ﯾﺤﻤﻞ ﺑﯿﺎﻧﺎت داﺋﻤﺔ. ·
] :[TEMPORARYﺗﺤﺪد أن ﻧﻮﻋﯿﺔ ال Tablespaceﻣﻦ اﻟﻨﻮع اﻟﺬي ﯾﺤﻤﻞ ﺑﯿﺎﻧﺎت ﻣﺆﻗﺘﮫ. ·
78
MANAGING TABLESPACES SPACE
ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﺨﺼﯿﺺ ﻣﺴﺎﺣﺔ ﻷي ﻋﻨﺼﺮ داﺧﻞ ال Tablespaceﯾﻜﻮن ﻟﻜﻞ ﻋﻨﺼﺮ Segmentﺗﺤﻮي ﻋﻠﻰ
ﻣﺠﻤﻮﻋﺔ ﻣﻦ ال ،Extentsوﯾﻤﻜﻦ ادارة ﻣﺴﺎﺣﺔ ال Extentﺑﻄﺮﯾﻘﺘﯿﻦ ھﻤﺎ:
Locally Managed TablespaceوDictionary Managed Tablespace
ﺗﺘﺒﻊ ال Tablespaceھﺬه اﻟﻄﺮﯾﻘﺔ ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻣﻌﻠﻮﻣﺎت ال Extentsﻓﻲ ال Data Filesاﻟﺘﺎﺑﻌﺔ ﻟﻞ
.Tablespaceﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ ﺷﻜﻞ ) Bitmapﺧﺮﯾﻄﺔ ﺑﺎﯾﺘﺎت( واﻟﺘﻲ ﺗﺪل ﻋﻠﻰ ال Free Blocks
و ال Used Blocksﻓﻲ ال ،Extentsوﻋﻨﺪا ﯾﺤﺪث أي ﺗﻌﺪﯾﻞ ﻋﻠﻰ ال Blocksﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﺠﺪﯾﺪ ﺑﯿﺎﻧﺎت
ال Bitmapﻟﺘﻮاﻓﻖ اﻟﺘﻐﯿﺮات اﻟﺘﻲ ﻃﺮأت.
ﺣﺠﻢ ال Extentﯾﻤﻜﻦ أن ﯾﻘﺪر ﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ و ﺟﻤﯿﻊ ال Extentsﺗﻜﻮن ﺑﻨﻔﺲ اﻟﺤﺠﻢ. ·
ﻋﺪم اﻟﺤﺎﺟﺔ اﻟﻰ ﺟﻤﻊ اﻟﻤﺴﺎﺣﺎت اﻟﺨﺎﻟﯿﺔ اﻟﺼﻐﯿﺮة اﻟﻀﺎﺋﻌﺔ اﻟﺘﻲ ﺗﻨﺸﺊ ﺑﯿﻦ اﻟﺒﯿﺎﻧﺎت ﻧﺘﯿﺠﺔ ﻟﻠﺘﻐﯿﺮات ·
اﻟﺘﻲ ﺗﺤﺪث وﺗﻌﯿﺪھﺎ اﻟﻰ اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﻟﯿﺔ اﻟﺮﺋﯿﺴﯿﺔ وﺗﺴﻤﻰ ھﺬه اﻟﻌﻤﻠﯿﺔ Coalescing Space
) ﺑﻤﻌﻨﻰ أﺧﺮ أﻧﮭﺎ ﺗﻤﻨﻊ ﺣﺪوث ﻋﻤﻠﯿﺎت ﻋﺪﯾﺪة ﺗﺴﺒﺐ ﺿﻐﻂ ﻋﻠﻰ ال .(Database
ﻟﺘﻜﻮﯾﻦ Tablespacesﺗﺘﺒﻊ ھﺬه اﻟﻄﺮﯾﻘﺔ ،ﯾﺠﺐ اﺿﺎﻓﺔ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ اﻟﻰ ﻗﺎﻋﺪة
:CREATE TABLESPACE
ﻧﻘﺎط ﻣﮭﻤﺔ:
:AUTOALLOCATEﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﺤﺪﯾﺪ ﺣﺠﻢ ال Extentsوﻻ ﯾﺴﺘﻄﯿﻊ ال DBAﻓﻌﻞ ذﻟﻚ. ·
:UNIFORMﯾﺘﻢ ﺗﺤﺪﯾﺪ ﺣﺠﻢ ال Extentsﻣﻦ ﻗﺒﻞ ال .DBA ·
79
:5.2 ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ
:Autoallocate وھﻮDefault وﯾﺆﺧﺬ الLocally Managed ﻓﺘﻌﺘﺒﺮ، أو اذا ﺗﻢ ﻛﺘﺎﺑﺔ اﻟﺘﺎﻟﻲ ﻓﻘﻂ
.Data Dictionary ﻓﻲ الExtents ھﺬه اﻟﻄﺮﯾﻘﺔ ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻣﻌﻠﻮﻣﺎت الTablespace ﺗﺘﺒﻊ ال
ﻋﻠﻰSegment اﻧﮭﺎ ﺗﻮﻓﺮ ﻣﺮوﻧﺔ ﻓﻲ ﺗﺤﺪﯾﺪ ﺣﺠﻢ ﻛﻞDictionary Managed ﻣﻦ ﻓﻮاﺋﺪ اﺳﺘﺨﺪام ﻃﺮﯾﻘﺔ ال
وﻟﻜﻦ ﻓﻲ اﻟﻤﻘﺎﺑﻞ ﺗﻠﺰم اﻟﺤﺎﺟﺔ اﻟﻰ ﺟﻤﻊ اﻟﻤﺴﺎﺣﺎت اﻟﺨﺎﻟﯿﺔ.[DEFAULT C2] ﺣﺪه ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ ال
، اﻟﺼﻐﯿﺮة اﻟﻀﺎﺋﻌﺔ اﻟﺘﻲ ﺗﻨﺸﺊ ﺑﯿﻦ اﻟﺒﯿﺎﻧﺎت ﻧﺘﯿﺠﺔ ﻟﻠﺘﻐﯿﺮات اﻟﺘﻲ ﺗﺤﺪث و ﺗﻌﯿﺪھﺎ اﻟﻰ اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﻟﯿﺔ اﻟﺮﺋﯿﺴﯿﺔ
.Database أي ﺣﺪوث ﻋﻤﻠﯿﺎت ﻗﺪ ﺗﺴﺒﺐ ﻣﺰﯾﺪ ﻣﻦ اﻟﻀﻐﻂ ﻋﻠﻰ ال
ﯾﺠﺐ اﺿﺎﻓﺔ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ اﻟﻰ ﻗﺎﻋﺪة، ﺗﺘﺒﻊ ھﺬه اﻟﻄﺮﯾﻘﺔTablespaces ﻟﺘﻜﻮﯾﻦ
:CREATE TABLESPACE
MINIMUM [ أو ﺟﻤﻠﺔ الDEFAULT C2] ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻗﯿﻢ اﻟﻌﻮاﻣﻞ ﺿﻤﻦ اﻟﺠﻤﻠﺔ:ﻣﻼﺣ ﻈﺔ
.Console أو ﻋﺒﺮ ال، ALTER TABLESPACE ﺑﺎﺳﺘﺨﺪام اﻷﻣﺮEXTENT
80
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :5.4
ﺗﺬﻛﺮ :أﻧﮫ ﻻ ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﺧﻮاص ال Storageﻟﻞ Tablespaceاﻟﺘﻲ ﺗﺘﺒﻊ ﻃﺮﯾﻘﺔ ال .Locally Managed
81
NON-SYSTEM TABLESPACES
:UNDO TABLESPACE
ﺗﺴﺘﺨﺪم ﻟﺤﻔﻆ ال Undo Segmentوﻻ ﯾﻤﻜﻦ أن ﺗﺤﺘﻮي ﻋﻠﻰ ﻏﯿﺮھﺎ .ﯾﺘﻢ إدارة ال Extentsﺑﻄﺮﯾﻘﺔ ال
Locally Managedو ﯾﻤﻜﻦ ﺗﻜﻮﯾﻨﮭﺎ ﺑﺎﺗﺒﺎع اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ )أو ﺗﻜﻮﯾﻨﮭﺎ ﻋﻨﺪ ﺗﻜﻮﯾﻦ ال Database
ﺑﺎﺳﺘﺨﺪام :(CREATE DATABASE
ﺗﺬﻛﺮ :ﺑﯿﺎﻧﺎت ال Undo Segmentﺗﺨﺰن ﻓﻲ ال Control Fileو ال Alert Log Fileو ال
.Initialization Parameter File
82
:TEMPORARY TABLESPACE
ﺗﻮﻓﺮ اﻟﻤﺴﺎﺣﺔ اﻟﻼزﻣﺔ ﻟﻌﻤﻠﯿﺎت ال Sortاﻟﻤﺨﺘﻠﻔﺔ اﻟﻨﺎﺗﺠﺔ ﻋﻦ أواﻣﺮﻋﺪة ﻣﺜﻞ Order Byأو.Group By
ﺑﻤﻌﻨﻰ أﺧﺮ أﻧﮭﺎ ﺗﺨﺰن اﻟﺒﯿﺎﻧﺎت اﻟﻤﺆﻗﺘﺔ " ،"Temporary Dataوﺗﺤﻮي ﻣﺎ ﯾﻌﺮف ب Sort Segment
واﻟﺘﻲ ﺗﺘﻜﻮن ﻓﻲ ال Tablespaceﻋﻨﺪ أول ﻋﻤﻠﯿﺔ Sortﺗﻄﻠﺐ ﻣﻦ ال .Instanceﯾﻤﻜﻦ إدارة ال Extents
ﺑﺎﻟﻄﺮﯾﻘﺘﯿﻦ و ﻟﻜﻦ ﯾﻨﺼﺢ ﺑﺎﺳﺘﺨﺪام .Locally Managed
ﻣﻼﺣﻈﺔ :ﺗﺴﺘﻄﯿﻊ ال Sort Segmentاﻟﺘﻮﺳﻊ ﻓﻲ اﻟﻤﺴﺎﺣﺔ ﺑﺤﺠﺰ اﻟﻤﺰﯾﺪ ﻣﻦ ال Extentsﻟﻜﻲ ﯾﺘﻢ ﺗﻐﻄﯿﺔ
اﻟﻤﺴﺎﺣﺔ اﻟﻼزﻣﺔ ﻟﻌﻤﻠﯿﺎت ال Sortاﻟﻤﺨﺘﻠﻔﺔ.
83
:Default Temporary Tablespaces
ﻻ ﯾﻤﻜﻦ ﺣﺬف ال Default Temporary Tablespaceإﻻ ﺑﻌﺪ ﺗﺤﻮﯾﻠﮭﺎ اﻟﻰ Temporary ·
Tablespaceأﺧﺮى ﺑﻮاﺳﻄﺔ ال .ALTER DATABASE
84
ALTERING A TABLESPACE
ﯾﻤﻜﻦ ﺗﻌﺪﯾﻞ Tablespacesأو ﺣﺬﻓﮭﻢ ﺑﻮاﺳﻄﺔ أﻣﺮ ،ALTER TABLESPACEﺑﺤﯿﺚ ﯾﻤﻜﻦ ﺗﻨﻔﯿﺬ
ﺑﻮاﺳﻄﺔ ھﺬا اﻷﻣﺮ :ﺗﻐﯿﯿﺮ اﻟﺤﺎﻟﺔ ﺑﯿﻦ Offlineو ، Onlineوﺿﻊ ال Tablespaceﻓﻲ وﺿﻌﯿﺔ اﻟﻘﺮاءة ﻓﻘﻂ
، Read-Onlyﺣﺬف ، Tablespaceﺗﻐﯿﯿﺮ ﺣﺠﻢ ال ،Tablespaceوﻏﯿﺮھﺎ ﻣﻦ اﻟﻤﮭﺎم.
:OFFLINE OR ONLINE
ﻋﻨﺪﻣﺎ ﺗﻜﻮن ال Tablespaceﻓﻲ ﺣﺎﻟﺔ ،Offlineﻻ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ ال
Tablespaceﻣﻦ ال .Databaseﯾﻤﻜﻦ وﺿﻊ ال Tablespaceﻓﻲ ﺣﺎﻟﺔ ال Offlineﻟﻌﺪة اﺳﺒﺎب ﻣﻨﮭﺎ أن
ال DBAﯾﺮﻏﺐ ﻓﻲ اﻏﻼق ﺟﺰء ﻣﻦ اﻟﺒﯿﺎﻧﺎت أو ﻋﻤﻞ ﻋﻤﻠﯿﺔ Backupأو Recoveryﻋﻠﻰ ھﺬا اﻟﺠﺰء دون
إﻏﻼق ال Databaseﺑﺸﻜﻞ ﺗﺎم أو ﻧﻘﻞ أو ﺗﻐﯿﯿﺮ اﺳﻢ Data Filesﻟﻞ Tablespaceدون إﻏﻼق ال
Databaseﺑﺸﻜﻞ ﻛﺎﻣﻞ.
ﻋﻨﺪﻣﺎ ﺗﺘﻐﯿﺮ ﺣﺎﻟﺔ ال Tablespaceﻣﻦ Onlineاﻟﻰ Offlineأو ﺑﺎﻟﻌﻜﺲ ،ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﻌﻤﻠﯿﺔ
ﻓﻲ ال Data Dictionaryوﻓﻲ ال .Control Fileﯾﻤﻜﻦ ﻟﻞ Instanceﺗﺤﻮﯾﻞ ﺣﺎﻟﺔ ال Tablespace
ﺑﯿﻦ اﻟﺤﺎﻟﺘﯿﻦ ﻋﻨﺪ ﺣﺪوث أﺧﻄﺎء أو ﻣﺸﺎﻛﻞ ﻣﺜﻞ ﻋﺪم اﻟﻤﻘﺪرة ﻋﻠﻰ ﻧﻘﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻰ ال .Tablespace
ﻻ ﯾﻤﻜﻦ وﺿﻊ ﺟﻤﯿﻊ ال Tablespacesﻓﻲ ﺣﺎﻟﺔ ال Offlineاذ ﯾﺴﺜﻨﻰ ﻛﻞ ﻣﻦ ال System Tablespace
و ال Default Temporaryوال Tablespaceاﻟﺘﻲ ﺗﺤﻮي Undo Segmentﻓﻲ ﺣﺎﻟﺔ .Active
أواﻣﺮ اﻟﻘﺎﻋﺪة:
:NORMALﯾﺘﻢ ﻛﺘﺎﺑﺔ ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺘﻐﯿﺮة " "Dirty Buffersاﻟﺨﺎﺻﺔ ﺑﺎل Data Files ·
ﻓﻲ ذاﻛﺮة ال SGAاﻟﻰ ال Data Filesﺿﻤﻦ ال Tablespaceاﻟﻤﺮاد إﻏﻼﻗﮭﺎ.
:TEMPORARYﺗﻮﻓﺮ ﻋﻤﻠﯿﺔ Checkpointﻟﺠﻤﯿﻊ ال Online Data Filesﺿﻤﻦ ال ·
Tablespaceاﻟﻤﺮاد إﻏﻼﻗﮭﺎ و ﻻ ﺗﻮﻓﺮ ذات اﻟﻌﻤﻠﯿﺔ ﻟﻞ .Offline Data Files
:IMMEDIATEﻻ ﺗﻘﻮم ﺑﻌﻤﻠﯿﺔ Checkpointﻋﻠﻰ ال Data Filesﺿﻤﻦ ال Tablespace ·
اﻟﻤﺮاد ﻏﻠﻘﮭﺎ وﺑﺎﻟﺘﺎﻟﻲ ﯾﺠﺐ اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ Recoveryﻋﻨﺪ اﻟﺮﻏﺒﺔ ﺑﺘﺤﻮﯾﻠﮭﺎ اﻟﻰ .Online
:FOR RECOVERﻻﺳﺘﺨﺪام ال Tablespaceﻓﻲ ﻋﻤﻠﯿﺔ .Recovery ·
أن وﺿﻊ ال Tablespaceﻓﻲ ﺣﺎﻟﺔ ال Offline Normalﯾﺆدي اﻟﻰ ﺣﺪوث ﻋﻤﻠﯿﺔ ال ·
.Checkpoint
أﻧﮫ ﯾﻤﻜﻦ وﺿﻊ ال Tablespaceﻓﻲ اﺣﺪى اﻟﺤﺎﻟﺘﯿﻦ ﻋﻨﺪ ﺗﻜﻮﯾﻨﮭﺎ ﺑﻮاﺳﻄﺔ CREATE ·
.TABLESPACE
85
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :5.8
:READ-ONLY TABLESPACE
ﯾﻤﻜﻦ وﺿﻊ ال Tablespaceﻓﻲ ﺣﺎﻟﺔ اﻟﻘﺮاءة ﻓﻘﻂ " "Read-Onlyاذا رﻏﺐ ال DBAﺑﺄن ﺗﺘﻢ ﻗﺮاءة
ﺑﯿﺎﻧﺎت ال Data Filesﺿﻤﻦ ال Tablespaceدون ﺗﻐﯿﯿﺮ اﻟﺒﯿﺎﻧﺎت .ﻟﻜﻲ ﯾﺴﺘﻄﯿﻊ ال DBAوﺿﻊ ال
Tablespaceﻓﻲ ﺣﺎﻟﺔ ال Read-Onlyﯾﺠﺐ أن ﯾﻜﻮن ﺟﻤﯿﻊ ال Data Filesاﻟﺘﺎﺑﻌﯿﯿﻦ ﻟﻞ Tablespace
ﻓﻲ وﺿﻌﯿﺔ Onlineوإﻻ ﻓﺄن اﻟﻌﻤﻠﯿﺔ ﻟﻦ ﺗﻨﺠﺢ ،واﻟﻌﻜﺲ ﺻﺤﯿﺢ ﻓﻲ ﺣﺎل ﺗﺤﻮﯾﻞ ال Tablespaceﻣﻦ
Read-Onlyاﻟﻰ اﻟﺤﺎﻟﺔ اﻟﻌﺎدﯾﺔ Read-Writeﯾﺤﺐ ﺗﻮﻓﺮ ﺟﻤﯿﻊ ال Data Filesﻓﻲ وﺿﻌﯿﺔ .Online
ﯾﻤﻜﻦ وﺿﻊ ال Tablespaceﻓﻲ ﺣﺎﻟﺔ Read-Onlyﺑﺎﺳﺘﺨﺪام اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ:
ﯾﻤﻜﻦ ﺣﺬف ﻋﻨﺎﺻﺮ ) (Tables, Indexesﻣﻦ ال Read-Only Tablespaceاذ أن ﺣﺬف ﻋﻨﺎﺻﺮ ﻻ ﺗﻜﻮن
ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة ﻓﻲ ال Tablespaceوﻻ ﺗﻐﯿﯿﺮ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة إﻧﻤﺎ ﺗﻐﯿﯿﺮ ﺑﯿﺎﻧﺎت ال .Data Dictionary
وﻓﻲ ﺣﺎل ﻛﺎﻧﺖ ﺗﺠﺮى ﻋﻠﻰ ال Tablespaceﻋﺪد ﻣﻦ اﻟﻤﮭﺎم " "Transactionﻋﻨﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﯾﻞ ،ﯾﺘﻢ
ﻣﻨﻊ ﺣﺪوث ﻣﮭﺎم ﺟﺪﯾﺪة وﯾﺘﻢ اﻧﺠﺎز اﻟﻤﮭﺎم اﻟﺘﻲ ﺗﺠﺮي وإﻣﺎ أن ﺗﺴﺠﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻨﺎﺗﺠﺔ ﻋﻦ اﻟﻤﮭﺎم ﻋﻨﺪ ﺣﺪوث
Commitأو ﺗﻠﻐﻰ ﻋﻨﺪ ﺣﺪوث .Rollback
86
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :5.9
ﺗﺬﻛﺮ :أن وﺿﻊ ال Tablespaceﻓﻲ ﺣﺎﻟﺔ ال Read-Onlyﯾﺆدي اﻟﻰ ﻋﻤﻞ ال DBWnو ﺣﺪوث ﻋﻤﻠﯿﺔ ال
.Checkpoint
:DROPPING TABLESPACES
أواﻣﺮ اﻟﻘﺎﻋﺪة:
87
ﻧﻘﺎط ﻣﮭﻤﺔ:
-2ﯾﻨﺼﺢ ﺑﺘﺤﻮﯾﻞ ال Tablespaceاﻟﻰ ﺣﺎﻟﺔ Offlineﻗﺒﻞ ﺣﺬﻓﮭﺎ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﻋﺪم وﺟﻮد ﻣﮭﺎم أو ﻋﻤﻠﯿﺎت
ﺗﺠﺮي ﻋﻠﻰ ال ، Tablespaceاذ ﺑﺘﺤﻮﯾﻠﮭﺎ اﻟﻰ Offlineﯾﺘﻢ وﻗﻒ اﻟﻌﻤﻠﯿﺎت اﻟﺠﺪﯾﺪة وإﻧﮭﺎء اﻟﻤﮭﻤﺎت اﻟﺤﺎﻟﯿﺔ
ﻛﻤﺎ ﺷﺮﺣﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ.
-3ﺑﻌﺪ ﺣﺬف ال Tablespaceﯾﺘﻢ ﺗﻌﺪﯾﻞ ﺑﯿﺎﻧﺎت ال Control Fileﻟﺘﺘﻮاﻓﻖ ﻣﻊ اﻟﺘﻐﯿﯿﺮ اﻟﺬي ﺣﺪث ﻓﻲ ال
.Tablespace
ﺗﺬﻛﺮ :أن ال Control Fileﯾﺤﻮي ﻣﻌﻠﻮﻣﺎت ﺣﻮل أﺳﻤﺎء ال Tablespacesوأﺳﻤﺎء و ﻣﻮاﻗﻊ ال Data
.Files
88
:RESIZING A TABLESPACE
ﯾﻤﻜﻦ زﯾﺎدة ﺣﺠﻢ ال Tablespaceﺑﺰﯾﺎدة ﺣﺠﻢ ال Data Filesاﻟﺘﺎﺑﻌﺔ ﻟﮭﺎ أو إﺿﺎﻓﺔ Data Filesﺟﺪﯾﺪة ﻟﻞ
.Tablespaceﯾﻤﻜﻦ زﯾﺎدة ﺣﺠﻢ ال Data Filesﺑﻄﺮﯾﻘﺔ ﯾﺪوﯾﺔ أو أوﺗﻮﻣﺎﺗﯿﻜﯿﺔ.
:Automatic Extension
ﯾﻤﻜﻦ اﺳﺘﺨﺪام ﺟﻤﻠﺔ ال AUTOEXTENDﻟﺰﯾﺎدة ﺣﺠﻢ ال Data Filesﺑﻄﺮﯾﻘﺔ أوﺗﻮﻣﺎﺗﯿﻜﯿﺔ أو ﻟﻮﻗﻒ ھﺬه
اﻟﻌﻤﻠﯿﺔ .ﯾﻤﻜﻦ اﺳﺘﺨﺪام ﺟﻤﻠﺔ ال AUTOEXTENDﺑﻌﺪ ﺗﻜﻮﯾﻦ ال Databaseأو ال Tablespace
ﺑﺎﺳﺘﺨﺪام اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ:
أواﻣﺮ اﻟﻘﺎﻋﺪة:
89
:Manual Extension
ﺳﺆال :ﻟﻨﻔﺮض أﻧﮫ ﯾﻮﺟﺪ ﻟﺪﯾﻨﺎ Data Fileﺣﺠﻤﮫ 100 MBوھﻮ ﯾﺤﻮي ﻋﻠﻰ 70 MBﺑﯿﺎﻧﺎت ،واراد ال
DBAﺗﺼﻐﯿﺮ ﺣﺠﻤﮫ اﻟﻰ ، 60 MBﻓﮭﻞ ﺗﻨﺠﺢ اﻟﻌﻤﻠﯿﺔ ؟ و ﻛﻢ ﯾﻜﻮن ﺣﺠﻢ ال Data Fileﺑﻌﺪ اﻟﺘﺼﻐﯿﺮ؟
ﺟﻮاب :ﻧﻌﻢ ﺗﻨﺠﺢ ﻋﻤﻠﯿﺔ اﻟﺘﺼﻐﯿﺮ وﻟﻜﻦ ﯾﻜﻮن ﺣﺠﻢ ال Data Fileھﻮ ﺣﺠﻢ اﻟﺒﯿﺎﻧﺎت ﻓﯿﮫ وھﻮ .70 MB
ﻣﻼﺣﻈﺔ :ﯾﻤﻜﻦ ﺗﻜﺒﯿﺮ أو ﺗﺼﻐﯿﺮ ﺣﺠﻢ أﻛﺜﺮ ﻣﻦ ﻣﻠﻒ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل 5.12
90
:Adding Data File
. اﺳﺘﺨﺪم ﻓﺎﺻﻠﺔ ﻓﻲ أﺧﺮ اﻟﻘﺎﻋﺪة وأﻋﺪ ﻛﺘﺎﺑﺔ اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ. ﯾﻤﻜﻦ اﺿﺎﻓﺔ أﻛﺜﺮ ﻣﻦ ﻣﻠﻒ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ:ﻣﻼﺣﻈﺔ
.5.13 ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل
:MOVING DATAFILES
ALTER أوALTER TABLESPACE ﻣﻦ ﻣﻮﻗﻊ اﻟﻰ أﺧﺮ ﺑﺎﺳﺘﺨﺪام إﻣﺎData Files ﯾﻤﻜﻦ ﻧﻘﻞ ال
.DATABASE
91
ﻃﺮﯾﻘﺔ اﻟﺘﻨﻔﯿﺬ:
ﺷﺮوط اﻻﺳﺘﺨﺪام:
ﻃﺮﯾﻘﺔ اﻟﺘﻨﻔﯿﺬ:
92
ﺷﺮوط اﻻﺳﺘﺨﺪام:
ﺗﺬﻛﺮ :ھﻲ ﻧﻔﺲ اﻟﻘﺎﻋﺪة اﻟﺘﻲ اﺳﺘﺨﺪﻣﻨﺎھﺎ ﻟﻨﻘﻞ أو ﺗﻐﯿﯿﺮ اﺳﻤﺎء ال .Redo Log Files
93
:QUERYING INFORMATION
94
95
SEGMENTS
.TABLE SEGMENT ·
.TABLE PARTITION SEGMENT ·
.CLUSTER SEGMENT ·
.INDEX SEGMENT ·
.INDEX-ORGANIZED TABLE SEGMENT ·
.INDEX PARTITION SEGMENT ·
.TEMPORARY SEGMENT ·
.UNDO SEGMENT ·
.LOB SEGMENT ·
.NESTED TABLE SEGMENT ·
96
DATA BLOCKS
ھﻲ أﺻﻐﺮ وﺣﺪة ﺗﺨﺰﯾﻦ ﻓﻲ اﻷوراﻛﻞ وﯾﺘﻢ ﺗﺤﺪﯾﺪ ﺣﺠﻤﮭﺎ ﺑﻮاﺳﻄﺔ اﻟﻌﺎﻣﻞ ""Parameter
DB_BLOCK_SIZEﻋﻨﺪ ﺗﻜﻮﯾﻦ ال Databaseوﻻ ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ اﻟﺤﺠﻢ ﻓﯿﻤﺎ ﺑﻌﺪ .ﯾﺘﻜﻮن ال Data
Blockﻣﻦ:
:BLOCK HEADERﯾﺤﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ال Data Blockوﻧﻮﻋﮫ ) Data, Index, ·
.(or Undoﯾﺤﺘﻮي أﯾﻀﺎً ﻋﻠﻰ ال Table Directoryاﻟﺬي ﯾﻮﻓﺮ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ال Tablesاﻟﺘﻲ
ﻟﮭﺎ ﺑﯿﺎﻧﺎت ) ( Data Rowsﻓﻲ ال .Data Blockوﻣﻦ أﺟﺰاء ال Block Headerاﯾﻀﺎً ﻣﺎ
ﯾﻌﺮف ﺑﺎﺳﻢ Row Directoryاﻟﺬي ﯾﻮﻓﺮ ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﺒﯿﺎﻧﺎت ) (Rowsاﻟﻤﺨﺰﻧﺔ ﻓﻲ ال Block
ﻣﺜﻞ ال .Row Addressاﻟﺠﺰء اﻷﺧﯿﺮ ﻣﻦ ال Block Headerھﻲ ال Transaction Slots
اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻋﻨﺪﻣﺎ ﺗﺤﺪث ﺗﻐﯿﺮات ﻓﻲ اﻟﺒﯿﺎﻧﺎت " "Rowsﻧﺘﯿﺠﺔ ﻟﻠﻤﮭﻤﺎت ""Transactions
اﻟﻤﺨﺘﻠﻔﺔ.
:DATA SPACEھﻲ اﻟﻤﺴﺎﺣﺔ اﻟﺘﻲ ﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﺑﮭﺎ "."Rows ·
:FREE SPACEھﻲ ﻣﺴﺎﺣﺔ ﺧﺎﻟﯿﺔ ﺗﺴﺎﻋﺪ ﻛﻞ ﻣﻦ ال Block Headerوال Data Space ·
ﻋﻠﻰ اﻟﺘﻮﺳﻊ ﻓﻲ اﻟﺤﺠﻢ اذا ﻟﺰم اﻷﻣﺮ .ﻓﻲ ﺣﺎل ﺣﺪوث ﻋﻤﻠﯿﺎت ﻛﺜﯿﺮة ﺗﺴﺒﺐ أﺧﺬ ﻣﺴﺎﺣﺔ ﻣﻨﮭﺎ ﺛﻢ اﻋﺎدة
ﻣﺴﺎﺣﺔ ﻟﮭﺎ ﺑﺸﻜﻞ ﻣﺘﻜﺮر ﯾﺤﺪث Fragmentationوﯾﻘﻮم اﻷوراﻛﻞ ﺑﻌﻤﻠﯿﺔ Coalesceﻟﮭﺎ.
ﺗﺬﻛﺮ :2ﯾﺘﻢ ﺗﺨﺰﯾﻦ رﻗﻢ ال Log Sequence Numberورﻗﻢ ال Checkpointﻓﻲ ال Data Files
.Header
اﻟﺮﺳﻢ 6.1
ﻣﻼﺣﻈﺔ :اﻷﺳﮭﻢ ﻓﻲ اﻟﺮﺳﻢ 6.1ﺗﺸﯿﺮ اﻟﻰ اﻟﻄﺮﯾﻘﺔ اﻟﺘﻲ ﺗﻜﺒﺮ ﺑﮭﺎ ﻣﺴﺎﺣﺔ ﻛﻞ ﻣﻦ ال Data Spaceوال
Block Headerوھﻲ ﻃﺮﯾﻘﺔ ﻋﻜﺴﯿﺔ ،ﻣﻦ أﺳﻔﻞ اﻟﻰ أﻋﻠﻰ وﻣﻦ أﻋﻠﻰ اﻟﻰ أﺳﻔﻞ ﻋﻠﻰ اﻟﺘﻮاﻟﻲ.
97
:BLOCK STORAGE PARAMETERS
ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﻜﻮﯾﻦ Tableأو ﻋﻨﺼﺮ أﺧﺮ " "Objectﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ ﻋﻮاﻣﻞ ﺗﺘﺤﻜﻢ ﻓﻲ ال Data Blocksاﻟﺘﻲ
ﺗﻨﺘﻤﻲ ﻟﮭﺬا اﻟﻌﻨﺼﺮ .ﺗﺤﺪﯾﺪ ھﺬه اﻟﻌﻮاﻣﻞ ﻣﮭﻢ ﺟﺪاً ،ﻷﻧﮭﺎ ﺗﻌﻤﻞ ﻋﻠﻰ ﺗﻮﻓﯿﺮ ﻣﺴﺎﺣﺔ ﻛﺒﯿﺮة وﺗﺤﺴﯿﻦ اﻻداراة
واﻟﻌﻤﻞ.
:PCTFREEﻋﻨﺪ ﺗﺤﺪﯾﺪھﺎ ،ﯾﺘﻢ ﺣﺠﺰ ﻣﺴﺎﺣﺔ ﻣﻦ ﺣﺠﻢ ال Blockﺗﺨﺼﺺ ﻟﻠﺰﯾﺎدة اﻟﻤﺘﻮﻗﻌﺔ ﻓﻲ ·
اﻟﺒﯿﺎﻧﺎت " "Data Rowsاﻟﻨﺎﻧﺘﺠﺔ ﻣﻦ ﺗﻐﯿﯿﺮ " "Updateاﻟﺒﯿﺎﻧﺎت " "Data Rowsﻓﻲ ال
،Blockاﻟﺤﺠﻢ ال Defaultﻟﮭﺎ ھﻮ .10%
:PCTUSEDﺗﻤﺜﻞ اﻟﺤﺠﻢ اﻷدﻧﻲ ﻟﻠﺒﯿﺎﻧﺎت " "Data Rowsﻓﻲ ال Blockاﻟﺬي اذا ﻗﻞ ﺣﺠﻢ ·
اﻟﺒﯿﺎﻧﺎت " "Data Rowsاﻟﻤﺨﺰﻧﺔ داﺧﻠﮫ ﻋﻦ ﺣﺠﻢ ال ، PCTUSEDﯾﺘﻢ ﺗﺤﻮﯾﻞ ال Blockاﻟﻰ
ﻗﺎﺋﻤﺔ ال ،Freelistاﻟﺤﺠﻢ ال Defaultھﻮ .40%
:INITRANSﻋﻨﺪ ﺗﺤﺪﯾﺪھﺎ ﯾﺘﻢ ﺣﺠﺰ ﻣﺴﺎﺣﺔ ﻟﻞ " "Transaction Slotsﻓﻲ ال Block ·
Headerﻟﺘﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﺣﻮل اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﺗﺠﺮي .ﻓﮭﻲ ﺗﺤﺪد اﻟﺤﺪ اﻷدﻧﻰ ﻣﻦ اﻟﻤﮭﻤﺎت
" "Transactionsاﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﺠﺮى ﻋﻠﻰ ال Blockﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ .اذا ﺗﻢ ﺗﺤﺪﯾﺪھﺎ ب ، 3
ﻓﺬﻟﻚ ﯾﻌﻨﻲ أﻧﮫ ﯾﺨﺼﺺ ﺛﻼث Transaction Slotsﺑﺤﯿﺚ ﯾﻤﻜﻦ أﺟﺮاء ﺛﻼث ﻣﮭﻤﺎت ﻋﻠﻰ اﻷﻗﻞ ﻋﻠﻰ
ال Blockﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ،وﻋﻨﺪ اﻟﻀﺮورة ﯾﻤﻜﻦ ﺗﺨﺼﯿﺺ ﻣﺴﺎﺣﺔ ﻣﻦ ال Free Spaceﻓﻲ ال
Blockﻹﺿﺎﻓﺔ Transaction Slotsأﺧﺮى ،ال Defaultھﻮ .1
:MAXTRANSﻋﻨﺪ ﺗﺤﺪﯾﺪھﺎ ﯾﺘﻢ ﺣﺠﺰ ﻣﺴﺎﺣﺔ ﻟﻞ " "Transaction Slotsﻓﻲ ال Block ·
Headerﻟﺘﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﺣﻮل اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﺗﺠﺮي .ﻓﮭﻲ ﺗﺤﺪد اﻟﺤﺪ اﻷﻋﻠﻰ ﻣﻦ اﻟﻤﮭﻤﺎت
" "Transactionsاﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﺠﺮى ﻋﻠﻰ ال Blockﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ .اذا ﺗﻢ ﺗﺤﺪﯾﺪھﺎ ب ، 200
ﻓﺬﻟﻚ ﯾﻌﻨﻲ أﻧﮫ ﯾﻤﻜﻦ أﺟﺮاء 200ﻣﮭﻤﺔ ﻋﻠﻰ اﻷﻛﺜﺮ ﻋﻠﻰ ال Blockﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ Default ،ھﻮ
.255
ﻣﻼﺣﻈﺔ :ﯾﻘﺼﺪ ﺑﺎل FreeListﺑﺄﻧﮭﺎ ﻗﺎﺋﻤﺔ " "Listﺗﺤﺪد ال Blocksاﻟﺘﻲ ﯾﻮﺟﺪ ﺑﮭﺎ ﻣﺴﺎﺣﺔ ﺧﺎﻟﯿﺔ ﻗﺎدرة
ﻋﻠﻰ اﺳﺘﯿﻌﺎب ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة أو ال .Free Blocks
ﻣﺜﺎل:
-1ﯾﺘﻢ ادﺧﺎل ﺑﯿﺎﻧﺎت " "Rowsاﻟﻰ ال Blockاﻟﻰ أن ﺗﺼﻞ ﻧﺴﺒﺔ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺪﺧﻠﺔ اﻟﻰ 80%أو أﻗﻞ ﺑﺤﯿﺚ
ﯾﺠﺐ أن ﯾﻈﻞ ﺣﺠﻢ ﻣﻦ ال Blockﻓﺎرغ وھﻮ ﻧﺴﺒﺔ ال PCTFREEوھﻲ ﻛﻤﺎ ذﻛﺮﻧﺎ ،20%وھﻜﺬا ﯾﻈﻞ ﺣﺠﻢ
ﻓﺎرغ ﻣﻦ ال Blockﻓﻲ ﺣﺎل ﺗﻐﯿﺮ ﺑﯿﺎﻧﺎت Rowsاﻟﻤﺨﺰﻧﺔ ﻓﻲ ال Blockﻣﺜﻞ ﺗﺤﻮﯾﻞ ﻗﯿﻤﺔ أﺣﺪ ال
COLUMNﻣﻦ ﺣﺎﻟﺔ NULLاﻟﻰ ﻗﯿﻤﺔ ﻓﻌﻠﯿﺔ .ھﺬه اﻟﻤﺴﺎﺣﺔ اﻟﻔﺎرﻏﺔ ﻣﺨﺼﺼﺔ ﻟﻞ Rowsاﻟﻤﻮﺟﻮدة ﻓﻲ
ﺣﺎل ﺗﻐﯿﺮ ﻗﯿﻤﮭﺎ وﻻ ﯾﻤﻜﻦ اﺿﺎﻓﺔ Rowsﺟﺪﯾﺪة ﻟﺘﺤﻞ ﻓﻲ اﻟﺤﺠﻢ اﻟﺨﺎﻟﻲ اﻟﻨﺎﺗﺞ ﻣﻦ ﺗﺤﺪﯾﺪ ال .PCTFREE
-2ﻓﻲ ﺣﺎل اﻧﺨﻔﺎض ﺑﯿﺎﻧﺎت ال Rowsاﻟﻤﺨﺰﻧﺔ ﻓﻲ ال Blockأو ﺗﻢ ﺣﺬف ﻋﺪد ﻣﻦ ال ، Rowsﻻ ﯾﺴﻤﺢ
ﺑﺎﺿﺎﻓﺔ Rowsﺟﺪﯾﺪة ﻓﻲ ال Blockاذا ﻟﻢ ﺗﻨﺨﻔﺾ ﺑﯿﺎﻧﺎت ال Rowsﻓﻲ ال Blockﻋﻦ اﻟﺤﺪ اﻟﻤﺤﺪد ب
PCTUSEDوھﻮ .30%ﻓﻲ ﺣﺎل اﻧﺨﻔﺎض ﺣﺠﻢ ﺑﯿﺎﻧﺎت ال Rowsﻋﻦ ،30%ﯾﺘﻢ ﺗﺤﺪﯾﺪ أن ال Block
ﺟﺎھﺰ ﻻﺳﺘﻘﺒﺎل Rowsﺟﺪﯾﺪة ).(Freelist
98
MANAGING DATA BLOCKS
ﯾﺘﻢ اﺳﺘﺨﺪام Bitmapﻋﻮﺿﺎً ﻋﻦ Freelistﻟﺘﺤﺪﯾﺪ ال Used Blocksوال .Free Blocksﯾﺘﻢ ﺣﻔﻆ ال
Bitmapﻓﻲ Blocksﻣﺨﺘﻠﻔﺔ ﺗﺴﻤﻰ ) .Bitmapped Blocks (BMBsﻋﻨﺪﻣﺎ ﯾﺘﻢ ادﺧﺎل ﺑﯿﺎﻧﺎت
" "Rowsﺟﺪﯾﺪة ،ﯾﺘﻢ اﻟﺒﺤﺚ ﻓﻲ ال Bitmapﻋﻦ Blockﯾﺤﺘﻮي ﻣﺴﺎﺣﺔ ﺧﺎﻟﯿﺔ ﻣﻨﺎﺳﺒﺔ ﻟﺤﺠﻢ اﻟﺒﯿﺎﻧﺎت
اﻟﺠﺪﯾﺪة اﻟﻤﺪﺧﻠﺔ ،وﻋﻨﺪ ﺣﺪوث أي ﺗﻌﺪﯾﻼت ﻋﻠﻰ ال ) Blocksﻣﺜﻞ زﯾﺎدة اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﻟﯿﺔ ﻋﻦ اﻟﻤﺴﺎﺣﺔ
اﻟﻤﺸﻐﻮﻟﺔ( ﯾﺘﻢ ﺗﻌﺪﯾﻞ ال Bitmapﻟﺘﻮاﻓﻖ اﻟﺘﻐﯿﺮات اﻟﺘﻲ ﻃﺮأت.
ﻓﻮاﺋﺪ اﺳﺘﺨﺪام ھﺬه اﻟﻄﺮﯾﻘﺔ ﻋﺪﯾﺪة ﻣﻨﮭﺎ ﺳﮭﻮﻟﺔ ادارة ال Blocksاذ ﯾﺘﻢ ﺗﺤﺪﯾﺪ ال PCTUSEDو ال
FREELISTﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ ،ﺗﺨﺼﯿﺺ اﻟﻤﺴﺎﺣﺔ ﻟﻠﻌﻨﺎﺻﺮ " "Objectsﺑﺸﻜﻞ أﻓﻀﻞ ،وأداء أﻓﻀﻞ
ﺧﻼل ﻋﻤﻠﯿﺎت ال INSERTاﻟﻤﺘﺰاﻣﻨﺔ.
ﻧﻘﺎط ﻣﮭﻤﺔ:
-2ﺗﻄﺒﻖ اﻟﻄﺮﯾﻘﺔ ﻋﻠﻰ ﻣﺴﺘﻮى ال ،Tablespaceأي ﯾﺠﺐ أن ﺗﻜﻮن ﺟﻤﯿﻊ ال Segmentsداﺧﻞ ال
Tablespaceﺗﻌﻤﻞ ﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﺔ.
-4ﯾﻤﻜﻦ اﺳﺘﺨﺪام ھﺬه اﻟﻄﺮﯾﻘﺔ ﺑﺎﺿﺎﻓﺔ ﺟﻤﻠﺔ SEGMENT SPACE MANAGEMENT AUTO
اﻟﻰ ﺟﻤﻠﺔ .CREATE TABLESPACE
ﻣﻼﺣﻈﺔ :ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﻛﺒﯿﺮة ﺑﻮاﺳﻄﺔ LOBsﻣﺜﻞ اﻟﺼﻮر واﻟﻔﯿﺪﯾﻮ وﻏﯿﺮھﺎ وﺳﻮف ﯾﺘﻢ اﻟﺘﻄﺮق ﻟﮭﺎ ﻓﻲ
ﻓﺼﻞ ﻻﺣﻖ.
99
STORAGE INFORMATION
:DBA_EXTENTSﯾﻮﻓﺮ ﻣﻌﻠﻮﻣﺎت ﻣﺜﻞ رﻗﻢ ال Extentورﻗﻢ ال Blockاﻟﺘﻲ ﯾﻨﺘﻤﻲ ﻟﮭﺎ وﻋﺪد ·
ال Blocksﺿﻤﻦ ال Extentوﻏﯿﺮھﺎ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت.
100
UNDO SEGMENT
ﺗﺴﺘﺨﺪم ال Undo Segmentﻓﻲ ﺣﻔﻆ ﻧﺴﺨﺔ ﻋﻦ اﻟﺒﯿﺎﻧﺎت ﻗﺒﻞ ﺗﻌﺪﯾﻠﮭﺎ ﺑﻮاﺳﻄﺔ اﻟﻤﮭﻤﺎت
" "Transactionsاﻟﺘﻲ أﺟﺮﯾﺖ ﻋﻠﯿﮭﺎ ،ﻣﺜﻼً ﻟﻜﻲ ﯾﺘﻤﻜﻦ اﻷوراﻛﻞ ﻣﻦ اﺳﺘﻌﺎدة اﻟﺒﯿﺎﻧﺎت ﻗﺒﻞ اﻟﺘﻌﺪﯾﻞ ﻓﻲ ﺣﺎل
ﻃﻠﺐ اﻟﻤﺴﺘﺨﺪم Rollbackﻋﻮﺿﺎً ﻋﻦ . Commitﯾﺘﻢ اﺳﺘﺨﺪام ال Undo Segment Headerﻟﺘﺨﺰﯾﻦ
ﺑﯿﺎﻧﺎت ﺣﻮل اﻟﻤﮭﻤﺎت " "Transactionsاﻟﺤﺎﻟﯿﺔ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ال .Undo Segment
ﻟﻜﻲ ﯾﺘﻤﻜﻦ اﻷوراﻛﻞ ﻣﻦ اﺳﺘﻌﺎدة اﻟﺒﯿﺎﻧﺎت ﻗﺒﻞ اﻟﺘﻌﺪﯾﻞ ﻓﻲ ﺣﺎل ﻃﻠﺐ اﻟﻤﺴﺘﺨﺪم Rollbackﻋﻮﺿﺎً ﻋﻦ ·
.Commit
ﻟﻜﻲ ﯾﺘﻤﻜﻦ اﻷوراﻛﻞ ﻣﻦ اﺳﺘﻌﺎدة اﻟﺒﯿﺎﻧﺎت اﻷﺻﻠﯿﺔ ﻓﻲ ﺣﺎل ﺗﻌﻄﻞ اﻟﻤﮭﻤﺔ أو ﺣﺪوث ﺧﻠﻞ ﻃﺎرئ ﻟﻞ ·
Instanceﯾﺘﻄﻠﺐ ﻋﻤﻠﯿﺔ ال .Recovery
ﻣﻼﺣﻈﺔ :ﺗﺴﺘﺨﺪم اﻟﻤﮭﻤﺎت اﻟﻤﺮﺗﺒﻄﺔ ﺑﺒﻌﻀﮭﺎ " Undo Segment ، "Serial Transactionواﺣﺪة ﻓﻘﻂ
وﯾﻤﻜﻦ ﻟﻠﻤﮭﻤﺎت اﻟﻤﺘﺰاﻣﻨﺔ اﺳﺘﺨﺪام ذات ال .Undo Segment
ھﻮ رﻗﻢ ﻣﻤﯿﺰ " "Unique Numberﯾﺘﻢ ﺗﻜﻮﯾﻨﮫ ﻋﻨﺪ ﺣﻮث أﻣﺮ ،Commitوﯾﺴﺎﻋﺪ ﻓﻲ ﻋﻤﻠﯿﺔ ال Read
Consistencyوﻋﻤﻠﯿﺔ ال .Recoveryﯾﺘﻢ ﺗﺨﺰﯾﻦ ال SCNﻓﻲ ال Redo Log ، Control Files
، Filesو .Block Headers
:Read Consistency
ھﻲ إﻣﻜﺎﻧﯿﺔ رؤﯾﺔ أﺣﺪ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ اﻟﺒﯿﺎﻧﺎت اﻷﺻﻠﯿﺔ ﻗﺒﻞ اﻟﺘﻌﺪﯾﻞ ﺑﺎﻟﺮﻏﻢ ﻣﻦ ﻗﯿﺎم ﻣﺴﺘﺨﺪم أﺧﺮ ﺑﺘﻌﺪﯾﻞ اﻟﺒﯿﺎﻧﺎت
ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ .ﻟﺤﺪوث ال Read Consistencyﯾﺠﺐ أن ﯾﻜﻮن اﻟﻤﺴﺘﺨﺪم اﻷول ﻗﺪ ﻃﻠﺐ اﻟﺒﯿﺎﻧﺎت ﻗﺒﻞ أن
ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ﺑﺘﺄﻛﯿﺪ اﻟﺘﻌﺪﯾﻼت ﻋﻠﻰ اﻟﺘﻐﯿﺮات ﺑﻮاﺳﻄﺔ ، Commitﻋﻨﺪﺋﺬ ﯾﺤﻀﺮ اﻷوراﻛﻞ اﻟﺒﯿﺎﻧﺎت
اﻟﻤ ﻄﻠﻮﺑﺔ ﻟﻠﻤﺴﺘﺨﺪم اﻷول ﻣﻦ ال .Undo Segment
101
ﻣﺜﺎل:
-1ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻷول ﺑﻌﻤﻞ ﻣﮭﻤﺎت ﻋﻠﻰ ﺑﯿﺎﻧﺎت ال Employees Tablesﺗﺆدي اﻟﻰ ﺗﻐﯿﺮ اﻟﺒﯿﺎﻧﺎت ﻣﺜﻞ
ﻋﻤﻠﯿﺔ .UPDATE
-2ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺘﺨﺰﯾﻦ ﻧﺴﺨﺔ ﻟﺒﯿﺎﻧﺎت ال Employees Tableﻗﺒﻞ اﻟﺘﻌﺪﯾﻞ ﻓﻲ ال .Undo Segment
-3ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ﺑﻄﻠﺐ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻋﺒﺮ اﺳﺘﺨﺪام Queryﻣﺜﻞ Select * From
،Employeesوﻋﻨﺪھﺎ ﯾﺘﻢ ﺗﺤﺪﯾﺪ رﻗﻢ ال SCNاﻟﺬي ﯾﺴﺘﺨﺪم ﻟﻀﻤﺎن ﻋﺪم ﻋﺮض اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﺤﺪث ﻟﮭﺎ
ﺗﻐﯿﯿﺮ وﻟﻢ ﯾﺤﺪث ﻟﮭﺎ .Commit
-4اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﺮوﺿﺔ ﻋﻠﻰ اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ھﻲ اﻟﺒﯿﺎﻧﺎت ﻗﺒﻞ اﻟﺘﻌﺪﯾﻼت اﻟﺘﻲ أﺟﺮاھﺎ وﯾﺠﺮﯾﮭﺎ اﻟﻤﺴﺘﺨﺪم اﻷول
و ھﻲ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ ال .Undo Segment
-5ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻷول ﺑﺎﻧﮭﺎء و ﺗﺄﻛﯿﺪ اﻟﻤﮭﻤﺎت اﻟﺘﻲ أﺟﺮاھﺎ ﺑﺎﺳﺘﺨﺪام ، Commitﻓﯿﺘﻢ ﺗﺠﺪﯾﺪ ال .SCN
-6ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ﺑﻌﺪ ﻗﻠﯿﻞ ﺑﻄﻠﺐ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﺮة أﺧﺮى .Select * From Employees
-7اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﺮوﺿﺔ ھﺬه اﻟﻤﺮة ھﻲ اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ اﻟﺘﻌﺪﯾﻼت اﻟﺘﻲ أﺟﺮاھﺎ اﻟﻤﺴﺘﺨﺪم اﻷول .
ﻋﻨﺪﻣﺎ ﻻ ﯾﺴﺘﻄﯿﻊ اﻷوراﻛﻞ ﺗﻮﻓﯿﺮ ﺧﺪﻣﺔ ال Read Consistencyﯾﻈﮭﺮ ھﺬا اﻟﺨﻄﺄ ﻟﻠﻤﺴﺘﺨﺪم .ﯾﻤﻜﻦ أن ﯾﻈﮭﺮ
اﻟﺨﻄﺄ ﻋﻨﺪﻣﺎ ﯾﻄﻠﺐ اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ Queryﯾﻜﻮن اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺘﺨﺮﺟﺔ ﻃﻮﯾﻠﺔ ﺟﺪاً ،ﺑﺤﯿﺚ ﻗﺒﻞ أن ﯾﻨﺘﮭﻲ ال
Queryﻣﻦ اﻟﻌﻤﻞ ﯾﺤﺪث أﻣﺮان ،اﻷﻣﺮ اﻷول ھﻮ أن اﻟﻤﺴﺘﺨﺪم اﻷول ﻃﻠﺐ Commitﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت ،واﻷﻣﺮ
اﻟﺜﺎﻧﻲ أﻧﮫ ﺗﻢ اﺳﺘﺨﺪام ذات ال Undo Segmentﻣﻦ ﻗﺒﻞ ﻣﮭﻤﺔ أﺧﺮى ﺑﺤﯿﺚ ﺗﻢ ﺗﻐﯿﯿﺮ اﻟﺒﯿﺎﻧﺎت
" "Overwrittenﻓﻲ ال .Undo Segment
ﺑﺎﺳﺘﺨﺪام اﻟﻌﺎﻣﻞ " UNDO_RETENTION "Parameterﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ ﻛﻢ ﻣﻦ اﻟﻮﻗﺖ ﯾﺴﻤﺢ ﻟﻠﺒﯿﺎﻧﺎت
ﺑﺎﻟﺒﻘﺎء ﻓﻲ ال Undo Table paceوﺑﺬﻟﻚ ﺗﻮﻓﯿﺮ ﺧﺪﻣﺔ ال .Read Consistencyاذا ﺗﻢ ﺗﺤﺪﯾﺪ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ
ب ، 900ﻓﮭﺬا ﯾﻌﻨﻲ أﻧﮫ ﯾﺴﻤﺢ ﻟﻠﺒﯿﺎﻧﺎت اﻟﺒﻘﺎء ﻟﻤﺪة 15دﻗﯿﻘﺔ .ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻞ ﻓﻲ ال Initialization
، Parameter Fileوﯾﻤﻜﻦ ﺗﻌﺪﯾﻠﮫ داﯾﻨﺎﻣﯿﻜﯿﺎً ﺑﻮاﺳﻄﺔ .ALTER SYSTEM
ﻣﻼﺣﻈﺔ :اذا ﻛﺎن ﺣﺠﻢ ال Undo Tablespaceﺻﻐﯿﺮ ،ﯾﻤﻜﻦ أن ﻻ ﺗﻈﻞ اﻟﺒﯿﺎﻧﺎت ﻟﻠﻮﻗﺖ اﻟﻤﺤﺪد ﺑﺎﻟﻌﺎﻣﻞ
، UNDO_RETENTIONﺣﯿﺚ ﯾﺘﻢ اﺳﺘﺨﺪام ﻋﻤﻠﯿﺎت ﺣﺴﺎﺑﯿﺔ ﻟﺘﺒﺪﯾﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ.
102
MANAGING UNDO DATA
ﯾﺘﻢ ﺗﺨﺼﯿﺺ Undo Tablespaceواﺣﺪة ذات ﻣﺴﺎﺣﺔ ﻛﺒﯿﺮة ﻟﻜﻞ .Instanceﯾﺘﻢ اﻟﺘﺤﻜﻢ ﻓﻲ اﻟﺒﯿﺎﻧﺎت
اﻟﻤﻮﺟﻮدة ﻓﻲ ال Undo Tablespaceﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ ﻣﻦ ﻗﺒﻞ ال .Oracle Serverﯾﺘﻢ ﺗﺴﻤﯿﺔ أﺳﻤﺎء
Undo Segmentﻃﺒﻘﺎً ﻟﻠﻄﺮﯾﻘﺔ اﻟﺘﺎﻟﯿﺔ _SYSSMUn$ﻣﺜﻞ ._SYSSMU1$
ﻟﻜﻲ ﺗﻌﻤﻞ ﻃﺮﯾﻘﺔ ال Automatic Undo Managementﯾﺠﺐ ﺗﻮﻓﺮ Undo Tablespaceواﺣﺪة ﻓﻲ
ﺣﺎﻟﺔ .Activeﺑﺎﻟﺮﻏﻢ أﻧﮫ ﯾﻤﻜﻦ أن ﺗﺘﻮاﺟﺪ أﻛﺜﺮ ﻣﻦ Undo Tablespaceﻓﻲ ال Databaseوﻟﻜﻦ ﻻ ﯾﻤﻜﻦ
أن ﯾﻜﻮن أﻛﺜﺮ ﻣﻦ واﺣﺪة ﻓﻲ ﺣﺎﻟﺔ .Active
ﻻﺳﺘﺨﺪام ھﺬه اﻟﻄﺮﯾﻘﺔ ﯾﺠﺐ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻞ " UNDO_MANAGEMENT "Parameterﺑﺎﻟﻘﯿﻤﺔ
AUTOﻓﻲ ال .Initialization Parameter Fileﻻ ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ﺑﻄﺮﯾﻘﺔ داﯾﻨﺎﻣﯿﻜﯿﺔ ﺑﻌﺪ
ﺗﺸﻐﯿﻞ ال ،Databaseاﻟﻘﯿﻤﺔ ال Defaultھﻲ .MANUAL
ﻟﺘﺤﺪﯾﺪ ال Undo Tablespaceاﻟﺘﻲ ﺳﻮف ﯾﺘﻢ اﻟﺘﺤﻜﻢ ﺑﮭﺎ ﺑﻮاﺳﻄﺔ Automatic Undo
Managementﯾﺠﺐ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻞ" UNDO_TABLESPACE "Parameterﻓﻲ ال
، Initialization Parameter Fileإﻻ أن ﯾﻜﻮن ھﻨﺎﻟﻚ Undo Tablespaceواﺣﺪة ﻓﻲ ال Database
ﻋﻨﺪﺋﺬ ﻻ ﯾﺸﺘﺮط ﺗﺤﺪﯾﺪ ھﺬا اﻟﻌﺎﻣﻞ " ."Parameterﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ ھﺬا اﻟﻌﺎﻣﻞ ﺑﻄﺮﯾﻘﺔ داﯾﻨﺎﻣﯿﻜﯿﺔ ﺑﻮاﺳﻄﺔ
.ALTER SYSTEM
103
:Snapshot Too Old Error
ﯾﻤﻜﻦ أن ﯾﺤﺪث ھﺬا اﻟﺨﻄﺄ اﯾﻀﺎً اذا ﻣﺎ ﺗﻢ ﺗﻐﯿﯿﺮ ال )Undo Tablespaceﺑﻮاﺳﻄﺔ ال ALTER
SYSTEMأو ﻋﺒﺮ ال ( Consoleوﻛﺎن ﻣﺎ ﯾﺰال Queryﯾﺴﺘﺨﺮج اﻟﺒﯿﺎﻧﺎت ﻣﻦ ال Undo Tablespace
اﻟﺘﻲ ﺗﻢ ﺗﻐﯿﯿﺮھﺎ.
ﻣﻼﺣﻈﺎت:
-1ﻓﻲ ﺣﺎل ﻟﻢ ﯾﺘﻢ ﻛﺘﺎﺑﺔ ﺟﻤﻠﺔ ال UNDO TABLESPACEﻓﻲ ﺟﻤﻠﺔ، CREATE DATABASE
وﻛﺎﻧﺖ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ UNDO_MANAGEMENTﺗﺴﺎوي ، AUTOﻓﺈن اﻷوراﻛﻞ ﺳﯿﺮﻓﺮ ﯾﻘﻮم ﺑﺘﻜﻮﯾﻦ
Undo Tablespaceﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ ﺑﻤﺴﻤﻰ .SYS_UNDOTBS
-2ﯾﻤﻜﻦ ﺣﺬف Undo Tablespaceﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ DROP TABLESPACEاﻟﺘﻲ ﺟﺎء ﺷﺮﺣﮭﺎ
ﺳﺎﺑﻘﺎً ،وﻟﻜﻦ ﻻ ﯾﻤﻜﻦ ﺣﺬف ال Undo Tablespaceاذا ﻛﺎﻧﺖ ﺗﺴﺘﺨﺪم ﺑﻮاﺳﻄﺔ ال .(Active)Instance
ﺗﺬﻛﺮ:
:Resource Manager
ﯾﻤﻜﻦ اﺳﺘﺨﺪام ال Resource Managerﻟﻠﺘﺤﻜﻢ ﺑﺎﻟﻨﻈﺎم ﺑﺤﯿﺚ ﯾﺘﻢ ﻣﻨﻊ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ أو ﻣﺠﻤﻮﻋﺔ ﻣﻦ
اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻣﻦ اﺳﺘﮭﻼك ﻣﺴﺎﺣﺔ ﻛﺒﯿﺮة ﻟﻞ Undo Dataﺑﺤﯿﺚ ﯾﺘﻢ ﺗﺨﺼﯿﺺ ﻣﺴﺎﺣﺔ ﻗﺼﻮى ""Maxsize
ﻟﻜﻞ ﻣﺠﻤﻮﻋﺔ ﻻﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ ﺗﺨﺰﯾﻦ ال .Undo Dataﯾﺘﻢ ﺗﺨﺼﯿﺺ ﻣﺴﺎﺣﺔ ﻗﺼﻮى ﺑﺘﺤﺪﯾﺪ ال
UNDO_POOLواﻟﺬي ھﻮ ﻓﻲ اﻟﺤﺎﻟﺔ اﻹﻓﺘﺮاﺿﯿﺔ " "Defaultﻣﺤﺪد ﺑﺎﻟﻘﯿﻤﺔ .UNLIMITED
104
QUERYING UNDO INFORMATION
:Undo Segment اﻟﺘﺎﻟﯿﺔ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل الViews ﯾﻤﻜﻦ اﺳﺘﺨﺪام ال
105
106
STORING DATA
ﯾﺘﻢ ﺗﺨﺰﯾﻦ ال DATAﻓﻲ أوراﻛﻞ ﻋﻠﻰ ﺷﻜﻞ Rowsو Columnsﻓﻲ ال .Tablesﯾﻮﺟﺪ ﻋﺪة أﻧﻮاع ﻣﻦ ال
Tablesﻣﺜﻞ:
) TABLESأو :(Regular Tablesھﻲ ال Tableاﻟﺘﻲ ﯾﺘﻢ ﻣﻌﻈﻢ اﻟﻌﻤﻞ ﻋﻠﯿﮭﺎ واﻟﺘﻲ ﯾﻜﻮن ·
اﻟﺘﺤﻜﻢ ﺑﺘﻮزﯾﻊ ﺑﺎل Rowsﻓﯿﮭﺎ ﻣﻦ وﻇﺎﺋﻒ ال .Oracle Sever
:DATA TYPES
ﯾﻮﻓﺮ اﻷوراﻛﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ Data Typesﻟﺘﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ،ﺗﺘﺒﻊ ﺛﻼﺛﺔ أﻧﻮاع ھﻢ Scalar, Collection,
.Relationship
107
:DATEﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ ﺛﺎﺑﺘﺔ ﻟﺘﺨﺰﯾﻦ اﻟﺘﺎرﯾﺦ واﻟﻮﻗﺖ .ﺗﻮﻓﺮ ﺳﺒﻊ ﺧﺎﻧﺎت ﻟﻠﻘﺮن واﻟﺴﻨﺔ واﻟﯿﻮم ·
واﻟﺴﺎﻋﺔ واﻟﺪﻗﯿﻘﺔ و اﻟﺜﺎﻧﯿﺔ وأﻗﺼﻰ ﺗﺎرﯾﺦ ﯾﻤﻜﻦ أن ﯾﺨﺰن ھﻮ ال 31ﻣﻦ دﯾﺴﻤﺒﺮ ﻟﻌﺎم ، 9999أﻣﺎ أﻗﺪم
ﺗﺎرﯾﺦ ﯾﻤﻜﻦ أن ﯾﺨﺰن ھﻮ ﯾﻨﺎﯾﺮ ﻣﻦ ﻋﺎم 1.4712ﻗﺒﻞ اﻟﻤﯿﻼد.
:TIMESTAMPﺗﻮﻓﺮ ﺧﺪﻣﺔ ﻣﻤﺎﺛﻠﺔ ﻟﻞ DATEﻋﺪا أﻧﮭﺎ ﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ إﺿﺎﻓﯿﺔ ﻟﺘﺨﺰﯾﻦ أﺟﺰاء ·
اﻟﺜﺎﻧﯿﺔ .ﺗﻮﻓﺮ 9ﺧﺎﻧﺎت ﻟﺘﺴﺠﯿﻞ أﺟﺰاء اﻟﺜﺎﻧﯿﺔ ) ( 0.987654321واﻟﻌﺪد ال Defaultھﻮ 6ﺧﺎﻧﺎت.
:TIMESTAMP WITH TIME ZONEﺗﻮﻓﺮ ﺧﺪﻣﺔ ﻣﻤﺎﺛﻠﺔ ﻟﻞ ، TIMESTAMPإﻻ ·
اﻧﮭﺎ ﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ إﺿﺎﻓﯿﺔ ﻟﻌﺮض اﻟﻔﺎرق اﻟﺰﻣﻨﻲ ﺑﯿﻦ اﻟﻤﺴﺘﺨﺪم واﻟﺘﻮﻗﯿﺖ اﻟﻌﺎﻟﻤﻲ )ﺗﻮﻗﯿﺖ ﺟﺮﯾﻨﺘﺶ(.
ﯾﻈﮭﺮ اﻟﻔﺎرق ﻋﻠﻰ ﺷﻜﻞ ﻋﺪد ﻣﻦ اﻟﺴﺎﻋﺎت واﻟﺪﻗﺎﺋﻖ ﻓﻘﻂ.
:TIMESTAMP WITH LOCAL TIME ZONEﺗﻮﻓﺮ ﺧﺪﻣﺔ ﻣﻤﺎﺛﻠﺔ ﻟﻞ ·
، TIMESTAMPإﻻ اﻧﮭﺎ ﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ إﺿﺎﻓﯿﺔ ﻟﻌﺮض ال ،Session Time Zoneاﻟﺬي
ﯾﺴﺘﺨﺪم ﻓﻲ إدﺧﺎل اﻟﺒﯿﺎﻧﺎت ﺑﯿﻦ ﻓﺮوع اﻟﺸﺮﻛﺎت اﻟﺒﻌﯿﺪة ﻋﻦ ﺑﻌﻀﮭﺎ ،أي ﻓﻲ ﺣﺎل ادﺧﺎل اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﻗﺒﻞ
اﻟﻤﺴﺘﺨﺪم اﻷول اﻟﺬي ﺑﯿﻨﮫ وﺑﯿﻦ اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ زاﺋﺪ 3ﺳﺎﻋﺎت زﻣﻨﯿﺔ ،ﻓﺈن اﻟﻤﺴﺘﺨﺪم اﻟﺜﺎﻧﻲ ﯾﺮى
ﺗﻮﻗﯿﺖ إدﺧﺎل اﻟﺒﯿﺎﻧﺎت ﺑﺘﻮﻗﯿﺘﮫ ھﻮ ) زاﺋﺪ 3ﺳﺎﻋﺎت زﻣﻨﯿﺔ( و ﻟﯿﺲ ﺑﺘﻮﻗﯿﺖ اﻟﻤﺴﺘﺨﺪم اﻷول اﻟﺬي أدﺧﻞ
اﻟﺒﯿﺎﻧﺎت .ﯾﻈﮭﺮ اﻟﻔﺎرق ﻋﻠﻰ ﺷﻜﻞ ﻋﺪد ﻣﻦ اﻟﺴﺎﻋﺎت واﻟﺪﻗﺎﺋﻖ ﻓﻘﻂ.
:ROWﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ ﻣﺘﻐﯿﺮة ﻟﺘﺨﺰﯾﻦ ال .Binary Dataأﻗﺼﻰ ﻣﺴﺎﺣﺔ ﯾﻤﻜﻦ اﺧﺘﯿﺎرھﺎ ھﻲ 2000 ·
ﺑﺎﯾﺖ.
:LONG RAWﺗﻮﻓﺮ ﺧﺪﻣﺔ ﻣﻤﺎﺛﻠﺔ ﻟﻞ Rowوﻟﻜﻦ ﻣﺴﺎﺣﺔ أﻛﺒﺮ ) 2GBﻻ ﯾﻨﺼﺢ ﺑﺎﺳﺘﺨﺪاﻣﮭﺎ( ·
:LONGﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ ﻛﺒﯿﺮة ﻟﺘﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ،ﯾﻤﻜﻦ أن ﺗﺼﻞ اﻟﻤﺴﺎﺣﺔ اﻟﻰ ) 2GBﻻ ﯾﻨﺼﺢ ·
ﺑﺎﺳﺘﺨﺪاﻣﮭﺎ ،وﯾﻔﻀﻞ اﺳﺘﺨﺪام CLOBأو .(NCLOBﻻ ﯾﻤﻜﻦ ﻟﻞ Tableأن ﺗﺤﻮي أﻛﺜﺮ ﻣﻦ
Longواﺣﺪة.
:CLOB, NCLOBﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ 4GBﻟﺘﺨﺰﯾﻦ ال .Character Data ·
:BLOBﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ 4GBﻟﺘﺨﺰﯾﻦ Unstructured Dataﻣﺜﻞ Binary Imagesو ·
.Documents
:BFILEﺑﺎﺳﺘﺨﺪاﻣﮭﺎ ،ﺗﺴﺘﻄﯿﻊ ﺗﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﺧﺎرج ال Databaseﻓﻲ ﻣﻠﻔﺎت ﺧﺎرﺟﯿﺔ ،ﯾﻤﻜﻦ أن ·
ﯾﺼﻞ ﺣﺠﻢ اﻟﻤﻠﻒ اﻟﺨﺎرﺟﻲ اﻟﻰ .4GB
:ROWID, UROWIDﺗﻮﻓﺮ ﻣﺴﺎﺣﺔ 10 bytesﻟﺘﺨﺰﯾﻦ رﻗﻢ ﻣﻤﯿﺰ ﻟﻜﻞ Rowﻓﻲ ال ·
Databaseﻟﯿﺴﺘﻄﯿﻊ اﻷوراﻛﻞ ﺗﺤﺪﯾﺪ ال Rowﺑﺴﺮﻋﺔ أﻛﺒﺮ ﻋﻨﺪ اﻟﺒﺤﺚ ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت .اﻟﻔﺮق ﺑﯿﻦ
ROWIDو UROWIDأن اﻷﺧﯿﺮة ﺗﻮﻓﺮ ﻣﯿﺰة ﺗﺴﺠﯿﻞ رﻗﻢ ﻣﻤﯿﺰ ل Rowsﺗﺘﺒﻊ No-Oracle
)Tablesأي ﻣﻦ ﻧﻮع Databaseاﺧﺮ ﻏﯿﺮ اﻷوراﻛﻞ(.
) :VARYING ARRAYS (VARRAYﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﺮﺗﺒﺔ ﻣﻦ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺘﻜﻮن ·
ﻣﻦ ﻧﻔﺲ ال ) Data Typeﻣﺜﻼً ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت أرﻗﺎم(.
:NESTED TABLESﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻏﯿﺮ ﻣﺮﺗﺒﺔ ﻣﻦ ال ، Rowsﺗﺨﺰن ال Rowsﺑﺸﻜﻞ ·
ﻣﻨﻔﺼﻞ ﻋﻦ ال Tableﺑﺤﯿﺚ ﯾﻮﺟﺪ وﺻﻠﺔ " "Pointerﻣﻦ ﻛﻞ Rowاﻟﻰ ال .Table
108
MANAGING TABLES
:CREATE TABLES
ﻟﺘﻜﻮﯾﻦ ، Tableﯾﺘﻢ اﺳﺘﺨﺪام ﺟﻤﻠﺔ CREATE TABLEاﻟﺘﻲ ﻣﻦ اﻟﻤﻔﺮوض ﻗﺪ ﺗﻌﺮﻓﺖ ﻋﻠﯿﮭﺎ ﺑﺎﻟﺘﻔﺼﯿﻞ
ﺧﻼل دراﺳﺘﻚ ﻟﻼﻣﺘﺤﺎن اﻷول " ."Introduction to SQLﻟﻜﻲ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم ﺗﻜﻮﯾﻦ Tableﻓﻲ ال
Schemaاﻟﺨﺎص ﺑﮫ ،ﯾﺠﺐ أن ﯾﻜﻮن ﻟﺪﯾﮫ ، CREATE TABLE privilegeأﻣﺎ ﻟﺘﻜﻮﯾﻦ Tableﻓﻲ
Schemasﻟﻤﺴﺘﺨﺪﻣﯿﻦ أﺧﺮﯾﻦ ،ﯾﺠﺐ أن ﯾﻜﻮن ﻟﺪﯾﮫ .CREATE ANY TABLE privilege
ﻋﻠﻰ اﻋﺘﺒﺎر أن ذﻛﺮ ،TABLESPACE EXAMPLEﯾﺪل ﻋﻠﻰ اﺳﻢ ال Tablespaceاﻟﺘﻲ ﺗﺤﻮي ال
Tableوھﻲ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ .Example Tablespaceوﻓﻲ ﺣﺎل ﻋﺪم ذﻛﺮ ھﺬه اﻟﺠﻤﻠﺔ ﯾﺘﻢ اﺧﺘﯿﺎر ال
Defaultوھﻲ ﻋﺎدة ﻣﺎ ﺗﻜﻮن ال .System Tablespaceﻣﻊ اﻟﻌﻠﻢ أﻧﮫ ﺗﻢ ﺗﻜﻮﯾﻦ ال Tableﻓﻲ ال
Schemaاﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم .HR
109
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.2
ﻣﻼﺣﻈﺔ :ﻻ ﯾﺸﺘﺮط ﻛﺘﺎﺑﺔ ﻛﻞ ﻋﻮاﻣﻞ ال ، Storageاذ ﯾﻤﻜﻦ أﺧﺪ اﻟﻘﯿﻤﺔ ال Defaultﻟﻜﻞ ﻋﺎﻣﻞ.
110
:CREATING TEMPORARY TABLES
ﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ Temporary Tableﻟﺘﺨﺰﯾﻦ ﺑﯿﺎﻧﺎت ﻣﺆﻗﺘﮫ ﺗﻠﺰم ﻓﻘﻂ ﺧﻼل اﻟﻘﯿﺎم ﺑﺄﺣﺪ اﻟﻤﮭﻤﺎت
" "Transactionأو ﻃﻮال ﻓﺘﺮة ﻋﻤﻞ ال ،Sessionأي ﻓﻲ اﻟﺤﺎﻟﺔ اﻷوﻟﻰ ﯾﺘﻢ ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ اﻹﻧﺘﮭﺎء ﻣﻦ
اﻟﻤﮭﻤﺔ )ﻣﺜﻼً ﻛﺘﺎﺑﺔ ،(Commitأﻣﺎ ﻓﻲ اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﯿﺔ ﯾﺘﻢ ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ ﺧﺮوج اﻟﻤﺴﺘﺨﺪم ﻣﻦ ال
.Database
ﻟﺘﻜﻮﯾﻦ Temporary Tableﯾﺘﻢ اﺳﺘﺨﺪام ،CREATE GLOBAL TEMPORARY TABLE
وﻟﺘﺤﺪﯾﺪ اذا ﻣﺎ ﻛﺎﻧﺖ اﻟﺒﯿﺎﻧﺎت ﺳﻮف ﺗﺤﺬف ﺑﻌﺪ اﻟﻤﮭﻤﺔ أو ﺑﻌﺪ اﻧﺘﮭﺎء ال Sessionﯾﺘﻢ إﺿﺎﻓﺔ اﻟﺠﻤﻞ اﻟﺘﺎﻟﯿﺔ:
· :ON COMMIT DELETE ROWSﺗﺤﺬف اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻤﮭﻤﺔ.
· :ON COMMIT PRESERVE ROWSﺗﺤﺬف اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ اﻧﺘﮭﺎء ال .Session
:ALTERING TABLES
111
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.4
اذا ﻟﻢ ﺗﺘﻢ ﻛﺘﺎﺑﺔ ﺟﻤﻠﺔ ] ، SIZE number [K|Mﯾﺘﻢ ﺗﺤﺪﯾﺪ ﺣﺠﻢ ال Extentﺑﻨﺎءاً ﻋﻠﻰ اﻟﺤﺠﻢ اﻟﻤﺤﺪد ب
، NEXTأﻣﺎ اذا ﻟﻢ ﺗﺘﻢ ﻛﺘﺎﺑﺔ ﺟﻤﻠﺔ ال ’ ، DATAFILE ‘filenameﻓﯿﺘﻢ اﺿﺎﻓﺔ Extentاﻟﻰ أي Data
Fileﺿﻤﻦ ال Tablespaceاﻟﺘﻲ ﺗﺤﻮي ال .Table
112
:Moving Tables
ﻣﻼﺣﻈﺔ :ﯾﻤﻜﻦ ﺗﻨﻔﯿﺬ اﻟﻌﻤﻠﯿﺔ ﻟﺘﻐﯿﯿﺮ ﺧﻮاص ال Storage Parametersدون ﻧﻘﻞ ال Tableاﻟﻰ
Tablespaceأﺧﺮى )ﺑﻨﻘﻞ ال Tableﻣﻦ Segmentاﻟﻰ أﺧﺮى( ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل .7.6
ﻣﻼﺣﻈﺔ :2ﯾﺤﺐ اﻋﺎدة ﺗﻌﺮﯾﻒ ال Indexesاﻟﺨﺎﺻﺔ ﺑﺎل Tableاﻟﺘﻲ ﺗﻢ ﻧﻘﻠﮭﺎ ﻟﺘﺠﻨﺐ اﻷﺧﻄﺎء.
:Truncate a Table
ﺑﺎﺳﺘﺨﺪام أﻣﺮ ، TRUNCATE TABLEﯾﺘﻢ ﺣﺬف ﺟﻤﯿﻊ ﺑﯿﺎﻧﺎت ال Tableواﺳﺘﻌﺎدة اﻟﻤﺴﺎﺣﺔ اﻟﻤﺸﻐﻮﻟﺔ
)زﯾﺎدة اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﻟﯿﺔ( اﻟﺘﻲ ﻛﺎﻧﺖ ﺗﺸﻐﻠﮭﺎ اﻟﺒﯿﺎﻧﺎت .ﺗﻌﺘﺒﺮ TRUNCATE TABLEﻣﻦ أواﻣﺮ ال
) ،DATA DEFINITION LANGUAGE (DDLوﺑﺎﻟﺘﺎﻟﻲ ﻓﺈﻧﮭﺎ ﻻ ﺗﺴﺒﺐ ﺗﻜﻮن Undo Dataﻋﻠﻰ
اﻋﺘﺒﺎر أن أواﻣﺮ ال DDLﻻ ﯾﻤﻜﻦ أن ﯾﺤﺪث ﻟﮭﺎ ) Rollbackأي أﻧﮫ ﻻ ﯾﻤﻜﻦ اﺳﺘﻌﺎدة اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ ﺣﺬﻓﮭﺎ(.
ﻣﻼﺣﻈﺎت:
113
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.7
أﻣﺎ ال DBAأو أي ﻣﺴﺘﺨﺪم أﺧﺮ ﯾﻤﻠﻚ اﻟﺼﻼﺣﯿﺎت " "Privilegesاﻟﻼزﻣﺔ ،ﻓﯿﺠﺐ ذﻛﺮ ال :Schema
:Drop a Table
ﯾﻤﻜﻦ ﺣﺬف Tableﺑﺎﻟﻜﺎﻣﻞ ﻣﻊ ﺑﯿﺎﻧﺎﺗﮭﺎ ﺑﺎﺳﺘﺨﺪام أﻣﺮ .DROP TABLEﯾﺠﺐ إﺿﺎﻓﺔ ﺟﻤﻠﺔ
CASCADE CONSTRAINTSاذا ﻛﺎن ﻟﻞ Tableﻋﻼﻗﺔ Foreign keyﻣﻊ Tableأﺧﺮى.
:Dropping a Column
ﻣﻼﺣﻈﺔ :ﯾﺤﺐ ﻋﻠﻰ اﻷﻗﻞ أن ﯾﺒﻘﻰ Columnواﺣﺪ ﻓﻲ ال Tableﺑﻌﺪ اﻟﺤﺬف وإﻻ ﻟﻦ ﺗﻨﺠﺢ ﻋﻤﻠﯿﺔ اﻟﺤﺬف ،
وﻻ ﯾﻤﻜﻦ اﺳﺘﺮﺟﺎع ال Columnاﻟﻤﺤﺬوف ﺑﻌﺪ ﺣﺬﻓﮫ.
114
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.9
ﻓﻲ ﺣﺎﻟﺔ ال Columnاﻟﺬي ﯾﺤﻮي ﺑﯿﺎﻧﺎت ﻛﺒﯿﺮة ،وﺗﻮﻗﻔﺖ ﻋﻤﻠﯿﺔ اﻟﺤﺬف ﻗﺒﻞ ﺣﺬف ال Columnﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ:
115
MANAGING INDEXES
:UNIQUE INDEXﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ ھﺬه اﻟﻨﻮع ﻟﻀﻤﺎن ﻋﺪم وﺟﻮد ﺑﯿﺎﻧﺎت ﻣﺘﺸﺎﺑﮫ ﻓﻲ ال Rows ·
ﺿﻤﻦ ال Columnاﻟﺬي ﺗﻢ ﺗﻜﻮﯾﻦ Indexﻋﻠﯿﮫ.
:NON-UNIQUE INDEXﯾﺴﻤﺢ ھﺬه اﻟﻨﻮع ﺑﺘﺸﺎﺑﮫ ﺑﯿﺎﻧﺎت ال Rowsﻓﻲ ال Columnاﻟﺬي ·
ﺗﻢ ﺗﻜﻮﯾﻦ Indexﻋﻠﯿﮫ.
:FUNCTION-BASED INDEXﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ ھﺬا اﻟﻨﻮع ﻟﺘﺴﺮﯾﻊ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻦ ال ·
Columnsاﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ ﻋﻤﻠﯿﺎت ﻣﺨﺘﻠﻔﺔ" "Functionsﻣﺜﻞ اﺳﺘﺨﺪام ال SUBSTRأو
INSTRأو REPLACEأو ﻏﯿﺮھﺎ ﻓﻲ ال .Column
:PARTITIONED INDEXﯾﺘﻢ ﺗﻜﻮﯾﻦ أﻛﺜﺮ ﻣﻦ INDEXﻓﻲ أﻛﺜﺮ ﻣﻦ Segmentﻓﻲ ·
Tablespacesﻣﺨﺘﻠﻔﺔ .ﯾﺴﺘﺨﺪم ﻟﻞ Tablesاﻟﺘﻲ ﺗﺤﻮي ﺑﯿﺎﻧﺎت ﻛﺒﯿﺮة ﺟﺪاً وﻏﺎﻟﺒﺎً ﻣﺎ ﯾﺴﺘﺨﺪم ﻟﻞ
.Partitioned Tables
ﯾﻤﻜﻦ أن ﯾﺘﻢ ﺗﻜﻮﯾﻦ ال Indexاﻋﺘﻤﺎداً ﻋﻠﻰ ﻧﻤﻮذﺟﯿﻦ ھﻤﺎ B-Tree Indexأو .Bitmap Index
:B-TREE INDEX
اﻟﺘﻜﻮﯾﻦ اﻟﺪاﺧﻠﻰ ﻟﻞ Indexﯾﻜﻮن ﻋﻠﻰ ﺷﻜﻞ ﺷﺠﺮة ﻟﮭﺎ أﺻﻞ وﻓﺮوع .ﺗﺘﻜﻮن اﻟﺸﺠﺮة ﻣﻦ ﺛﻼﺛﺔ أﺟﺰاء ھﻲ ال
Rootاﻟﻤﺘﺼﻞ ﺑﺎل Branchesاﻟﻤﺘﺼﻠﺔ ﺑﺎل Leafsاﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ ال Index Entriesاﻟﺘﻲ ﺗﺸﯿﺮ أو
ﺗﺪل ﻋﻠﻰ ال Rowsﻓﻲ ال Tableﺑﺎﺳﺘﺨﺪام ال . ROWIDs Listsﻓﻲ اﻟﺮﺳﻢ 7.1ﯾﺪل اﻟﺮﻗﻢ 1ﻋﻠﻰ ال
، Rootاﻟﺮﻗﻢ 2ﻋﻠﻰ ال Branchواﻟﺮﻗﻢ 3ﻋﻠﻰ ال .Leaf
:HEADERﯾﺘﻢ ﺗﺨﺰﯾﻦ ﻓﯿﮫ ﻋﺪد ال Columnsاﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻧﻮع ال Single, ) Index ·
.(Composite
:COLUMN LENGTHاﻟﺬي ﯾﺤﺪد ﺣﺠﻢ ال .Column ·
:COLUMN VALUEاﻟﺬي ﯾﺤﺪد ﻗﯿﻤﺔ ال .Column ·
:ROWIDأرﻗﺎم ال ROWIDsاﻟﺨﺎﺻﺔ ﺑﺎل Rowsﻓﻲ ال .Table ·
116
رﺳﻢ 7.1
ﻣﻼﺣﻈﺎت:
-1ﻋﻨﺪﻣﺎ ﯾﺤﺪث ﻋﻤﻠﯿﺔ INSERTﻟﻞ Tableﯾﻘﻮم اﻷوراﻛﻞ ﺑﺈﺿﺎﻓﺔ Index Entryﺟﺪﯾﺪ ﻟﯿﻤﺜﻞ ال Rows
اﻟﺠﺪﯾﺪة اﻟﻤﻀﺎﻓﺔ.
-2ﻻ ﯾﻤﻜﻦ اﻹﺳﺘﻔﺎدة ﻣﻦ B-Tree Indexﻓﻲ ال Rowsاﻟﺘﻲ ﺗﺤﻮي ﻋﻠﻰ .NULLأي ﻋﻨﺪ اﻟﺒﺤﺚ ﺑﻮاﺳﻄﺔ
ﺟﻤﻠﺔ WHEREﻋﻦ ﻗﯿﻤﺔ (where last_name = null) NULLﻓﺈن اﻷوراﻛﻞ ﯾﻘﻮم ﺑﺈﺟﺮاء ﺑﺤﺚ ﻛﺎﻣﻞ
ﻋﻠﻰ ال Tableوﻻ ﯾﻘﻮم ﺑﺎﺳﺘﺨﺪام ال .Index
-3ﯾﻔﻀﻞ اﺳﺘﺨﺪاﻣﮭﺎ ﻋﻠﻰ ال Columnاﻟﺬي ﯾﺤﻮي ﺑﯿﺎﻧﺎت ﻣﺨﺘﻠﻔﺔ )ﻣﻤﯿﺰة( ﻛﺒﯿﺮة ﻣﺜﻞ أرﻗﺎم اﻟﮭﺎﺗﻒ
وﻋﻨﺎوﯾﻦ اﻟﻤﻮﻇﻔﯿﻦ .
-4ﻻ ﯾﻔﻀﻞ اﺳﺘﺨﺪاﻣﮭﺎ ﻋﻠﻰ ال Columnsاﻟﺘﻲ ﺗﺘﻌﺮض ﻟﺠﻤﻠﺔ ال ORﺑﺸﻜﻞ ﻣﺴﺘﻤﺮ.
:BITMAP INDEX
ﻣﻼﺣﻈﺎت:
-1ﯾﻔﻀﻞ اﺳﺘﺨﺪاﻣﮭﺎ ﻋﻠﻰ ال Columnاﻟﺬي ﻻ ﯾﺤﺪث ﻟﺒﯿﺎﻧﺎﺗﮫ ﺗﺠﺪﯾﺪ ﻣﺴﺘﻤﺮ "."Low Update
-2ﯾﻔﻀﻞ اﺳﺘﺨﺪاﻣﮭﺎ ﻋﻨﺪ اﺳﺘﺨﺪام WHEREأو ORﺑﺸﻜﻞ ﻣﺘﻜﺮر.
-3ﯾﻔﻀﻞ اﺳﺘﺨﺪاﻣﮭﺎ ﻋﻠﻰ ال Tableاﻟﺘﻲ ﺗﺤﻮي ﺑﯿﺎﻧﺎت ﻛﺒﯿﺮة ﺟﺪاً وﻧﺴﺒﺔ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺘﻠﻔﺔ )اﻟﻤﻤﯿﺰة( ﻗﻠﯿﻞ
ﺟﺪاً ﻣﺜﻞ ﻧﻮع اﻹﻧﺴﺎن )ذﻛﺮ أو اﻧﺜﻰ(.
-4ﻋﻨﺪﻣﺎ ﯾﺤﺪث ﺗﻐﯿﯿﺮ ﻟﺒﯿﺎﻧﺎت ال ،Columnﯾﺘﻢ ﺗﺠﺪﯾﺪ ال Bitmapﻟﺘﻨﺎﺳﺐ اﻟﺘﻐﯿﯿﺮ.
117
:CREATING B-TREE INDEXES
ﻷن ال، ﻛﺜﯿﺮةDML ﺗﺠﺮي ﻋﻠﯿﮭﺎ ﻋﻤﻠﯿﺎتTable ﻋﻠﻰIndexes ﺗﻜﻮﯾﻦ أﻗﻞ ﻋﺪد ﻣﻤﻜﻦ ﻣﻦ ال ·
. ﯾﺒﻄﺊ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﻌﻤﻠﯿﺎتIndexes
.Table ﯾﺠﺐ أن ﺗﻜﻮن أﻛﺒﺮ ﻣﻦ ﻣﺜﯿﻠﺘﮭﺎ اﻟﺘﻲ ﺣﺪدت ﻋﻠﻰ الINITRANS ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ·
:ﻓﻲ اﻟﻘﺎﻋﺪة
ﻟﻜﻲ ﺗﺴﺘﻘﺒﻞ الIndex ﻋﻨﺪ ﺗﻜﻮﯾﻦ الBlock ھﻲ اﻟﻤﺴﺎﺣﺔ اﻟﺘﻲ ﺗﺤﺠﺰ ﻓﻲ ﻛﻞ:PCTFREE ·
. اﻟﺠﺪﯾﺪةIndexes
Oracle ﻣﺮﺗﺒﺔ ﺑﺎﻟﺘﺮﺗﯿﺐ اﻟﺘﺼﺎﻋﺪي وﺑﺎﻟﺘﺎﻟﻲ ﻻ ﯾﺠﺐ ﻋﻠﻰ الRows ﺗﺤﺪد أن ال:NOSORT ·
.Index ﻋﻨﺪ ﺗﻜﻮﯾﻦ الRows ﺗﺮﺗﯿﺐ الServer
ﺑﺸﻜﻞ ﺗﺼﺎﻋﺪي أوIndex ﺗﻜﻮﯾﻦ الOracle Server ﺗﺤﺪﯾﺪ اذا ﻣﺎ ﻛﺎن ﻋﻠﻰ ال:ASC|DESC ·
.ﺗﻨﺎزﻟﻲ
118
:CREATING BITMAP INDEXES
ﻟﺘﻜﻮﯾﻦ Bitmap Indexﯾﺠﺐ إﺿﺎﻓﺔ ﻛﻠﻤﺔ BITMAPاﻟﻰ ﺟﻤﻠﺔ CREATE INDEXاﻟﺘﻲ ﺗﻢ
اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ اﻟﻤﺜﺎل .7.10ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ اﻟﺤﺠﻢ اﻟﻤﺨﺼﺺ ﻣﻦ اﻟﺬاﻛﺮة ﻟﺘﺨﺰﯾﻦ ال Bitmapﺑﺘﺤﺪﯾﺪ
اﻟﻌﺎﻣﻞ CREATE_BITMAP_AREA_SIZEاﻟﺬي ﻗﯿﻤﺘﮫ ﻓﻲ اﻟﺤﺎﻟﺔ Defaultھﻮ .8MB
ﺑﺰﯾﺎدة ﺣﺠﻢ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ،ﯾﺘﻢ ﺗﻜﻮﯾﻦ ال Indexﺑﺴﺮﻋﺔ أﻛﺒﺮ ،وﻟﻜﻦ ﯾﻨﺼﺢ ﺑﺎﺳﺘﺨﺪام ﻗﯿﻤﺔ ﺻﻐﯿﺮة اذا ﻛﺎﻧﺖ
اﻟﺒﯿﺎﻧﺎت اﻟﻤﻤﯿﺰة )اﻟﻤﺨﺘﻠﻔﺔ( ﻓﻲ ال Columnﻗﻠﯿﻠﺔ ﺟﺪاً )ﺑﯿﺎﻧﺎت ﻣﺨﺘﻠﻔﺔ ﻛﺒﯿﺮة = ذاﻛﺮة ﻛﺒﯿﺮة(.
119
:ALTERING INDEXES
ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻗﯿﻢ ﺑﻌﺾ اﻟﻌﻮاﻣﻞ ﻣﺜﻞ MAXTRANSوﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﺑﻌﺾ ﻋﻮاﻣﻞ ﺟﻤﻠﺔ ال Storageﻣﺜﻞ ال
.MAXEXTENTS
ﯾﻤﻜﻦ اﺿﺎﻓﺔ Extentsاﻟﻰ ﻣﺴﺎﺣﺔ ال Indexﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﺔ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ إﺿﺎﻓﺔ Extentاﻟﻰ ال Table
ﺑﻨﻔﺲ اﻟﺸﺮوط .ﻛﻤﺎ ﯾﻤﻜﻦ ﺣﺬف Extentsﻓﺎرﻏﺔ ﻏﯿﺮ ﻣﺴﺘﺨﺪﻣﺔ ﻣﻦ ﻣﺴﺎﺣﺔ ال Indexﺑﺘﻌﻮﯾﺾ ﺟﻤﻠﺔ ال
ALLOCATE EXTENTﺑﺎﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ:
]]DEALLOCATE UNUSED [KEEP number [K|M
ﻓﻲ اﻟﻘﺎﻋﺪة:
120
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.14
ﻹﺿﺎﻓﺔ : Extent
:Rebuilding Indexes
ﻓﻲ اﻟﻘﺎﻋﺪة:
:REVERSEﯾﻤﻜﻦ ﺗﺤﻮﯾﻞ ال Indexاﻟﻰ ﻧﻮع Reverse Key Indexﺑﺎﺿﺎﻓﺔ اﻟﺠﻤﻠﺔ اﻟﻰ ·
اﻟﻘﺎﻋﺪة .ھﺬا اﻟﻨﻮع ﯾﻌﺮف ﺑﯿﺎﻧﺎت ال Columnﺑﺸﻜﻞ ﻋﻜﺴﻲ ،ﻣﺜﻼً ﻟﻮ ﻛﺎن Order_IDﯾﺤﺘﻮي
ﻋﻠﻰ اﻟﺮﻗﻢ 12345ﻓﺈن اﻷوراﻛﻞ ﯾﻌﻜﺲ اﻟﺮﻗﻢ اﻟﻰ 54321وﯾﻀﯿﻒ ال Columnاﻟﻰ ال .Index
ھﺬا اﻟﻨﻮع ﺑﺴﺘﺨﺪم ﺑﺎﻟﻌﺎدة ﻣﻊ ال Columnsاﻟﻤﻌﺮﻓﺔ ﺑﯿﺎﻧﺎﺗﮭﺎ ﺑﺸﻜﻞ ﺗﺼﺎﻋﺪي ،اذ ﯾﺘﻢ ﺗﻮزﯾﻊ اﻟﺒﯿﺎﻧﺎت
اﻟﻤﺘﻘﺎرﺑﺔ اﻟﻰ Leafsﻣﺨﺘﻠﻔﺔ ﻟﯿﺘﻢ ﺗﺴﮭﯿﻞ أﺧﺮاج اﻟﺒﯿﺎﻧﺎت ﺑﺴﺮﻋﺔ أﻛﺒﺮ.
ﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻌﻠﻤﯿﺔ ،ﯾﺘﻢ ﺗﻜﻮﯾﻦ Indexﺟﺪﯾﺪ و ﺣﺬف اﻷﺻﻠﻲ ،ﺑﺤﯿﺚ ﺗﺴﺎﻋﺪ ﻋﻠﻰ ﺗﻜﻮﯾﻦ Indexﺟﺪﯾﺪ ·
ﻣﺘﻜﺎﻣﻞ ﻏﯿﺮ ال Indexاﻷﺻﻠﻲ اﻟﺬي ﻗﺪ ﯾﻜﻮن ﻗﺪ ﻓﻘﺪ ﺟﺰء ﻣﻦ ﻣﺴﺎﺣﺔ ﻧﺘﯿﺠﺔ ﻟﻠﺘﻐﯿﺮات اﻟﺘﻲ ﺗﻄﺮأ ﻋﻠﻰ
ال Rowsﻣﺜﻞ ﺣﺬف اﻟﺒﯿﺎﻧﺎت و ﺗﺠﺪﯾﺪھﺎ ) ، (Fragmentationوﺑﺎﻟﺘﺎﻟﻲ اﺳﺘﺨﺪام وﺗﺨﺼﯿﺺ
اﻟﻤﺴﺎﺣﺔ ﺑﺸﻜﻞ أﻓﻀﻞ.
121
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.15
:Rebuilding ONLINE
أﺣﯿﺎﻧﺎً ﺗﺴﺘﮭﻠﻚ ﻋﻤﻠﯿﺔ Rebuildوﻗﺖ ﻛﺒﯿﺮ ﺟﺪاً ﻋﻨﺪﻣﺎ ﺗﻜﻮن ال Tableﻛﺒﯿﺮة ﺟﺪاً .ﻓﻲ اﻟﺴﺎﺑﻖ ﻟﻢ ﯾﻜﻦ ﺑﺎﻟﻤﻘﺪور
اﻟﻘﯿﺎم ﺑﻤﮭﻤﺎت ال DMLﻋﻠﻰ ال Tableاﻟﺘﻲ ﯾﺠﺮي ﻋﻤﻠﯿﺔ Rebuild Indexﻋﻠﻰ Indexﻣﺨﺼﺼﺔ ﻟﮭﺎ.
ﻓﻲ اﻟﻨﺴﺦ اﻟﺤﺪﯾﺜﺔ ﻣﻦ أوراﻛﻞ ) Oracle8iو (Oracle9iﯾﻤﻜﻦ أن ﺗﺠﺮي ﻣﮭﻤﺎت ال DMLﺑﯿﻨﻤﺎ ﺗﺘﻢ ﻋﻤﻠﯿﺔ
Rebuild Indexﺑﺈﺿﺎﻓﺔ ONLINEاﻟﻰ ﺟﺎﻧﺐ ،REBUILDوﻟﻜﻦ ﻻ ﯾﻨﺼﺢ ﺑﺎﻟﻘﯿﺎم ﺑﻤﮭﻤﺎت ﻛﺒﯿﺮة
وﯾﻔﻀﻞ اﻻﻗﺘﺼﺎر ﻋﻠﻰ اﻟﻤﮭﻤﺎت اﻟﺼﻐﯿﺮة.
ﻣﻼﺣﻈﺔ :ﻻ ﯾﺴﻤﺢ ﺑﻜﻞ اﻷﺣﻮال اﻟﻘﯿﺎم ﺑﻤﮭﻤﺎت ال DDLﻋﻠﻰ ال Tableﺧﻼل ال .Rebuild Index
:Coalescing Indexes
رﺳﻢ 7.2
122
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.17
ﯾﻤﻜﻦ وﺿﻊ Indexﺗﺤﺖ اﻟﻤﺮاﻗﺒﺔ ﻟﻤﻌﺮﻓﺔ اذا ﻛﺎن ﯾﺴﺘﺨﺪم أم ﻻ ،وﺑﺎﻟﺘﺎﻟﻲ ﺣﺬﻓﮫ ﻓﻲ ﺣﺎل ﻋﺪم اﺳﺘﺨﺪاﻣﮫ .ﯾﺘﻢ
ﺟﻤﻊ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل ال indexاﻟﻤﺮاﻗﺐ ﻓﻲ .V$OBJECT_USAGE
ﻣﻼﺣﻈﺔ :ﻛﻞ ﻣﺮة ﯾﺘﻢ ﻓﯿﮭﺎ ﻣﺮاﻗﺒﺔ ال ، Indexﯾﺘﻢ إﻟﻐﺎء اﻟﺒﯿﺎﻧﺎت اﻟﺴﺎﺑﻘﺔ ﻟﻞ Indexﻓﻲ
ال .V$OBJECT_USAGE
:ANALYZING INDEXES
اﻟﺘﺄﻛﺪ ﻣﻦ أن ال Blocksاﻟﺨﺎﺻﺔ ﺑﺎل Indexﻻ ﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ﻓﺎﺳﺪة " Block ·
."Corruption
ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ال .Index ·
123
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :7.19
:DROPPING INDEXES
ﻋﻨﺪ ﻋﺪم اﻟﺤﺎﺟﺔ ﻟﻞ Indexأو ﻋﻨﺪ ﺣﺪوث ﺧﻠﻞ ﻟﮫ أو ﻋﻨﺪ ﺗﺤﻮل ﺣﺎﻟﺔ ال Indexاﻟﻰ INVALIDﺑﺴﺒﺐ
ﺣﺪوث ﺧﻠﻞ ﻟﻞ ، Instanceﯾﻤﻜﻦ ﺣﺬف ال Indexﺑﻮاﺳﻄﺔ ﺟﻤﻠﺔ .DROP INDEX
ﻣﻼﺣﻈﺔ :ﻻ ﯾﻤﻜﻦ ﺣﺬف ال Indexاذا ﻛﺎن Primary Keyأو Unique Keyوﻟﺪﯾﮫ ﻋﻼﻗﺔ ﻣﻊ .FK
ﻟﺤﺬف :Index
124
:QUERYING INDEX INFORMATION
125
MANAGING CONSTRAINTS
ﯾﻤﻜﻦ وﺿﻊ ﻗﻮاﻧﯿﻦ ﻋﻠﻰ ال ) Dataﻣﺜﻼً ﻋﺪم اﻟﺴﻤﺎح ﺑﻮﺟﻮد ﺑﯿﺎﻧﺎت ﻣﺘﺸﺎﺑﮫ ﻓﻲ ،(Columnﺑﺎﺳﺘﺨﺪام ﻛﻞ ﻣﻦ
، Database Triggers ، Application Codeو .Integrity Constraints
ال Application Codeﻋﺒﺎرة ﻋﻦ ﺑﺮﻣﺠﺔ ﻛﻮد ﻣﺤﺪد )ﻣﺜﻞ ﺑﺮﻣﺠﺔ اﻟﺠﺎﻓﺎ( ﯾﻌﻤﻞ ﻛﺒﺮﻧﺎﻣﺞ ﻟﻮﺣﺪه ﻓﻲ ال
Clientأو ﻣﻦ ﺿﻤﻦ ال Databaseﻋﻠﻰ ﺷﻜﻞ .Procedureأﻣﺎ ال Database Triggersﻓﮭﻲ ﺑﺮاﻣﺞ
ﻣﻦ ﺗﻜﻮﯾﻦ ، PL/SQLﯾﺘﻢ ﺗﻨﻔﯿﺬھﺎ ﻋﻨﺪ ﺣﺪوث ﻣﮭﻤﺔ ﻣﺤﺪدة ﻓﻲ ال Databaseﻣﺜﻞ اﻟﻘﯿﺎم ب INSERTأو
.UPDATE
:INTEGRITY CONSTRAINTS
ﯾﻔﻀﻞ اﺳﺘﺨﺪام ھﺬا اﻟﻨﻮع ﻋﻦ اﻟﻨﻮﻋﯿﯿﻦ اﻷﺧﺮﯾﯿﻦ ﻟﺴﮭﻮﻟﺔ ﺗﻜﻮﯾﻨﮫ وﺗﻌﺪﯾﻠﮫ ،وﻟﺴﮭﻮﻟﺔ ﺗﺸﻐﯿﻠﮫ أو وﻗﻒ ﺗﺸﻐﯿﻠﮫ،
وﻹﻣﻜﺎﻧﯿﺔ اﺳﺘﺨﺮاج ﻣﻌﻠﻮﻣﺎت ﻋﻨﮫ ﻣﻦ ال .Data Dictionaryﯾﻮﺟﺪ ﻋﺪة أﻧﻮاع ﻣﻦ ال Integrity
Constraintھﻲ:
:NOT NULLﯾﺤﺪد أﻧﮫ ﻻ ﯾﻤﻜﻦ ﻟﻞ Columnأن ﯾﺤﺘﻮي ﻋﻠﻰ )NULLﻛﻞ ال Rowsﯾﺠﺐ أن ·
ﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ،ﻻ ﯾﻤﻜﻦ أن ﯾﻜﻮن أﺣﺪھﺎ ﻓﺎرﻏﺎً(
:UNIQUEﺗﺤﺪد أن اﻟﻘﯿﻢ اﻟﻤﻮﺟﻮدة ﻓﻲ ال )Columnأو أﻛﺜﺮ ﻣﻦ (Columnﻣﻤﯿﺰة وﻻ ﯾﻤﻜﻦ ·
أن ﺗﺘﺸﺎﺑﮫ ،ﯾﺴﺘﺨﺪم ھﺬا اﻟﻨﻮع ﻋﺎدة ﻋﻨﺪ ﺗﺨﺼﯿﺺ رﻗﻢ ﻣﻤﯿﺰ ﻟﻜﻞ ﻣﻮﻇﻒ ﻓﻲ اﻟﺸﺮﻛﺔ .ﯾﺴﻤﺢ ال
UNIQUEﺑﺎﺳﺘﺨﺪام ﻗﯿﻢ NULLﻓﻲ ال .Rows
:PRIMARY KEYﺗﺤﺪد أن ال ) Columnأو أﻛﺜﺮ ﻣﻦ (Columnھﻮ ال Primary Key ·
ﻓﻲ ال .Tableﺗﻜﻮن ﻣﮭﻤﺔ ال PKﺑﻀﻤﺎن ﻋﺪم ﺗﺸﺎﺑﮫ ﺑﯿﺎﻧﺎت ال Rowsﻓﻲ ال Columnوﻋﺪم
إﺣﺘﻮاء ال Rowsﻋﻠﻰ ﻗﯿﻤﺔ .NULL
:FOREIGN KEYﺗﺤﺪد أن ال ) Columnأو أﻛﺜﺮ ﻣﻦ (Columnھﻮ Foreign Keyﻓﻲ ال ·
، Tableﯾﺘﺼﻞ ﻣﻊ PKأو Uniqueﻓﻲ ال Tableأو ﻓﻲ Tableأﺧﺮى.
:CHECKﺗﺤﺪد ﻗﺎﻧﻮن ﯾﺠﺐ ﻋﻠﻰ ﻛﻞ ال Rowsﺗﻨﻔﯿﺬه )ﻣﺜﻞ أن ﯾﻜﻮن ﻗﯿﻢ ال Rowsاﻟﺨﺎﺻﺔ ·
ﺑﺠﻨﺲ اﻹﻧﺴﺎن ،إﻣﺎ Mأو ، Fوﻻ ﯾﻤﻜﻦ ادﺧﺎل أي ﺑﯿﺎﻧﺎت أﺧﺮى(.
ﯾﻤﻜﻦ وﺿﻊ ال Constraintsﻓﻲ أرﺑﻊ ﺣﺎﻻت ﺗﺆﺛﺮ ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ ال Tableواﻟﺒﯿﺎﻧﺎت اﻟﺠﺪﯾﺪة
اﻟﺘﻲ ﺳﻮف ﯾﺘﻢ ادﺧﺎﻟﮭﺎ ﻣﺴﺘﻘﺒﻼً:
:DISABLE NOVALIDATEﻓﻲ ﺣﺎل وﺿﻊ ال Constraintﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ،ﻻ ﯾﺘﻢ ﻓﺤﺺ ·
اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة وﻻ ﯾﺘﻢ ﻓﺤﺺ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺘﻘ ﺒﻠﯿﺔ ﻟﻤﻌﺮﻓﺔ اذا ﻛﺎﻧﺖ ﺗﺘﻄﺎﺑﻖ ﻣﻊ اﻟﻘﺎﻧﻮن أو اﻟﺸﺮط
اﻟﺬي ﯾﺤﺪده ال .Constraint
:DISABLE VALIDATEﯾﺘﻢ اﯾﻘﺎف ﻋﻤﻞ ال Constraintوﺣﺬف ال Indexاﻟﻤﺨﺼﺺ ﻟﮭﺎ ·
وﻋﺪم اﻟﺴﻤﺎح ﺑﺎﻟﻘﯿﺎم ﺑﺄي ﺗﻌﺪﯾﻼت ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ )ﻋﺪم اﻟﺴﻤﺎح ﺑﻌﻤﻠﯿﺎت .(DML
:ENABLE NOVALIDATEﻻ ﯾﺘﻢ ﻓﺤﺺ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻟﻤﻌﺮﻓﺔ اذا ﻣﺎ ﻛﺎﻧﺖ ﺗﺘﻄﺎﺑﻖ ﻣﻊ ·
ﻗﺎﻧﻮن ال Constraintو ﻟﻜﻦ ﻻ ﯾﺴﻤﺢ ﺑﺎدﺧﺎل ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة ﺗﺘﻌﺎرض ﻣﻊ ال .Constraint
:ENABLE VALIDATEﯾﺘﻢ ﻓﺤﺺ اﻟﺒﯿﺎﻧﺎت اﻟﺠﺪﯾﺪة واﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺘﻘﺒﻠﯿﺔ واﻟﺘﺄﻛﺪ أﻧﮭﺎ ﺗﺘﻄﺎﺑﻖ ·
ﻣﻊ ال .Constraintﻓﻲ ﺣﺎل وﺟﻮد ﺑﯿﺎﻧﺎت ﻻ ﺗﺘﻄﺎﺑﻖ ﻣﻊ ال Constraintﻓﯿﺠﺐ ﺣﺬﻓﮭﺎ أو ﺗﻐﯿﯿﺮھﺎ
وإﻻ ﻻ ﯾﻤﻜﻦ اﻟﺪﺧﻮل اﻟﻰ ھﺬه اﻟﺤﺎﻟﺔ.
126
ﻣﻼﺣﻈﺎت:
-1ﻻ ﯾﻨﺼﺢ اﻟﺘﺤﻮﯾﻞ ﻣﻦ اﻟﺤﺎﻟﺔ اﻷوﻟﻰ أو اﻟﺜﺎﻧﯿﺔ ﻣﺒﺎﺷﺮة اﻟﻰ اﻟﺤﺎﻟﺔ اﻟﺮاﺑﻌﺔ ،اذ أن ذﻟﻚ ﯾﺆدي اﻟﻰ ﻋﻤﻞ
Locksﻋﻠﻰ ﻛﻞ ال Tableﻣﻤﺎ ﻗﺪ ﯾﺆدي اﻟﻰ ﺗﺄﺧﺮ اﻧﺠﺎز ﻣﮭﻤﺎت ال ،DMLﻟﺬﻟﻚ ﯾﻨﺼﺢ ﺑﺎﻟﺘﺤﻮﯾﻞ اﻟﻰ ﺣﺎﻟﺔ
Enable Novalidateأوﻻً ﻗﺒﻞ اﻟﺘﺤﻮﯾﻞ ال .Enable Validate
-2ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﺤﻮﯾﻞ Constraintﺗﺴﺘﺨﺪم Primary Keyأو Unique Keyﻣﻦ ﺣﺎﻟﺔ Enableاﻟﻰ
ﺣﺎﻟﺔ ، Disableﻓﺈن ال Indexاﻟﻤﻮﺟﻮد ﯾﺘﻢ ﺣﺬﻓﮫ واﻟﻌﻜﺲ ﺻﺤﯿﺢ.
-3اﻟﺘﺤﻮل ﻣﻦ ﺣﺎﻟﺔ Enable Novalidateاﻟﻰ ﺣﺎﻟﺔ ، Enable Validateﻻ ﯾﻮﻗﻒ ﻋﻤﻠﯿﺎت ال .DDL
:CONSTRAINTS CHECKING
ﯾﻤﻜﻦ ﻟﻞ Constraintsأن ﯾﻘﻮم ﺑﻔﺤﺺ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺪﺧﻠﺔ اﻟﻰ ال Tableإﻣﺎ ﻋﻨﺪ ﻧﮭﺎﯾﺔ ﻛﻞ ﻣﮭﻤﺔ ﻣﻦ ﻣﮭﻤﺎت
ال DMLو ﯾﺴﻤﻰ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ Nondeferredأو ، Immediateأو ﯾﻤﻜﻦ ﻟﻞ Constraintsأن ﯾﻘﻮم
ﺑﻔﺤﺺ اﻟﺒﯿﺎﻧﺎت ﻋﻨﺪ ﻛﺘﺎﺑﺔ ) Commitﻗﺪ ﯾﺸﻤﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﮭﻤﺎت( وﯾﺴﻤﻰ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ،Deferred
ﻓﻲ ﻛﻠﺘﺎ اﻟﺤﺎﻟﺘﯿﻦ ﯾﺘﻢ ﻋﻤﻞ Rollbackﻟﻠﻤﮭﻤﺎت اﻟﺘﻲ اﻧﺠﺰت اذا ﻟﻢ ﺗﺘﻮاﻓﻖ ﻣﻊ ﻗﺎﻧﻮن ال .Constraint
ﯾﻔﻀﻞ اﺳﺘﺨﺪام اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﯿﺔ اﻟﺘﻲ ﺗﻨﻘﺴﻢ اﻟﻰ ﻗﺴﻤﯿﻦ ﺑﺤﯿﺚ ﺗﺴﺘﻄﯿﻊ أن ﺗﺸﺎﺑﮫ اﻟﺤﺎﻟﺔ Nondeferredواﻟﺤﺎﻟﺔ
Deferredﻣﻌﺎً ،اﻟﻘﺴﻤﯿﻦ ھﻤﺎ:
· :INITIALLY IMMEDIATEﺗﻌﻤﻞ ﻛﻌﻤﻞ ال .Nondeferred
· :INITIALLY DEFERREDﺗﻌﻤﻞ ﻛﻤﻞ ال .Deferred
ALTER SESSION
)SET CONSTRAINT[S] = (IMMEDIATE | DEFERRED | DEFAULT
127
:CREATING CONSTRAINTS
ً ﻋﻮﺿﺎUSING ﻋﺪا اﺳﺘﺨﺪامCREATE INDEX ﻓﮭﻲ ﺗﺘﻄﺎﺑﻖ ﻣﻊ ﺟﻤﻠﺔUSING INDEX اﻣﺎ ﺟﻤﻠﺔ
وﻋﺪم،ON [schema.]TABLE (Column [ASC | DESC] وﻋﺪم ﺗﺤﺪﯾﺪ اﻟﺠﺰءCREATE ﻋﻦ
.Index ذﻛﺮ اﺳﻢ ال
:ﻓﻲ اﻟﻘﺎﻋﺪة
128
:Table-Level ﻓﻲ الConstraints ﻟﺘﻜﻮﯾﻦ
[CONSTRAINT constraint_name]
PRIMARY KEY (column_name , column_name, …) [USING INDEX ….]
| UNIQUE (column_name , column_name, …) [USING INDEX ….]
| REFERENCES [schema.] table_name [(column_name, column_name, …)]
[ON DELETE CASCADE]
| CHECK (condition)
129
:USING ALTER TABLE
:Creating Constraints
أو ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔCREATE TABLE ﺑﺎﺳﺘﺨﺪامConstraints ﻛﻤﺎ ذﻛﺮﻧﺎ ﻗﺒﻞ ﻗﻠﯿﻞ أﻧﮫ ﯾﻤﻜﻦ ﺗﻜﻮﯾﻦ
.2.24 ﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎلALTER TABLE
، ﻣﻦ ھﺬا اﻟﻨﻮعConstraint اذ ﯾﺴﺘﺨﺪم اﻟﺘﺎﻟﻲ ﻹﺿﺎﻓﺔ، NOT NULL ﻻ ﯾﻤﻜﻦ ﺗﻄﺒﯿﻖ ھﺬا اﻟﻤﺜﺎل ﻋﻠﻰ ال
:NULL وNOT NULL أو ﻟﻠﺘﺤﻮﯾﻞ ﺑﯿﻦ
:Enabling Constraints
:Enable Novalidate
و الUnique Constraints ﻟﻞValidate ﯾﻔﻀﻞ اﻟﺘﺤﻮﯾﻞ اﻟﻰ ھﺬه اﻟﺤﺎﻟﺔ أوﻻً ﻗﺒﻞ اﻟﺘﺤﻮﯾﻞ اﻟﻰ اﻟﺤﺎﻟﺔ
ﻣﻤﺎ ﻗﺪ ﯾﺆدي اﻟﻰ ﺗﺄﺧﺮ اﻧﺠﺎزTable ﻋﻠﻰ ﻛﻞ الLocks ﻷن ذﻟﻚ ﯾﺆدي اﻟﻰ ﻋﻤﻞPK Constraints
Disable ﺗﺴﺘﺨﺪم اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ ﻟﻠﺘﺤﻮﯾﻞ ﻣﻦ ﺣﺎﻟﺔ. ﻣﻤﺎ ﯾﺆدي اﻟﻰ ﺗﺄﺧﺮ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﯾﻞ،DML ﻣﮭﻤﺎت ال
.Enable Novalidate اﻟﻰ ﺣﺎﻟﺔ
أوPK Constraint ﻓﻲ اﻟﺤﻼت اﻟﺘﻲ ﯾﺘﻢ ﻓﯿﮭﺎ ﺗﺤﻮﯾﻞ ﺣﺎﻟﺔ الUSING INDEX ﺑﺤﯿﺚ ﯾﺘﻢ اﺿﺎﻓﺔ ﺟﻤﻠﺔ
وﯾﺠﺐ أنDeferrable ﻓﻘﻂ وﯾﺤﺐ أن ﺗﻜﻮن اﻟﺤﺎﻟﺔ اﻟﺘﻲ ﺗﻢ ﺗﻜﻮﯾﻨﮭﻢ ﻓﻲ اﻟﺒﺪاﯾﺔUnique Constraint ال
. أو ﺗﻢ ﺣﺬﻓﮫDisabled اﻟﺬي ﺗﻢ ﺗﻜﻮﯾﻨﮫ ﻓﻲ اﻟﺒﺪاﯾﺔ إﻣﺎIndex ﯾﻜﻮن ال
130
:Enable Validate
ھﻲ اﻟﺤﺎﻟﺔ اﻹﻓﺘﺮاﺿﯿﺔ " "Defaultاﻟﺘﻲ ﯾﺘﻢ ﻓﯿﮭﺎ اﻟﺘﺤﻮﯾﻞ ﻣﻦ ال Disableاﻟﻰ ال .Enableﺑﻌﺪ ﻋﻤﻠﯿﺔ
اﻟﺘﺤﻮﯾﻞ ﯾﺘﻢ ﻓﯿﮭﺎ وﺿﻊ Locksﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت ﺣﺘﻰ ﺗﻨﺘﮭﻲ ﻋﻤﻠﯿﺔ ﻓﺤﺺ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة ،وﻓﻲ ﺣﺎﻟﺔ ﻋﺪم
وﺟﻮد Indexesﻟﻞ ، PK,UNIQUE Constraintsﯾﻘﻮم ال Oracle Serverﺑﺘﻜﻮﯾﻦ Indexﻣﻦ ﻧﻮع
Non-Uniqueاذا ﻛﺎن ﻗﺪ ﺗﻢ ﺗﻜﻮﯾﻦ ال Constraintsﻓﻲ اﻟﺒﺪاﯾﺔ ﺑﺎﻟﺤﺎﻟﺔ Deferrableواﻟﻌﻜﺲ ﺻﺤﯿﺢ اذ
ﯾﻘﻮم ال Oracle Serverﺑﺘﻜﻮﯾﻦ Indexﻣﻦ ﻧﻮع Uniqueاذا ﻛﺎن ﻗﺪ ﺗﻢ ﺗﻜﻮﯾﻦ ال Constraintsﻓﻲ
اﻟﺒﺪاﯾﺔ ﺑﺎﻟﺤﺎﻟﺔ .Nondeferrable
ﺗﺴﺘﺨﺪم ذات اﻟﻘﺎﻋﺪة اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﻠﺘﺤﻮﯾﻞ ﻣﻦ ﺣﺎﻟﺔ Disableاﻟﻰ ﺣﺎﻟﺔ Enable Novalidateﻣﻊ اﺳﺘﺒﺪال
ﻛﻠﻤﺔ NOVALIDATEﺑﻜﻠﻤﺔ Validate) VALIDATEھﻲ ال (Defaultوإﻣﻜﺎﻧﯿﺔ إﺿﺎﻓﺔ ﺟﻤﻠﺔ
EXCEPTIONSاﻟﺘﻲ ﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﺑﻌﺪ ﻗﻠﯿﻞ.
131
:USING EXCEPTIONS
ﺑﻌﺮض ﻣﻌﻠﻮﻣﺎت ﺣﻮلConstraints ﻟﻤﻌﺮﻓﺔ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺨﺎﻟﻒ الEXCEPTIONS ﺗﺴﺘﺨﺪم ﺟﻤﻠﺔ ال
.EXCEPTIONS Table ﺗﺴﻤﻰTable ﻓﻲConstraint " اﻟﻤﺨﺎﻟﻔﺔ ﻟﻞRows" ال اﻟﺒﯿﺎﻧﺎت
ﯾﻤﻜﻦ اﺗﺒﺎعEnable اﻟﻰDisable ﻣﻦ ﺣﺎﻟﺔConstraint ﻟﻠﻘﯿﺎم ﺑﻔﺤﺺ اﻟﺒﯿﺎﻧﺎت ﻗﺒﻞ اﻟﻘﯿﺎم ﺑﺘﺤﻮﯾﻞ ال
:اﻟﺨﻄﻮات اﻟﺘﺎﻟﯿﺔ
utlexcpt.sql ھﻮScript اذا ﻟﻢ ﯾﺘﻢ ﺗﻜﻮﯾﻨﮭﺎ ﻣﻦ ﻗﺒﻞ ﺑﺘﺸﻐﯿﻞ، Exceptions Table ﺗﻜﻮﯾﻦ ال ·
:SQLPLUS ﻣﻦ داﺧﻞ ال
@ C:\oracle\ora90\rdbms\admin\utlexcpt.sql
اﺳﺘﺨﺪم،Enable Validate اﻟﻰConstraint ﻓﻲ ﺣﺎل ﻇﮭﻮر اﺧﻄﺎء ﺗﻤﻨﻊ ﻣﻦ ﺗﺤﻮﯾﻞ ﺣﺎﻟﺔ ال ·
.Exceptions Table اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﻜﻮﻧﺖ ﻓﻲ ال
132
133
PASSWORD MANAGEMENT
:PROFILES
:MANAGING PASSWORD
ﺗﺤﺪﯾﺪ ﻋﻤﺮ ﻣﺤﺪد ﻟﻜﻠﻤﺔ اﻟﺴﺮ " "Passwordﯾﺠﺐ ﻋﻠﻰ اﻟﻤﺴﺘﺨﺪم ﺗﻐﯿﯿﺮھﺎ ﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻤﺪة. ·
إﺟﺒﺎر اﻟﻤﺴﺘﺨﺪم ﻋﻠﻰ اﺧﺘﯿﺎر ﻛﻠﻤﺔ ﺳﺮ ﻣﻌﻘﺪة ﺗﺘﺒﻊ ﻧﻈﺎم ﻣﺤﺪدة )ﻣﺜﻼً أن ﻻ ﺗﺘﺸﺎﺑﮫ ﻛﻠﻤﺔ اﻟﺴﺮ ﻣﻊ اﺳﻢ ·
اﻟﻤﺴﺘﺨﺪم(
اﺟﺒﺎر اﻟﻤﺴﺘﺨﺪم ﻋﻨﺪ ﺗﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﺴﺮ ﻋﺪم اﺧﺘﯿﺎر ﻛﻠﻤﺔ ﺳﺮ ﺗﻢ اﺳﺘﺨﺪاﻣﮭﺎ ﺳﺎﺑﻘﺎً. ·
اﻏﻼق ال Accountاﻟﺨﺎص ﺑﺎﻟﻤﺴﺘﺨﺪم ﻋﻨﺪ ﻓﺸﻞ ادﺧﺎل ﻛﻠﻤﺔ اﻟﺴﺮ ﻟﻌﺪد ﻣﺤﺪد )ﻣﺜﻞ ﻓﺸﻞ ادﺧﺎل ﻛﻠﻤﺔ ·
اﻟﺴﺮ ﻟﺜﻼث ﻣﺮات(.
:Locking Account
ﯾﻤﻜﻦ ﻏﻠﻖ ال Accountﺑﺸﻜﻞ اوﺗﻮﻣﺎﺗﯿﻜﻲ ﻋﻨﺪ ﻓﺸﻞ اﻟﺪﺧﻮل اﻟﻰ ال Accountﻋﻨﺪ ﻛﺘﺎﺑﺔ ﻛﻠﻤﺔ ﺳﺮ ﺧﺎﻃﺌﺔ
ﻟﻌﺪد ﻣﻦ اﻟﻤﺮات ،ﻛﻤﺎ ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ اﻟﻤﺪة اﻟﺘﻲ ﯾﻈﻞ ﻓﯿﮭﺎ ال Accountﻣﻐﻠﻖ ﻋﺒﺮ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻠﯿﻦ اﻟﺘﺎﻟﯿﯿﻦ:
ﻛﻤﺎ ﯾﻤﻜﻦ ﻟﻞ DBAﻏﻠﻖ ال Accountأو ﻓﺘﺤﮫ ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ ،ALTER USERﻓﻲ ﺣﺎﻟﺔ ﻏﻠﻖ ال
Accountﺑﻮاﺳﻄﺔ ال DBAﻻ ﯾﻤﻜﻦ ﻓﺘﺤﮫ أوﺗﻮﻣﺎﺗﯿﻜﯿﺎً ﺑﻞ ﯾﺠﺐ أن ﯾﺘﻢ ﻓﺘﺤﮫ ﻋﺒﺮ ال DBAﻓﻘﻂ.
134
:Password Expiration
ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ اﻟﻤﺪة اﻟﺘﻲ ﯾﺠﺐ ﻋﻠﻰ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﺗﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﺴﺮ " "Passwordﺑﺸﻜﻞ دوري ،ﻛﺄن ﯾﺠﺒﺮ
اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﺗﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﺴﺮ ﻛﻞ ﺷﮭﺮ .ﯾﻤﻜﻦ اﯾﻀﺎً اﻋﻄﺎء ﻣﮭﻠﺔ اﺿﺎﻓﯿﺔ ﻋﻨﺪ اﻧﺘﮭﺎء اﻟﻤﺪة اﻟﺘﻲ ﯾﺠﺐ ﺗﻐﯿﯿﺮ
ﻛﻠﻤﺔ اﻟﺴﺮ ،ﺑﺤﯿﺚ ﺑﻌﺪ دﺧﻮل اﻟﻤﺴﺘﺨﺪم اﻟﻰ ،Databaseﯾﻈﮭﺮ رﺳﺎﻟﺔ ﺗﺤﺬﯾﺮﯾﺔ ﺗﻄﻠﺐ ﻣﻦ اﻟﻤﺴﺘﺨﺪم ﺗﻐﯿﯿﺮ
ﻛﻠﻤﺔ اﻟﺴﺮ ﺧﻼل ﻓﺘﺮة ﻣﺤﺪدة وإﻻ ﺳﻮف ﯾﺘﻢ ﻏﻠﻖ ال .Account
:PASSWORD_LIFE_TIMEاﻟﻤﺪة اﻟﺘﻲ ﯾﻤﻜﻦ ﻟﻜﻠﻤﺔ اﻟﺴﺮ أن ﺗﻈﻞ دون ﺗﻐﯿﯿﺮ ،ﻓﻲ ﺣﺎل ﻋﺪم ·
ﺗﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﺴﺮ ﺧﻼل اﻟﻤﺪة ﯾﻐﻠﻖ ال Accountوﺗﺘﺤﻮل ﺣﺎﻟﺔ ال Accountاﻟﻰ .Expired
:PASSWORD_GRACE_TIMEﺑﻌﺪ ان ﺗﻨﺘﮭﻲ اﻟﻤﺪة اﻟﺘﻲ ﯾﻤﻜﻦ ﻟﻜﻠﻤﺔ اﻟﺴﺮ أن ﺗﻈﻞ دون ·
ﺗﻐﯿﯿﺮ ،ﯾﻤﻜﻦ اﻋﻄﺎء ﻣﺪة إﺿﺎﻓﯿﺔ ﻟﺘﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﺴﺮ ﻗﺒﻞ ﻏﻠﻖ ال Accountﻣﻊ ﻇﮭﻮر رﺳﺎﻟﺔ ﺗﺤﺬﯾﺮﯾﺔ
ﻟﺘﻐﯿﯿﺮ ﻛﻠﻤﺔ اﻟﺴﺮ ﻗﺒﻞ اﻟﻤﺪة اﻟﻤﺤﺪدة.
ﻣﺜﺎل:
:Password History
ﯾﻤﻜﻦ اﺟﺒﺎر اﻟﻤﺴﺘﺨﺪم ﻋﻠﻰ اﺧﺘﯿﺎر ﻛﻠﻤﺔ ﺳﺮ ﻟﻢ ﺗﺴﺘﺨﺪم ﻣﻦ ﻗﺒﻞ أﺑﺪاً أو ﻣﻨﻌﮫ ﻣﻦ اﺳﺘﺨﺪام ﻛﻠﻤﺔ ﺳﺮ ﻗﺪﯾﻤﺔ ﺧﻼل
ﻓﺘﺮة ﻣﺤﺪدة.
:PASSWORD_REUSE_TIMEﺗﺤﺪد ﻋﺪد ﻣﻦ اﻷﯾﺎم ﻗﺒﻞ أن ﯾﺘﻢ اﻋﺎدة اﺳﺘﺨﺪام ﻛﻠﻤﺔ ﺳﺮ ·
ﻗﺪﯾﻤﺔ ﻣﺮة أﺧﺮى.
:PASSWORD_REUSE_MAXﺗﺤﺪد ﻋﺪد اﻟﻤﺮات اﻟﺘﻲ ﯾﻤﻜﻦ ان ﯾﺘﻢ اﺳﺘﺨﺪام ﻛﻠﻤﺔ اﻟﺴﺮ ·
اﻟﻘﺪﯾﻤﺔ .ﯾﻤﻜﻦ اﺟﺒﺎر اﻟﻤﺴﺘﺨﺪم ﺑﻌﺪم اﺳﺘﺨﺪام ﻛﻠﻤﺔ ﺳﺮ ﻗﺪﯾﻤﺔ أﺑﺪاً ﺑﻮﺿﻊ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ﺻﻔﺮ.
ﻣﻼﺣﻈﺔ :ﻻ ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ ﻗﯿﻤﺔ ﻟﻠﻌﺎﻣﻠﯿﯿﻦ ﻣﻌﺎً اﺑﺪاً ،اذا ﺗﻢ ﺗﺤﺪﯾﺪ ﻗﯿﻤﺔ أﺣﺪ اﻟﻌﺎﻣﻠﯿﯿﻦ ﯾﺠﺐ وﺿﻊ ﻗﯿﻤﺔ اﻷﺧﺮ
.Unlimited
:Password Verification
ﯾﻤﻜﻦ وﺿﻊ ﻗﻮاﻧﯿﯿﻦ ﻟﺘﺴﻤﯿﺔ ﻛﻠﻤﺔ اﻟﺴﺮ ﺑﺎﺳﺘﺨﺪام .PL/SQLﻣﻦ اﻟﻘﻮاﻧﯿﯿﻦ اﻟﺘﻲ ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪھﺎ أن ﻻ ﺗﻜﻮن
ﻛﻠﻤﺔ اﻟﺴﺮ ﻣﻄﺎﺑﻘﺔ ﻹﺳﻢ اﻟﻤﺴﺘﺨﺪم أو ﯾﺠﺐ أن ﺗﺤﺘﻮي ﻛﻠﻤﺔ اﻟﺴﺮ ﻋﻠﻰ أرﻗﺎم و أﺣﺮف ﻣﻌﺎً وﻛﻞ ﻣﺎ ﯾﺴﺎﻋﺪ ﻋﻠﻰ
ﺗﻜﻮﯾﻦ ﻛﻠﻤﺔ ﺳﺮ ﻣﻌﻘﺪة ﯾﺼﻌﺐ اﻟﺘﻜﮭﻦ ﺑﮭﺎ.
ﻣﻼﺣﻈﺔ :ﯾﺠﺐ ﺗﻜﻮﯾﻦ ال Functionﻓﻲ ال ، SYS Schemaوﯾﺠﺐ ان ﺗﻜﻮن ﻣﻦ ﻧﻮع ،Booleanأي أن
اﻟﻨﺎﺗﺞ أﻣﺎ ﺻﺢ " "Trueأو ﺧﻄﺄ "."False
135
اﻟﺘﻲ ﯾﻤﻜﻦ انVERIFY_FUNCTION ، utlpwdmg.sql ﺿﻤﻦ الOracle Server ﯾﻮﻓﺮ ال
.PASSWORD_VERIFY_FUNCTION ﺗﺴﺘﺨﺪم ﻟﻮﺿﻊ ﻗﻮاﻧﯿﯿﻦ ﻟﻜﻠﻤﺔ اﻟﺴﺮ اذا ﺗﻢ ﺗﺤﺪﯾﺪھﺎ ﻓﻲ
وأن ﯾﻜﻮن ﻣﻦ ﺿﻤﻨﮭﺎ ﻋﻠﻰ اﻷﻗﻞ ﺣﺮف واﺣﺪ ورﻗﻢ واﺣﺪ و،أن ﻻ ﯾﻘﻞ ﺣﺠﻢ ﻛﻠﻤﺔ اﻟﺴﺮ ﻋﻦ ارﺑﻊ ﺧﺎﻧﺎت ·
.$ رﻣﺰ ﺧﺎص واﺣﺪ ﻣﺜﻞ
.أن ﻻ ﺗﺘﻄﺎﺑﻖ ﻛﻠﻤﺔ اﻟﺴﺮ ﻣﻊ اﺳﻢ اﻟﻤﺴﺘﺨﺪم ·
ﻣﺜﻼً ﻟﻮ ﻛﺎﻧﺖ ﻛﻠﻤﺔ اﻟﺴﺮ اﻟﻘﺪﯾﻤﺔ،أن ﺗﺨﺘﻠﻒ ﻛﻠﻤﺔ اﻟﺴﺮ اﻟﺠﺪﯾﺪة ﻋﻦ اﻟﺘﻲ ﻗﺒﻠﮭﺎ ﻋﻠﻰ اﻷﻗﻞ ﺑﺜﻼث ﺧﺎﻧﺎت ·
ﻋﻠﻰ اﻋﺘﺒﺎر وﺟﻮد اﺧﺘﻼﻓﯿﯿﻦ اﺛﻨﯿﻦ ﻓﻘﻂN1Z$3 ﻓﻼ ﺗﻘﺒﻞ ﻛﻠﻤﺔ اﻟﺴﺮ اﻟﺠﺪﯾﺪة اذا ﻛﺎﻧﺖ، N1E$ ھﻲ
.(3,Z) ھﻤﺎ
:ﻓﻲ اﻟﻘﺎﻋﺪة
.Unlimited وھﻲDefault ﻛﻞ اﻟﻌﻮاﻣﻞ اﺧﺘﯿﺎرﯾﺔ واذا ﻟﻢ ﯾﺘﻢ ﻛﺘﺎﺑﺘﮭﺎ ﯾﺆﺧﺬ اﻟﻘﯿﻤﺔ ال:ﻣﻼﺣﻈﺔ
136
ﻣﻼﺣﻈﺔ :ﻻﺳﺘﺨﺪام اﻟﺴﺎﻋﺎت أو اﻟﺪﻗﺎﺋﻖ ﻋﻮﺿﺎً ﻋﻦ اﻷﯾﺎم ﺗﺴﺘﺨﺪم اﻟﻘﯿﻤﺔ 1/24ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ ﯾﻮم واﺣﺪ وﯾﺴﺘﺨﺪم
1/1400ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ دﻗﯿﻘﺔ واﺣﺪة.
:ALTERING PROFILE
ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻗﯿﻢ اﻟﻌﻮاﻣﻞ ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ ، ALTER PROFILEﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل .8.2
ﻣﻼﺣﻈﺔ :اﻟﺘﻌﺪﯾﻼت اﻟﺘﻲ ﺗﺤﺪث ﻟﻞ Profileﺑﻮاﺳﻄﺔ ALTER PROFILEأو ﻋﺒﺮ ال Consoleﻻ ﺗﺆﺛﺮ
ﻋﻠﻰ ال Sessionاﻟﺤﺎﻟﻲ ﻟﻠﻤﺴﺘﺨﺪﻣﯿﯿﻦ ،ﺑﻞ ﻋﻨﺪ دﺧﻮل اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻓﻲ اﻟﻤﺮة اﻟﻘﺎدﻣﺔ )ال Sessionاﻟﻘﺎدم(.
137
:DROPPING PROFILE
ﻓﻲ اﻟﻘﺎﻋﺪة:
:CASCADEﻋﻨﺪ ﻛﺘﺎﺑﺘﮭﺎ ﯾﻘﻮم اﻷوراﻛﻞ ﺑﺤﺬف " "Revokeال Profileﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ اﻟﺬﯾﻦ ·
ﺧﺼﺺ ﻟﮭﻢ وﺗﺤﻮﯾﻠﮭﻢ اﻟﻰ ال .Default Profile
ﻟﺤﺬف :Profile
ﻣﻼﺣﻈﺎت:
138
RESOURCE MANAGEMENT
ﺑﺎﻟﺘﺤﻜﻢ ﺑﺎل Resourcesﺑﺎﺳﺘﺨﺪام ال Profileﯾﻤﻜﻦ ﺗﻨﻔﯿﺬ ﻋﺪد ﻣﻦ اﻟﻘﯿﻮد ﻣﻨﮭﺎ ﺗﺤﺪﯾﺪ أﻗﺼﻰ وﻗﺖ ﯾﻤﻜﻦ
ﻟﻠﻤﺴﺘﺨﺪم ان ﯾﻈﻞ ﻣﺘﺼﻼًَ ﺑﺎل ، Databaseوأﻗﺼﻰ وﻗﺖ ﯾﻤﻜﻦ أن ﯾﻈﻞ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ال Databaseدون
اﻟﻘﯿﺎم ﺑﻤﮭﻤﺎت " ، "Idleوﺗﺤﺪﯾﺪ ﻋﺪد ال Sessionsاﻟﺘﻲ ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم أن ﯾﺤﺼﻞ ﻋﻠﯿﮭﺎ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ.
ﯾﺠﺐ ﺗﺤﺪﯾﺪ اﻟﻌﺎﻣﻞ " RESOURCE_LIMIT "Parameterﻓﻲ Initiliazation Parameter File
ﺑﺎﻟﻘﯿﻤﺔ TRUEﻟﻜﻲ ﻧﺘﻤﻜﻦ ﻣﻦ اﻟﺘﺤﻜﻢ ﺑﺎل ، Resourcesﻣﻊ اﻹﻋﺘﺒﺎر أن اﻟﻘﯿﻤﺔ ال Defaultھﻲ
،FALSEﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ﺑﻄﺮﯾﻘﺔ داﯾﻨﺎﻣﯿﻜﯿﺔ ﺗﻈﻞ ﺳﺎرﯾﺔ اﻟﻤﻔﻌﻮل اﻟﻰ أن ﯾﺤﺪث إﻏﻼق ﻟﻞ
Databaseﺑﺎﺳﺘﺨﺪام ALTER SYSTEMﻛﻤﺎ ﻓﻲ اﻟﻤﺜﺎل .8.4
139
:CREATING PROFILE TO MANAGE RESOURCES
:ﻓﻲ اﻟﻘﺎﻋﺪة
140
:USING DATABASE RESOURCE MANAGER
ﻋﻠﻰ الOracle Server ﻟﺘﻮﻓﯿﺮ ﺗﺤﻜﻢ أﻛﺒﺮ ﻟﻞDatabase Resource Manager ﯾﻤﻜﻦ اﺳﺘﺨﺪام ال
Database اﻟﻼزﻣﺔ ﻟﻠﺘﺤﻜﻢ ﺑﺎلPrivilege ﯾﺠﺐ أن ﯾﻜﻮن ﻟﻠﻤﺴﺘﺨﺪم ال. وﻛﯿﻔﯿﺔ ﺗﺨﺼﯿﺼﮭﺎResources
.ADMINISTER_RESOURCE_MANAGER privilege وھﻲResource Manager
وﻛﯿﻔﯿﺔ اﺳﺘﺨﺪاﻣﮫ ﻓﻲ دراﺳﺔ اﻹﻣﺘﺤﺎنDatabase Resource Manager ﻣﻌﻠﻮﻣﺎت أﻛﺜﺮ ﺣﻮل ال:ﻣﻼﺣﻈﺔ
.Oracle9i DBA اﻟﺮاﺑﻊ ﻣﻦ اﻣﺘﺤﺎﻧﺎت ال
:QUERYING INFORMATION
ﯾﺴﺘﺨﺪم ال، Profile ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ﻗﯿﻢ ﻋﻮاﻣﻞ ال:DBA_PROFILES ·
أوPassword ﻟﺘﺤﺪﯾﺪ ﻧﻮع اﻟﻌﻮاﻣﻞ اﻟﻤﺮاد اﺳﺘﺨﺮاﺟﮭﺎ )أﻣﺎResource_Type Column
.(Kernel وﺗﺴﻤﻰ ھﻨﺎResources
.( ﯾﻌﻤﻞ- )ﻣﻐﻠﻖAccount ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﺳﻢ اﻟﻤﺴﺘﺨﺪم وﻛﻠﻤﺔ اﻟﺴﺮ وﺣﺎﻟﺔ ال:DBA_USERS ·
141
MANAGING USERS
ﻟﻜﻲ ﯾﺘﻤﻜﻦ ال DBAﻣﻦ ﻣﻨﺢ ﻓﺮﺻﺔ اﻟﺪﺧﻮل اﻟﻰ ال Databaseﻟﻠﻤﻮﻇﻔﯿﻦ ،ﯾﺠﺐ ﻣﻨﺢ ﻛﻞ واﺣﺪ ﻣﻨﮭﻢ
Accountﯾﺘﻜﻮن ﻣﻦ اﺳﻢ ﻣﺴﺘﺨﺪم وﻛﻠﻤﺔ ﺳﺮ ،ﯾﻌﺮف ھﺬا ال Accountﺑﺎﺳﻢ .Userﯾﻤﻜﻦ ﺗﺨﺼﯿﺺ ﻟﻜﻞ
ﻣﺴﺘﺨﺪم ﻣﻤﯿﺰات و Privilegesو ، Profileو Tablespaceﻟﺘﻜﻮﯾﻦ اﻟﻌﻨﺎﺻﺮ " "Objectsﻓﯿﮭﺎ،
و Temporary Tablespaceﻟﺘﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺆﻗﺘﮫ اﻟﺘﻲ ﺗﻨﺘﺞ ﻋﻦ ﻋﻤﻠﯿﺎت اﻟﻤﺴﺘﺨﺪم ،ﻛﻤﺎ ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ
ﻣﺴﺎﺣﺔ ﺧﺎﺻﺔ ﻟﻠﻤﺴﺘﺨﺪم ﻣﻦ ﻛﻞ Tablespaceﺗﻌﺮف ﺑﺎﺳﻢ .Tablespace Quotasﻛﻞ اﻟﻌﻨﺎﺻﺮ
" "Objectsاﻟﺘﻲ ﯾﻤﻠﻜﮭﺎ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ال ) Databaseﻣﺜﻞ (Tables, Views, Indexesﺗﻌﺮف ﺑﺎﺳﻢ
Schemaوﻻ ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم اﻟﻮاﺣﺪ أن ﯾﻜﻮن ﻟﮫ أﻛﺜﺮ ﻣﻦ Schemaواﺣﺪة.
:CREATING USERS
ﻓﻲ اﻟﻘﺎﻋﺪة:
142
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :8.6
ﯾﻤﻜﻦ اﻟﺴﻤﺎح ﻟﻠﻤﺴﺘﺨﺪﻣﯿﯿﻦ اﻟﺪﺧﻮل اﻟﻰ ال Databaseدون اﺳﺘﺨﺪام ﻛﻠﻤﺔ ﺳﺮ ،ھﺬا ﯾﻌﻨﻲ ﺑﻤﺠﺮد اﺳﺘﻄﺎﻋﺔ
اﻟﻤﺴﺘﺨﺪم اﻟﺪﺧﻮل اﻟﻰ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ﻋﺒﺮ ﻧﻈﺎم اﻟﺤﻤﺎﯾﺔ اﻟﻤﻌﻤﻮل ﻓﯿﮫ ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ )ﻗﺪ ﯾﻜﻮن ﻛﻠﻤﺔ ﺳﺮ ﺧﺎﺻﺔ
ﺑﻨﻈﺎم اﻟﺘﺸﻐﯿﻞ " (" Operating Systemﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم اﻟﺪﺧﻮل اﻟﻰ ال Databaseدون اﻟﺤﺎﺟﺔ اﻟﻰ
ﻛﻠﻤﺔ ﺳﺮ ﺧﺎﺻﺔ ﺑﺎﻷوراﻛﻞ .ﻟﺘﻄﺒﯿﻖ ھﺬا اﻟﻨﻈﺎم ﯾﺠﺐ اﺳﺘﺨﺪام ﻛﻠﻤﺔ EXTERNALLYﻓﻲ ﺟﻤﻠﺔ
.CREATE USERﺑﺘﺤﺪﯾﺪ اﻟﻌﺎﻣﻞ OS_AUTHENT_PREFIXﯾﻤﻜﻦ ﺗﻤﯿﯿﺰاﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻧﻈﺎم
اﻟﺘﺸﻐﯿﻞ واﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ال ، Databaseﺣﯿﺚ أن اﻟﻘﯿﻤﺔ ال Defaultﻟﮭﺬا اﻟﻌﺎﻣﻞ ھﻲ .OPS$
ﻣﺜﺎل:
اذا ﻛﺎن اﻟﻤﺴﺘﺨﺪم ﻣﺆھﻞ ﻟﻠﺪﺧﻮل ﻋﺒﺮ ﺣﻤﺎﯾﺔ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ) اﻟﺘﻲ ﺗﻄﻠﺐ ﻣﻦ اﻟﻤﺴﺘﺨﺪم ﻛﺘﺎﺑﺔ اﺳﻢ و ﻛﻠﻤﺔ ﺳﺮ(
اﻟﻰ ال Databaseوﻛﺎن اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻧﻈﺎم ﺣﻤﺎﯾﺔ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ھﻮ Ahmadﻓﺈن اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ال
Databaseﯾﻜﻮن .OPS$Ahmad
ﻋﻨﺪﻣﺎ ﯾﻄﻠﺐ اﻟﻤﺴﺘﺨﺪم Ahmadاﻟﺪﺧﻮل اﻟﻰ ال ، Databaseﻓﻠﯿﺲ ﻣﻄﻠﻮﺑﺎً ﻣﻦ ادﺧﺎل ﻛﻠﻤﺔ ﺳﺮ أو اﺳﻢ
ﻣﺴﺘﺨﺪم اذ ﯾﻘﻮم اﻷوراﻛﻞ ﺑﻤﻌﺮﻓﺔ اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ) (Ahmadورﺑﻄﮫ ﻣﻊ ال Account
اﻟﺨﺎص ﺑﮫ ).(OPS$Ahmad
143
ﻣﻼﺣﻈﺔ :ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ ال OS_AUTHENT_PREFIXﻗﺪ ﯾﺆدي اﻟﻰ ﻣﻨﻊ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻣﻦ اﻟﺪﺧﻮل اﻟﻰ ال
) Databaseاﻟﺬﯾﻦ ﯾﺴﻤﺢ ﻟﮭﻢ اﻟﺪﺧﻮل اﻟﻰ Databaseﺑﺪون ﻛﻠﻤﺔ ﺳﺮ(.
ﻣﺜﺎل:
ﻣﺜﺎل ﻋﻠﻰ اﺳﺘﺨﺪام ، REMOTE_OS_AUTHENTدﺧﻮل اﻟﻤﺴﺘﺨﺪم )ﻟﺪﯾﮫ إﻣﻜﺎﻧﯿﺔ اﻟﺪﺧﻮل اﻟﻰ ال
Databaseﻋﺒﺮ ﺣﻤﺎﯾﺔ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ( اﻟﻰ ﻧﻈﺎم ﺗﺸﻐﯿﻞ )ﻣﺜﻞ ال (Unixﻣﺘﺼﻞ ﻣﻊ Oracle Server
اﻟﻤﻮﺟﻮد ﻋﻠﻰ ﺟﮭﺎز أﺧﺮ ،ﻓﻲ ﺣﺎﻟﺔ وﺿﻊ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ،Trueﻓﺈن اﻟﻤﺴﺘﺨﺪم ﯾﺴﺘﻄﯿﻊ اﻹﺗﺼﺎل ﺑﺎل
،Databaseأﻣﺎ ﻓﻲ ﺣﺎﻟﺔ اﻟﻘﯿﻤﺔ ) Falseھﻲ ال (Defaultﻓﺈن اﻟﻤﺴﺘﺨﺪم ﻻ ﯾﺴﺘﻄﯿﻊ اﻹﺗﺼﺎل ﺑﺎل
Databaseوﯾﺴﺘﻄﯿﻊ ﻓﻘﻂ اذا ﻛﺎن ال Oracle Serverﻣﻮﺟﻮد ﻋﻠﻰ ذات اﻟﺠﮭﺎز اﻟﺬي دﺧﻞ إﻟﯿﮫ.
رﺳﻢ 8.1
:ALTERING USERS
ﯾﻤﻜﻦ اﺳﺘﺨﺪام ﺟﻤﻠﺔ ALTER USERﻟﻜﻲ ﯾﺘﻢ ﺗﻐﯿﯿﺮ ال Default Tablespaceأو ال Temporary
Tablespaceأو ال .Quota
ﻟﺘﻐﯿﯿﺮ ال Quotaﻟﻠﻤﺴﺘﺨﺪم:
ﻣﻼﺣﻈﺔ :ﻓﻲ ﺣﺎﻟﺔ ﺗﻐﯿﯿﺮ ﻗﯿﻤﺔ ال Quotaاﻟﻰ ﺻﻔﺮ وﻛﺎن ﻟﻠﻤﺴﺘﺨﺪم Tableﻓﻲ ال ،Users Tablespace
ﻓﺈن ھﺬه ال Tableﻻ ﯾﻤﻜﻦ أن ﯾﻜﺒﺮ ﺣﺠﻤﮭﺎ أﺑﺪاً )ﻻ ﺗﺴﺘﻄﯿﻊ ﺣﺠﺰ ﻣﺰﯾﺪ ﻣﻦ ال .(Extents
144
أو ﻋﺒﺮ ال :Console
:DROPPING USERS
ﻓﻲ اﻟﻘﺎﻋﺪة:
:CASCADEﺑﺎﺿﺎﻓﺘﮭﺎ اﻟﻰ اﻟﺠﻤﻠﺔ ﯾﺘﻢ ﺣﺬف ﻛﻞ اﻟﻌﻨﺎﺻﺮ " "Objectsاﻟﺘﻲ ﻛﻮﻧﮭﺎ اﻟﻤﺴﺘﺨﺪم ﻓﻲ ·
ال Schemaاﻟﺨﺎﺻﺔ ﺑﮫ.
ﻣﻼﺣﻈﺔ :ﻻ ﯾﻤﻜﻦ ﺣﺬف ﻣﺴﺘﺨﺪم ﻣﺘﺼﻞ ﺑﺎل .Databaseﯾﻤﻜﻦ اﺳﺘﻌﻤﺎل KILL SESSIONﻹﺧﺮاج
اﻟﻤﺴﺘﺨﺪم ﺛﻢ ﺣﺬﻓﮫ ﻣﻦ ال .Database
ﻟﺤﺬف ﻣﺴﺘﺨﺪم:
;DROP USER Ahmad
:QUERYING INFORMATION
145
146
PRIVILEGES
ﺑﺎﺳﺘﺨﺪام ال Privilegesﯾﻤﻜﻦ وﺿﻊ ﺣﺪود ﻟﻜﻞ ﻣﺴﺘﺨﺪم ﻓﻲ ال ،Databaseﻣﺜﺎل ﻋﻠﻰ ذﻟﻚ ﺣﺪود ﻋﻠﻰ
اﻟﻤﮭﺎم اﻟﺘﻲ ﯾﺴﺘﻄﯿﻊ ﺗﻨﻔﯿﺬھﺎ ،وﺣﺪود ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﺴﺘﻄﯿﻊ ﺗﻌﺪﯾﻠﮭﺎ .ﯾﻤﻜﻦ إﻋﻄﺎء Privileges
ﻟﻠﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ أو أن ﯾﺘﻢ ﻋﺒﺮ ال ، Rolesﻛﻤﺎ ﯾﻤﻜﻦ إﻋﻄﺎء Privilegesﻋﺎﻣﺔ ﻟﺠﻤﯿﻊ
اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ وذﻟﻚ ﻋﺒﺮ إﻋﻄﺎء ال Privilegesاﻟﻰ ﻣﺠﻤﻮﻋﺔ ﺗﻌﺮف ﺑﺎﺳﻢ Publicوھﻲ ﻣﺠﻤﻮﻋﺔ ﯾﻨﺘﻤﻲ إﻟﯿﮭﺎ
ﺟﻤﯿﻊ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻓﻲ ال .Database
:SYSTEM PRIVILEGES
ﯾﻮﺟﺪ ﻋﺪد ﻛﺒﯿﺮ ﻣﻦ ال System Privilegesﻓﻲ ال Databaseﯾﺘﻢ ﺗﺨﺼﯿﺼﮭﺎ ﻟﻠﻤﺴﺘﺨﺪﻣﯿﻦ ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ
GRANTوﯾﺘﻢ إﻋﺎدﺗﮭﺎ )إﻟﻐﺎﺋﮭﺎ( ﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ .REVOKEﯾﻤﻜﻦ ﺗﻮزﯾﻊ ال System
Privilegesاﻟﻰ ﺛﻼﺛﺔ أﻗﺴﺎم ،ﻗﺴﻢ ﻣﺘﻌﻠﻖ ﺑﺎل Databaseﺑﺸﻜﻞ ﻋﺎم ،واﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ﻣﺘﻌﻠﻖ ﺑﺎل Schema
اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم ،أﻣﺎ اﻟﻘﺴﻢ اﻟﺜﺎﻟﺚ ﻓﻤﺘﻌﻠﻖ ﺑﺎل Schemasاﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ اﻷﺧﺮﯾﻦ .ﻧﺴﻖ ال
Privilegesﻓﻲ اﻟﻨﻮع اﻟﺜﺎﻟﺚ واﻟﺮاﺑﻊ ﻣﺘﺸﺎﺑﮫ ﻣﻦ ﺣﯿﺚ اﻟﺠﻤﻠﺔ وﻟﻜﻦ ﯾﻀﺎف ﻛﻠﻤﺔ ANYﻟﻠﻨﻮع اﻟﺜﺎﻟﺚ ،ﻣﺜﺎل
ﻋﻠﻰ ذﻟﻚ ) CREATE TABLEاﻟﻨﻮع اﻟﺜﺎﻧﻲ( و ) CREATE ANY TABLEاﻟﻨﻮع اﻟﺜﺎﻟﺚ(.
147
SELECT ANY TABLE ·
UPDATE ANY TABLE ·
DELETE ANY TABLE ·
BACKUP ANY TABLE ·
INSERT ANY TABLE ·
GRANT ANY PRIVILEGE ·
GRANT ANY ROLE ·
SYSOPER ·
SYSDBA ·
:ﻣﻼﺣﻈﺎت
DROP ﯾﺠﺐ أن ﯾﺨﺼﺺ ﻟﮫSchema ﻓﻲ أيTable ﻷيTruncate ﻟﻜﻲ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم ﻋﻤﻞ-6
.ANY TABLE
ﯾﺼﺒﺢ،SELECT ANY TABLE أوALTER ANY TABLE ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﻣﻨﺢ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ
وھﺬا ﻗﺪ ﯾﺸﻜﻞ ﺧﻄﺮ ﻋﻠﻰ ال، Dictionary Objects ﺑﺈﻣﻜﺎن اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ اﻟﺪﺧﻮل أو اﺳﺘﺨﺪام ال
ﻣﻦ ﻋﻮاﻣﻞ07_DICTIONARY_ACCESSIBILITY ﯾﻮﻓﺮ اﻷوراﻛﻞ اﻟﻌﺎﻣﻞ.Database
،Dictionary Objects ﻓﻲ اﻟﺘﺤﻜﻢ ﻓﻲ الDBA اﻟﺬي ﯾﻤﻜﻦ الInitialization Parameter File
SYS ﯾﺘﻢ ﻣﻨﻊ اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻣﻦ اﻟﺪﺧﻮل اﻟﻰ ﺟﻤﯿﻊ اﻟﻌﻨﺎﺻﺮ ﺿﻤﻦ ال، False ﺑﺤﯿﺚ ﻋﻨﺪ وﺿﻊ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ
. Dictionary اﻟﺬي ﯾﻤﻠﻚ الSchema
148
:Granting System Privilege
ﻓﻲ اﻟﻘﺎﻋﺪة:
ﻣﺜﺎل:
149
:Revoking System Privilege
ﻣﻼﺣﻈﺔ :ﻓﻲ ﺑﻌﺾ اﻟﺤﻼت ﻋﻨﺪ ﺳﺤﺐ Privilegeﻣﻦ اﻟﻤﺴﺘﺨﺪم ﯾﺤﺪث ﺧﻠﻞ ﻓﻲ ﺑﺎﻗﻲ ﻋﻨﺎﺻﺮ اﻟﻤﺴﺘﺨﺪم .ﻣﺜﺎل
ﻋﻠﻰ ذﻟﻚ اﻟﺨﻠﻞ اﻟﺬي ﻗﺪ ﯾﺤﺪﺛﮫ إﻟﻐﺎء CREATE TABLEﻣﻦ اﻟﻤﺴﺘﺨﺪم اﻟﺬي ﻗﺎم ﺑﺘﻜﻮﯾﻦ Tables
و ،Viewsﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﺤﺪث ﺧﻠﻞ ﻟﻞ Viewsﻷن ال Viewsﻣﻌﺘﻤﺪة ﻋﻠﻰ ال .Tables
ﻣﺜﺎل:
150
:OBJECT PRIVILEGES
Table, View, Sequence, إﻣﻜﺎﻧﯿﺔ اﻟﻘﯿﺎم ﺑﻤﮭﻤﺎت ﻣﺤﺪدة ﻋﻠﻰ الObject Privilege ﺗﻮﻓﺮ ال
.Procedure, Function, Package
:ﻓﻲ اﻟﻘﺎﻋﺪة
:ﻣﻼﺣﻈﺎت
ﻓﻲ الObject ﯾﺠﺐ أن ﯾﻜﻮن ال، اﻟﻰ ﻣﺴﺘﺨﺪم أﺧﺮObject Privileges ﻟﻜﻲ ﯾﺴﺘﻄﯿﻊ ﻣﺴﺘﺨﺪم إﻋﻄﺎء-1
.WITH GRANT OPTION ﻣﻊ اﺳﺘﺨﺪامObject Privilege اﻟﺨﺎﺻﺔ ﺑﮫ أو ﺗﻢ إﻋﻄﺎءهSchema
. اﻟﺨﺎﺻﺔ ﺑﮫSchema اﻟﻤﻮﺟﻮدة ﻓﻲ الObjects ﻛﺎﻣﻠﺔ ﻋﻠﻰ الObject Privileges ﻟﻜﻞ ﻣﺴﺘﺨﺪم-2
151
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :9.3
ﻣﻼﺣﻈﺔ :ﻟﻜﻲ ﺗﺘﻢ ﻋﻤﻠﯿﺔ ال ، Revokeﯾﺠﺐ أن ﯾﻘﻮم ﺑﺎﻟﻌﻤﻠﯿﺔ ذات اﻟﻤﺴﺘﺨﺪم اﻟﺬي ﻗﺎم ﺑﻌﻤﻠﯿﺔ .Grant
ﻓﻲ اﻟﻘﺎﻋﺪة:
152
ﻣﺜﺎل:
:QUERYING INFORMATION
153
AUDITING THE DATABASE
ﻋﻤﻠﯿﺔ ال Auditingھﻲ ﻋﻤﻠﯿﺔ ﻣﺮاﻗﺒﺔ ﻣﮭﻤﺎت ال Databaseاﻟﻤﺨﺘﻠﻔﺔ ﺑﺤﯿﺚ ﯾﺘﻢ ﻣﺮاﻗﺒﺔ أي ﻋﻤﻠﯿﺎت ﻣﺸﺘﺒﮫ
ﻓﻲ أﻧﮭﺎ ﻏﯿﺮ ﻣﺴﻤﻮح ﻓﯿﮭﺎ ﻛﺄن ﯾﻘﻮم ﻣﺴﺘﺨﺪم ﻏﯿﺮ ﻣﺴﻤﻮح ﻟﮫ ﺑﺎﻟﺪﺧﻮل اﻟﻰ ال Databaseﺑﺎﻟﺪﺧﻮل وﺣﺬف
ﺑﯿﺎﻧﺎت ﻣﻦ ال .Databaseﯾﺘﻢ ﺟﻤﻊ ﺑﯿﺎﻧﺎت وﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﻤﺮاﻗﺒﺔ ﻓﻲ AUD$اﻟﺘﺎﺑﻌﺔ ل ، SYS schema
أو ﯾﻤﻜﻦ ﺟﻤﻊ ھﺬه اﻟﻤﻌﻠﻮﻣﺎت ﻓﻲ ﻣﻠﻒ ﺧﺎرﺟﻲ ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ " ."Operating Systemﻟﺘﺴﺠﯿﻞ
اﻟﻤﻌﻠﻮﻣﺎت اﻟﻨﺎﺗﺠﺔ ﻋﻦ ﻋﻤﻠﯿﺔ ال ، Auditingﯾﺠﺐ وﺿﻊ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ AUDIT_TRAILﺑﺎﻟﻘﯿﻤﺔ True
أو ، DBأو ﯾﻤﻜﻦ اﺳﺘﺨﺪام ﻣﻠﻒ ﺧﺎرﺟﻲ ﺑﻮﺿﻊ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ،OSأﻣﺎ اﻟﻘﯿﻤﺔ ال Defaultﻟﻠﻌﺎﻣﻞ ھﻲ
.NONEﯾﻘﻮم اﻷوراﻛﻞ ﺑﻌﻤﻞ Auditingﻓﻲ ﺑﻌﺾ اﻟﺤﺎﻻت وإن ﻛﺎﻧﺖ ﻗﯿﻤﺔ اﻟﻌﺎﻣﻞ ،Noneﻣﺜﻞ ﻋﻨﺪ ﺗﺸﻐﯿﻞ
و إﻏﻼق ال Instanceأو ﻟﻤﺮاﻗﺒﺔ ال Privilegesاﻟﺨﺎﺻﺔ ﻟﻞ ) DBAأو ﻛﻞ ﻣﺴﺘﺨﺪم ﯾﻤﻠﻚ Privileges
ﻣﺸﺎﺑﮫ ﻟﻞ .(DBA
ﻟﻞ DBAﺣﺮﯾﺔ ﺗﺤﺪﯾﺪ اذا ﻣﺎ ﻛﺎن ﯾﺮﯾﺪ ان ﺗﺤﺪث ﻋﻤﻠﯿﺔ ال Auditingﻋﻨﺪ اﻟﻤﮭﻤﺔ اﻟﻤﺮاد ﻣﺮاﻗﺒﺘﮭﺎ ) By
(Accessأو ﻟﻜﻞ ال Sessionﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﻋﺪد اﻟﻤﮭﻤﺎت اﻟﺘﻲ ﺗﺤﺪث).(By Session
ﻣﻼﺣﻈﺔ :ﯾﻄﻠﻖ ﻋﻠﻰ AUD$اﺳﻢ Audit Trailوھﻲ ﻣﻦ ﻧﻮع ال Base Tablesوھﻲ اﻟﻮﺣﯿﺪة اﻟﺘﻲ ﯾﻤﻜﻦ
ﻟﻞ DBAﺗﻌﺪﯾﻠﮭﺎ ﻛﻤﺎ ﺟﺎء ذﻛﺮھﺎ ﺳﺎﺑﻘﺎً.
اذا اﻣﺘﻠﺊ ﻣﻠﻒ ال Audit Trailﺑﺤﯿﺚ ﻻ ﯾﻤﻜﻦ إﺿﺎﻓﺔ ﻣﻌﻠﻮﻣﺎت اﻟﻤﺮاﻗﺒﺔ اﻟﻰ اﻟﻤﻠﻒ ،ﺗﺘﺄﺛﺮ ﺟﻤﯿﻊ ﺟﻤﻞ ال
SQLاﻟﻤﺮاﻗﺒﺔ وﻋﻮﺿﺎً أن ﺗﻈﮭﺮ اﻟﻨﺘﺎﺋﺞ اﻟﻄﻠﻮﺑﺔ ،ﺗﻈﮭﺮ أﺧﻄﺎء " ."Error Messagesوﻟﺬﻟﻚ ﯾﺠﺐ ﺗﻔﺮﻏﺔ
ﻣﻠﻒ ال Audit Trailﺑﺸﻜﻞ ﻣﺴﺘﻤﺮ .ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﺣﺠﻢ ال ، Audit Trailﯾﻨﺼﺢ ﺑﺎﺳﺘﺨﺪم ال Auditing
ﻋﻨﺪ اﻟﻀﺮورة ﻓﻘﻂ ،واﺧﺘﯿﺎر ﻧﻮع اﻟﻤﺮاﻗﺒﺔ ﺑﺪﻗﺔ )ال SQLأو اﻟﻌﻨﺎﺻﺮ أو ال ، (Privilegesوﻋﺪم إﻋﻄﺎء ال
AUDIT ANY privilegesﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ ﻛﺜﯿﺮﯾﻦ واﺳﺘﺨﺪام By Sessionﻋﻮﺿﺎً ﻋﻦ .By Access
154
ﻣﺜﺎل ﺗﻄﺒﯿﻘﻲ :9.5
;AUDIT TABLE
:AUDITING OPTIONS
:WHENEVER SUCCESSFULﻓﻲ ﺣﺎﻟﺔ ﻣﺮاﻗﺒﺔ ﺟﻤﻞ ال ، SQLﯾﺘﻢ ﺟﻤﻊ ﻣﻌﻠﻮﻣﺎت ﺣﻮل ·
اﻟﺠﻤﻞ اﻟﺘﻲ ﺗﻤﺖ ﺑﻨﺠﺎح وﻻ ﯾﺘﻢ ﺗﺴﺠﯿﻞ ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﺠﻤﻞ اﻟﺘﻲ ﻟﻢ ﺗﻨﺠﺢ ﻓﻲ اﻟﻘﯿﺎم ﺑﻤﮭﻤﺘﮭﺎ.
:WHENEVER NOT SUCCESSFULﻓﻲ ﺣﺎﻟﺔ ﻣﺮاﻗﺒﺔ ﺟﻤﻞ ال ، SQLﯾﺘﻢ ﺟﻤﻊ ·
ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﺠﻤﻞ اﻟﺘﻲ ﻟﻢ ﺗﻨﺠﺢ وﻻ ﯾﺘﻢ ﺗﺴﺠﯿﻞ ﻣﻌﻠﻮﻣﺎت ﺣﻮل اﻟﺠﻤﻞ اﻟﺘﻲ ﻧﺠﺤﺖ ﻓﻲ اﻟﻘﯿﺎم
ﺑﻤﮭﻤﺘﮭﺎ.
.BY ACCESS ·
.BY SESSION ·
;AUDIT SESSION
155
:NOAUDITING
ﻻﯾﻘﺎف ﻋﻤﻠﯿﺔ ال ، Aduitingﺗﺴﺘﺨﺪم ﺟﻤﻠﺔ NOAUDITﻣﻊ اﺿﺎﻓﺔ اﻟﺠﺰء اﻟﺬي ﺗﻢ ﻣﺮاﻗﺒﺘﮫ ﻓﻲ ﻋﻤﻠﯿﺔ
.Auditing
:QUERYING INFORMATION
156
MANAGING ROLES
:CREATING ROLES
ﻓﻲ اﻟﻘﺎﻋﺪة:
ﻣﻼﺣﻈﺔ :ﯾﻮﺟﺪ أﻧﻮاع ﺣﻤﺎﯾﺔ أﺧﺮى ﻟﻞ Roleﻋﺪا ﻛﻠﻤﺔ اﻟﺴﺮ أو Externallyﻻ ﻣﺠﺎل ﻟﻠﺘﻄﺮق ﻟﮭﺎ ﻓﻲ اﻟﻜﺘﺎب.
ﻟﺘﻜﻮﯾﻦ :Role
157
ﻣﻼﺣﻈﺎت:
:PREDEFINED ROLES
ﻣﻼﺣﻈﺔ :ﺳﻮف ﯾﺘﻢ اﻟﺘﻄﺮق ﻋﻠﻰ ﻋﻤﻠﯿﺎت ال Exportو ال Importﻓﻲ دراﺳﺔ اﻹﻣﺘﺤﺎن اﻟﺜﺎﻟﺚ ﻣﻦ اﻣﺘﺤﺎﻧﺎت
ال .Oracle9i
ﺗﺬﻛﺮ :ﻣﻦ أﻧﻮاع ال Data Dictionary Viewsﻧﻮع _ DBAاﻟﺬي ﯾﻤﻜﻦ أن ﻟﻠﻤﺴﺘﺨﺪم اﻟﺪﺧﻮل اﻟﻰ ﺑﯿﺎﻧﺎﺗﮫ
اذا ﻛﺎن ﯾﻤﻠﻚ ال .SELECT_CATALOG_ROLE
158
:MODIFYING ROLES
ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻧﻈﺎم ﺣﻤﺎﯾﺔ ال Roleأو ﺣﺬف ﻧﻈﺎم اﻟﺤﻤﺎﯾﺔ ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ ALTER ROLEﻛﻤﺎ ﻓﻲ
اﻟﻤﺜﺎل .9.9
ﻣﻼﺣﻈﺔ :ﻟﺘﻌﺪﯾﻞ ﻧﻈﺎم ﺣﻤﺎﯾﺔ ال ، Roleﯾﺠﺐ أن ﯾﻜﻮن ﻟﻠﻤﺴﺘﺨﺪم .ALTER ANY ROLE privilege
159
أو ﻋﺒﺮ ال :Console
ﻣﻼﺣﻈﺎت:
-1اﻟﻤﺴﺘﺨﺪم اﻟﺬي ﯾﻘﻮم ﺑﺘﻜﻮﯾﻦ ال Roleﻟﺪﯾﮫ اﻟﺤﻖ ﻓﻲ WITH ADMIN OPTIONﻋﻠﻰ ذﻟﻚ ال
.Role
-2اﻟﻤﺴﺘﺨﺪم اﻟﺬي ﯾﻤﻠﻚ GRANT ANY ROLE privilegeﯾﺴﺘﻄﯿﻊ إﻋﻄﺎء أو إﻟﻐﺎء ال Rolesﻣﻦ
اﻟﻤﺴﺘﺨﺪﻣﯿﯿﻦ.
-3ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪ ﻋﺪد ال Rolesاﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﻜﻮن ﻓﻲ اﻟﺤﺎﻟﺔ Enableﺑﺎﺳﺘﺨﺪام ﻋﺎﻣﻞ ﻣﻦ ﻋﻮاﻣﻞ ال
Intialazation Parameter Fileھﻮ MAX_ENABLED_ROLESاﻟﺬي ﻗﯿﻤﺘﮫ ال Defaultھﻲ
.20
160
:ASSIGNING DEFAULT ROLES
ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم اﻟﻮاﺣﺪ أن ﯾﻤﻠﻚ أﻛﺜﺮ ﻣﻦ ، Roleوﻟﻜﻦ ﻟﯿﺲ ﺑﺎﻟﻀﺮورة أن ﺗﻜﻮن ﻛﻠﮭﺎ ﻓﻲ ﺣﺎﻟﺔ ،Enable
وﻟﻜﻦ ﯾﻤﻜﻦ ﺟﻤﻊ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ال Rolesﻟﺘﻤﺜﻞ ال Default Roleواﻟﺬي ﯾﺘﻢ وﺿﻌﮫ ﻓﻲ ﺣﺎﻟﺔ Enable
ﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ ﻋﻨﺪ دﺧﻮل اﻟﻤﺴﺘﺨﺪم اﻟﻰ ال .Databaseﻟﺘﻌﯿﯿﻦ ال ، Deafult Roleﺗﺴﺘﺨﺪم اﻟﻘﺎﻋﺪة:
ﻓﻲ اﻟﻘﺎﻋﺪة:
ﻣﻼﺣﻈﺔ :ﯾﻤﻜﻦ اﺳﺘﺨﺪام ھﺬه اﻟﻘﺎﻋﺪة ﻓﻘﻂ ﻣﻊ ال Rolesاﻟﻤﻤﻨﻮﺣﺔ ﻣﺒﺎﺷﺮة ﻟﻠﻤﺴﺘﺨﺪم ﻋﺒﺮ اﺳﺘﺨﺪام GRANT
وﻻ ﺗﻨﻄﺒﻖ ﻋﻠﻰ ال Rolesاﻟﻤﺪﻣﺠﺔ ﺿﻤﻦ .Roles
161
:ENABLING AND DISABLING ROLES
ﯾﻤﻜﻦ ﺗﺤﻮﯾﻞ ﺣﺎﻟﺔ ال Roleﺑﯿﻦ Enableو Disableﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ .SET ROLEﻻ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺴﺘﺨﺪم
اﺳﺘﺨﺪام ال Roleﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻓﻲ ﺣﺎﻟﺔ ، Disableوﯾﺠﺐ ﺗﺤﻮﯾﻞ ﺣﺎﻟﺘﮭﺎ اﻟﻰ Enableﻷﺳﺘﺨﺪام ال
Privilegesداﺧﻠﮭﺎ .ﺗﺆﺛﺮ ال SET ROLEﻓﻘﻂ ﻋﻠﻰ ال Sessionوﻻ ﺗﻜﻮن اﻟﺘﻐﯿﯿﺮات داﺋﻤﺔ ،إﻧﻤﺎ ﺗﻌﻮد ال
Roleﻟﻮﺿﻌﮭﺎ اﻟﻄﺒﯿﻌﻲ ﺑﻌﺪ ﺧﺮوج اﻟﻤﺴﺘﺨﺪم ﻣﻦ ال .Databaseﻋﻨﺪﻣﺎ ﯾﺘﻄﻠﺐ ال Roleﻛﻠﻤﺔ ﺳﺮ ﻟﺘﺤﻮﯾﻞ
ﺣﺎﻟﺘﮫ ،ﯾﺤﺐ ﻛﺘﺎﺑﺔ ﻛﻠﻤﺔ اﻟﺴﺮ ﻓﻲ ﺟﻤﻠﺔ ، SET ROLEوﻻ ﯾﻨﻄﺒﻖ اﻟﺤﺎل ﻋﻠﻰ ال Defualt Roleوإن ﻛﺎن
ﻣﻦ ﺿﻤﻨﮫ Rolesﺗﺘﻄﻠﺐ ﻛﻠﺔ ﺳﺮ ﻷن ال Deafult Roleﯾﺘﻢ ﺗﺤﻮﯾﻠﮭﺎ اﻟﻰ ﺣﺎﻟﺔ Enableﺑﺸﻜﻞ أوﺗﻮﻣﺎﺗﯿﻜﻲ.
ﯾﻤﻜﻦ ﺗﺤﻮﯾﻞ ﺣﺎﻟﺔ ال Roleﺑﺎﺳﺘﺨﺪام اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ:
SET ROLE
]{ role_name [IDENTIFIED BY PASSWORD] [, role_name ….
]…| ALL [EXCEPT [role_name, role_name,
} |NONE
162
:DROPPING ROLES
ﻣﻼﺣﻈﺔ :ﯾﺤﺘﺎج اﻟﻤﺴﺘﺨﺪم اﻟﻰ DROP ANY ROLE privilegeﻟﺤﺬف أي Roleﻓﻲ ال .Database
:QUERYING INFORMATION
163
GLOBALIZATION SUPPORT
164
GLOBALIZATION SUPPORT
اﻟﻤﻘﺼﻮد ﺑﺎل ، Globalization Supportإﻣﻜﺎﻧﯿﺔ اﺳﺘﺨﺪام ﻟﻐﺎت ﻋﺎﻟﻤﯿﺔ وﺗﻘﻮﯾﻤﺎت ﻋﺎﻟﻤﯿﺔ ﻓﻲ اﻷوراﻛﻞ.
:ENCODING SCHEMES
:SINGLE-BYTEﯾﺘﻢ اﺳﺘﺨﺪام ﺑﺎﯾﺖ واﺣﺪ ﻟﺘﺨﺰﯾﻦ ﺣﺮف واﺣﺪ .ﯾﻮﺟﺪ ﻧﻮﻋﺎن ھﻤﺎ ) 7-bitﻣﺜﺎل ·
(US7ASCIIو ) 8-bitﻣﺜﺎل .(WE8DEC
:VARYING-WIDTHﯾﻤﻜﻦ ﺗﺨﺰﯾﻦ اﻟﺤﺮف اﻟﻮاﺣﺪ ﻓﻲ أﻛﺜﺮ ﻣﻦ ﺑﺎﯾﺖ وﺗﺴﺘﺨﺪم ھﺬه اﻟﻄﺮﯾﻘﺔ ·
ﻏﺎﻟﺒﺎً ﻓﻲ اﻟﻠﻐﺎت اﻷﺳﯿﻮﯾﺔ ﻣﺜﻞ اﻟﺼﯿﻨﯿﺔ واﻟﯿﺎﺑﺎﻧﯿﺔ )ﻣﺜﺎل JEUCو .(AL32UTF8
:FIXED-WIDTHﯾﺘﻢ ﺗﺤﺪﯾﺪ ﻋﺪد ﻣﺤﺪد ﻣﻦ اﻟﺒﺎﯾﺘﺎت ﻟﻜﻞ ﺣﺮف )ﻣﺜﺎل .(AL16UTF16 ·
· :UNICODEﻧﻈﺎم ﻣﻌﺘﻤﺪ ﻓﻲ ﺟﻤﯿﻊ أﻧﺤﺎء اﻟﻌﺎﻟﻢ ﻟﻘﺪرﺗﮫ ﻋﻠﻰ ﺗﻌﺮﯾﻒ ﺟﻤﯿﻊ اﻟﻠﻐﺎت واﻟﺮﻣﻮز اﻟﺨﺎﺻﺔ
واﻟﺮﻣﻮز اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﻨﺸﺮ )ﻣﺜﻞ © ®( .ﯾﻤﻜﻦ أن ﺗﺘﻜﻮن ال Unicodeﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻨﻈﻢ
اﻟﻤﺨﺘﻠﻔﺔ ﻣﺜﻞ ) Varying-Widthﻣﺜﺎل (UTF-8و) Fixed-Widthﻣﺜﺎل .(UTF-16
ﺧﻼل دراﺳﺘﻨﺎ ﻟﻘﺎﻋﺪة ، CREATE DATABASEﺗﻌﺮﻓﻨﺎ اﻟﻰ ﺟﻤﻠﺔ CHARACTER SETاﻟﺘﻲ ﺗﺤﺪد
ﻧﻮﻋﯿﺔ اﻟﻨﻈﺎم اﻟﺨﺎص ﺑﺎﻟﻠﻐﺔ" "Character Setاﻟﺬي ﺳﻮف ﯾﺴﺘﺨﺪم ﻓﻲ ال ) Databaseﻣﺜﻞ
.(AL32UTF8ﯾﺴﺘﺨﺪم ﻧﻈﺎم ال Character setﻟﺘﺨﺰﯾﻦ اﺳﻤﺎء ال Tablesوال Columnsو Data
ﻓﻲ ھﯿﺌﺔ .CHAR, VARCHAR2, LONG, CLOBاﻟﻘﯿﻤﺔ ال Defaultﻟﻞ Character Setھﻲ
اﺳﺘﺨﺪام .US7ASCIIﻻ ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ال Character Setﺑﻌﺪ ﺗﻜﻮﯾﻦ ال Databaseﻋﺪا ﻓﻲ ﺑﻌﺾ
اﻷﺳﺘﺜﻨﺎﺋﺎت اﻟﻘﻠﯿﻠﺔ )ﻣﺜﻼً ﻋﻨﺪﻣﺎ ﯾﻜﻮن ال Character Setاﻟﺠﺪﯾﺪ ﻣﻄﺎﺑﻖ ﺑﺸﻜﻞ ﻛﺒﯿﺮ ﻟﻠﻨﻮع اﻟﻘﺪﯾﻢ(.
ﻋﻤﻠﯿﺔ اﻧﺘﻘﺎء ال Character setاﻟﻤﻨﺎﺳﺐ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻷﺣﺘﯿﺎﺟﺎت اﻟﺤﺎﻟﯿﺔ واﻟﻤﺴﺘﻘﺒﻠﯿﺔ ﻣﻌﺎً ،أي ﻓﻲ ﺣﺎﻟﺔ
وﺟﻮد إﺣﺘﻤﺎل اﺳﺘﺨﺪام ﻟﻐﺎت ﻋﺪﯾﺪة ﻓﻲ اﻟﻤﺴﺘﻘﺒﻞ ،ﯾﻔﻀﻞ اﺳﺘﺨﺪام Character Setﻗﺎدر ﻋﻠﻰ اﺳﺘﯿﻌﺎب ﻟﻐﺎت
ﻋﺪة.
165
أﯾﻀﺎً ﯾﺠﺐ اﻷﺧﺬ ﺑﺎﻹﻋﺘﺒﺎر ﻧﻮﻋﯿﺔ ال Character Setاﻟﻤﺘﻮﻓﺮة ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ " Operating
"Systemاذ أن اﻹﺧﺘﻼف ﺑﯿﻦ اﻟﻨﻈﺎﻣﯿﯿﻦ ﯾﺆدي اﻟﻰ ﻋﻤﻠﯿﺔ ﺗﺤﻮﯾﻞ ﯾﻘﻮم ﺑﮭﻞ اﻷوراﻛﻞ ﻣﻤﺎ ﻗﻲ ﯾﺆدي اﻟﻰ ﺣﺪوث
ﻋﺒﺊ وﺿﻐﻂ ﻣﻦ ﺟﺮاء ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﯾﻞ ،ﻣﻤﺎ ﻗﺪ ﯾﺆدي اﻟﻰ ﺿﯿﺎع ﺑﯿﺎﻧﺎت.
ﯾﻌﺘﺒﺮ اﺳﺘﺨﺪام Single-Byteأﻓﻀﻞ ﻣﻦ اﻟﻨﺎﺣﯿﺔ اﻟﻔﻨﯿﺔ واﻷداء ﻋﻦ اﺳﺘﺨﺪام Varying-Widthوﻟﻜﻦ
إﻣﻜﺎﻧﯿﺎت ال Single-Byteﻓﻲ ﺗﻌﺪد اﻟﻠﻐﺎت ﻣﺤﺪودة ﺟﺪاً.
ﯾﻮﻓﺮ اﻷوراﻛﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻮاﻣﻞ ﯾﻄﻠﻖ ﻋﻠﯿﮭﺎ اﺳﻢ ) National Language Support (NLSﺗﺴﺎﻋﺪ
ﻋﻠﻰ ﺗﺤﺪﯾﺪ أﻣﻮر ﻣﺨﺘﻠﻔﺔ ﻋﺎﻟﻤﯿﺎً ﻣﺜﻞ ﻃﺮﯾﻘﺔ ﺣﻔﻆ وﻋﺮض اﻟﺘﺎرﯾﺦ واﻟﺘﻮﻗﯿﺖ ،اﻟﺮﻣﺰ اﻟﻤﺴﺘﺨﺪم ﻟﻠﻌﻤﻠﺔ اﻟﻤﺤﻠﯿﺔ،
اﻟﯿﻮم اﻷول ﻓﻲ اﻷﺳﺒﻮع )اﻟﺴﺒﺖ ﻋﻨﺪ اﻟﻤﺴﻠﻤﯿﻦ واﻻﺛﻨﯿﻦ ﻋﻨﺪ اﻟﻐﺮب( وﻏﯿﺮھﺎ ﻣﻦ اﻷﻣﻮر.
166
:NLS Parameters
:NLS_TERRITORYﯾﺴﺘﺨﺪم ﻓﻲ ﺗﺤﺪﯾﺪ ﻃﺮﯾﻘﺔ ﻋﺮض اﻟﺘﺎرﯾﺦ ،واﺧﺘﯿﺎر رﻣﺰ ﻟﻠﻌﻤﻠﺔ اﻟﻤﺤﻠﯿﺔ ، ·
ﺗﺤﺪﯾﺪ أول ﯾﻮم ﻓﻲ اﻷﺳﺒﻮع وﺗﺤﺪﯾﺪ ﻗﯿﻢ ﺗﻌﺮف ﺑﺎﺳﻢ ﻗﯿﻢ ال .ISO
.NLS_LANG ·
:NLS_LANG Parameter
ﯾﻤﻜﻦ اﺳﺘﺨﺪام ﻗﯿﻢ ﻣﺨﺘﻠﻔﺔ ﻟﻜﻞ ﻣﺴﺘﺨﺪم ﺑﺎﺳﺘﺨﺪام ال NLS_LANGوﯾﺘﻢ ﺗﺤﺪﯾﺪھﺎ ﻓﻘﻂ ﻋﺒﺮ اﺳﺘﺨﺪام ال
.Environment Variablesﺗﺘﻜﻮن ﻣﻦ ﺛﻼﺛﺔ اﻗﺴﺎم ھﻲ Languageو Territoryو Character
،Setﻣﻌﺮﻓﺔ ﺑﺎﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﯿﺔ:
NLS_LANG = Langugae_Territory.Charset
167
:ﻓﻲ اﻟﻘﺎﻋﺪة
داﺧﻞNLS Parameters " اﺳﺘﺨﺪﻣﺖ الIntroduction to SQL" ﺧﻼل دراﺳﺘﻚ ﻟﻺﻣﺘﺤﺎن اﻷول
.10.1 وﻟﻠﺘﺬﻛﯿﺮ راﺟﻊ اﻟﻤﺜﺎل، TO_CHAR ﻋﻤﻠﯿﺎت ﻣﺘﻌﺪدة ﻣﺜﻞ ﺟﻤﻠﺔ
NLS_DATE_LANGUAGE ·
NLS_NUMERIC_CHARACTERS ·
NLS_CURRENCY ·
NLS_ISO_CURRENCY ·
NLS_CALENDAR ·
NLS_DATE_LANGUAGE ·
NLS_CALENDAR ·
NLS_NUMERIC_CHARACTERS ·
NLS_CURRENCY ·
NLS_ISO_CURRENCY ·
168
:QUERYING INFORMATION
169