Orcale Tutorial Content
Getting Started - البدء مع إدارة قواعد البيانات
Oracle Architectural Components - مكونات قاعدة البيانات أوركل
Installing Oracle Database - تثبيت الأوركل
Creating and Configuring Database - إنشاء قاعدة البيانات
Controlling The Database -التحكم في قاعدة البيانات
Administrating Users - إدارة المستخدمين
Database Security & Monitoring - تأمين ومراقبة قاعدة البيانات
Oracle Net Services & Database Link & Metrlized Viewِ
Undo Management & Flashback Technology
Managing Shared Servers
Using Globalization Support
Logical Backup & Recovery
Physical Backup & Recovery
Recovery Manager (RMAN)
Managing Resources
Automating Tasks with the Scheduler
Dealing with Locking
Diagnostic Sources
Dealing With Database Corruption
Managing & Monitoring Memory
Performance Tunning
Undo Management & Flashback Technology
Flashback Table
ﻭﻴﺴﻤﻰ ﺃﻴﻀﺎ Flashback Table Query ﻭﺍﺴﺘﺤﺩﺙ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻓﻲ ﺍﻹﺼﺩﺍﺭ Oracle 10g ﻭﻴﻌﺘﻤﺩ ﺃﺴﺎﺴﺎ ﻋﻠﻰ ﺍلTablespace Undo،
ﻭﻫﻭ ﺍﻟﺭﺠﻭﻉ ﺒﺎﻟﺠﺩﻭل ﺇﻟﻰ ﻓﺘﺭﺓ ﺯﻤﻨﻴﺔ ﻓﻲ ﺍﻟﻤﺎﻀﻲ ﻤﺴﺘﻔﻴﺩﺍ ﻤﻥ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ Segments Undo،
ﻓﻘﺩ ﺘﻜﻭﻥ ﺠﺭﺕ ﻋﻠﻰ ﺍﻟﺠﺩﻭل ﻋﺩﺩ ﻤﻥ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺴﻨﺠﺩﻫﺎ ﻓﻲ ﺍل Undo Tablespace، ﺒﺎﻟﻁﺒﻊ ﻗﺩ ﺘﻔﺸل ﻋﻤﻠﻴﺔ ﺍلFlashback Table ﺇﺫﺍ ﻟﻡ ﺘﺠﺩ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ
ﺍﻟﻤﻁﻠﻭﺒﺔ ﻓﻲ ﺍلUndo Tablespace ﻨﺘﻴﺠﺔ ﻻﻨﺘﻬﺎﺀ ﻓﺘﺭﺓ ﺍﻻﺤﺘﻔﺎﻅ ﺒﺎﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻤﺜﻼﹰ.
ﻭﺍﻟﻴﻙ ﺍﻵﻥ ﺍﻟﺴﻴﻨﺎﺭﻴﻭ ﺍﻟﺘﺎﻟﻲ: ﻟﻨﻔﺘﺭﺽ ﺃﻥ ﻟﺩﻴﻨﺎ ﺠﺩﻭﻻﻥ ﺍﻷﻭل ﻴﺴﻤﻰ DEPT ﻭﻫﻭ ﺠﺩﻭل ﺍﻹﺩﺍﺭﺍﺕ ﻭﺍﻟﺜﺎﻨﻲ ﻴﺴﻤﻰ EMP ﻭﻫﻭ ﺠﺩﻭل ﺍﻟﻤﻭﻅﻔﻴﻥ .
ﻟﻨﻀﻑ ﺇﺩﺍﺭﺓ ﺠﺩﻴﺩ ﻓﻲ ﺠﺩﻭل ﺍﻹﺩﺍﺭﺍﺕ DEPT .
INSERT INTO DEPT VALUES(3,'FINANCE'); |
ﻭﻨﻘﻭﻡ ﺒﺈﻀﺎﻓﺔ ﻤﻭﻅﻑ ﺠﺩﻴﺩ ﻓﻲ ﺠﺩﻭل ﺍﻟﻤﻭﻅﻔﻴﻥ EMP ﺒﺤﻴﺙ ﻴﻨﺘﻤﻲ ﺍﻟﻤﻭﻅﻑ ﺍﻟﺠﺩﻴﺩ لﻟﻺﺩﺍﺭﺓ ﺍﻟﺠﺩﻴﺩﺓ .
INSERT INTO EMP VALUES(3,'KHALED'3); |
ﻟﻨﻘﻭﻡ ﺒﻌﺭﺽ ﺍﻟﺯﻤﻥ ﺍﻵﻥ .
SELECT SYSDATE FROM DUAL; |
ﺍﻻﻥ ﻨﻘﻭﻡ ﺒﺤﺫﻑ ﺍﻟﺤﻘﻠﻴﻥ ﺍﻟﺫﹰًﻴﻥ ﺍﻀﻔﻨﺎﻫﻤﺎ ﻟﻠﺠﺩﻭﻟﻴﻥ.
DELETE EMP WHERE EMP_NO=3; DELETE DEPT WHERE DEPT NO=3; |
ﺍﻵﻥ ﻟﻨﻘﻭﻡ ﺒﻌﻤل Flashback Table ﻟﻠﺠﺩﻭل EMP ﺇﻟﻰ ﻤﺎ ﻗﺒل ﺤﺫﻑ ﺍﻟﺤﻘل 3=EMP_NO .
FLASHBACK TABLE EMP TO TIMESTAMP TO_TIMESTAMP('13-06-2023:00-00-00','DD-MM- YYYY:HH24-MI-SS'); |
قد تﻓﺸﻠ ﻋﻤﻠﻴﺔ ﺍﻻﺴﺘﺭﺠﺎﻉ Flashback Table ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻨﺤﺘﺎﺝ ﻟﻌﻤل Enable Row Movement ،
ﻭﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ Flag ﻴﺘﻡ ﻭﻀﻌﻪ ﻓﻲ ﺍلData Dictionary ﻴﻭﻀﺢ ﻟﻼﻭﺭﻜل ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﻌﺩﻴل .
ALTER TABLE EMP ENABLE ROW MOVEMENT; |
ﻗﻤﻨﺎ ﺒﻌﻤل Enable Row Movement ﻟﻠﺠﺩﻭل EMP، ﻓﻠﻨﺤﺎﻭل ﺍﻵﻥ ﻋﻤل Table Flashback ﻟﻠﺠﺩﻭل EMP ﻤﺭﻩ ﺃﺨﺭﻯ.
قد تظهر ﺭﺴﺎﻟﺔ ﺨﻁﺄ ﺃﺨﺭﻯ، في حال ﺘﻡ ﺍﻨﺘﻬﺎﻙ ﺍﻟﻘﻴﺩ Constraint Key Foreign ﺇﺫ ﻻ ﻴﻤﻜﻥ ﺇﻋﺎﺩﺓ ﺍﻟﻤﻭﻅﻑ ﺭﻗﻡ ٣ ﺇﻟﻰ ﺍﻟﺠﺩﻭل EMP ﻭﻫﻭ ﻴﻨﺘﻤﻲ ﻹﺩﺍﺭﺓ ﺘﻡ ﺤﺫﻓﻬﺎ،
ﻓﻬﻭ ﻴﻨﺘﻤﻲ ﻟﻺﺩﺍﺭﺓ ﺭﻗﻡ ٣ ﻗﺩ ﺘﻡ ﺤﺫﻓﻬﺎ ، ﻓﻤﺎ ﺍﻟﺤل ﺇﺫﺍﹰ؟
ﺍﻟﺤل ﺃﻥ ﻨﻘﻭﻡ ﺒﻌﻤل Flashback Table ﻟﻜﻼ ﺍﻟﺠﺩﻭﻟﻴﻥ DEPT & EMP .
ﻟﻜﻥ ﻻ ﺘﻨﺴﻰ ﺃﻥ ﺘﻘﻭﻡ ﺒﻌﻤل Enable Row Movement ﻟﻠﺠﺩﻭل DEPT .
FLASHBACK TABLE EMP TO TIMESTAMP TO_TIMESTAMP('13-06-2023:00-00-00','DD-MM- YYYY:HH24-MI-SS'); |
ﻟﻘﺩ ﺘﻤﺕ ﻋﻤﻠﻴﺔ ﺍلFlashback Tables ﺒﻨﺠﺎﺡ ﻭﻟﻴﺱ ﻀﺭﻭﺭﻴﺎﹰ ﺃﻥ ﻨﻘﻭﻡ ﺒﺘﺭﺘﻴﺏ ﺍﻟﺠﺩﻭل ﻓﻲ ﻋﺒﺎﺭﺓ ﺍلFlashback ﻭﺫﻟﻙ ﻷﻥ ﺍﻟﻘﻴﻭﺩ Constraint ﻴﺘﻡ ﺍﻟﺘﺄﻜﺩ ﻤﻨﻬﺎ ﺒﻌﺩ ﻨﻬﺎﻴﺔ ﺍﻟﻌﻤﻠﻴﺔ Transaction .
ﻤﻼﺤﻅﺔ : ﻟﻭ ﻓﺸﻠﺕ ﻤﺤﺎﻭﻟﺔ ﺍﺴﺘﺭﺠﺎﻉ ﺠﺩﻭل Flashback Table ﻓﻲ ﺃﻱ ﻋﻤﻠﻴﺔ ﻓﺈﻥ ﺍﻟﻌﻤﻠﻴﺔ
ﺘﺘﻭﻗﻑ ﻭﻤﻥ ﺜﻡ ﻴﺘﻡ ﺍﻟﺘﺭﺍﺠﻊ ROLLBACK ﻋﻥ ﺍﻟﻌﻤﻠﻴﺔ ﻜﻠﻬﺎ، ﺃﻱ ﻟﻭ ﻨﺠﺤﺕ ﻋﻤﻠﻴﺔ ﺍﺴﺘﺭﺠﺎﻉ ﺍﻟﺠﺩﻭل DEPT ﻓﻲ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺴﺎﺒﻘﺔ ﻭﻟﻜﻥ ﻓﺸﻠﺕ ﻋﻤﻠﻴﺔ ﺍﺴﺘﺭﺠﺎﻉ ﺍﻟﺠﺩﻭل EMP ﻓﺈﻥ ﺍﻟﻌﻤﻠﻴﺔ ﺒﺭﻤﺘﻬﺎ ﺴﺘﻔﺸل
ﻭﻴﺘﻡ ﺍﻟﺘﺭﺍﺠﻊ ﻋﻥ ﺍﻟﻌﻤﻠﻴﺔ ﻜﻠﻬﺎ .
ﻜﻤﺎ ﻻﺤﻅﺕ ﻋﻤﻠﻴﺔ ﺍلFlashback Table ﻟﻴﺴﺕ ﻤﻀﻤﻭﻨﺔ ﺍﻟﻨﺠﺎﺡ، ﻓﻘﺩ ﺘﻔﺸل ﻷﺤﺩ ﺍﻷﺴﺒﺎﺏ ﺍﻟﺘﺎﻟﻴﺔ:-
1- ﺇﺫﺍ ﺘﻡ ﺍﻨﺘﻬﺎﻙ ﺍﺤﺩ ﺍﻟﻘﻴﻭﺩ Constraint Violated .
2- ﺇﺫﺍ ﻟﻡ ﻴﺘﻡ ﻋﻤل Enable Row Movement ﻟﻠﺠﺩﻭل ﺍﻟﻤﻁﻠﻭﺏ ﺍﺴﺘﺭﺠﺎﻋﻪ .
3- ﺇﺫﺍ ﻟﻡ ﺘﺘﻭﻓﺭ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻓﻲ ﺍلUndo Tablespace ،
no snapshot found based on specified time” ORA-08180
4- ﻻ ﻴﻤﻜﻥ ﻋﻤل Flashback Table ﻟﺠﺩﻭل ﻓﻲ Sys Schema .
-----------------------------------