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 Database
ﻫل ﻓﻜﺭﺕ ﻴﻭﻤﺎﹰ ﻤﺎﺫﺍ ﺘﻔﻌل ﻟﻭ ﻗﻤﺕ ﺒﺤﺫﻑ ﻤﺴﺘﺨﺩﻡﹴ ﻤﺎ ﺨﻁﺄً؟ ﺍﻟﺠﻭﺍﺏ ﻭﺒﻜل ﺒﺴﺎﻁﺔ ﺃﻗﻭﻡ ﺒﻌﻤل ﺍﺴﺘﺭﺠﺎﻉ ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ Recovery ﻤﻥ ﺍﻟﻨﺴﺦ ﺍﻻﺤﺘﻴﺎﻁﻲ Backup
ﻫﺫﺍ ﺍﻟﺤل ﺼﺤﻴﺢ ﻭﻟﻜﻥ ﻤﻜﻠﻑ ﻤﻥ ﺤﻴﺙ ﺍﻟﺯﻤﻥ ﺨﺼﻭﺼﺎﹰ ﺇﺫﺍ ﻜﺎﻨﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﺒﻴﺭﺓ، ﻓﺎﺴﺘﺭﺠﺎﻉ ﺃﺤﺠﺎﻡ ﻜﺒﻴﺭﺓ ﻤﻥ ﺍﻟﻤﻠﻔﺎﺕ ﻻ ﺒﺩ ﺃﻨﻪ ﻤﻜﻠﻑ ﻤﻥ ﺤﻴﺙ ﺍﻟﺯﻤﻥ.
ﻤﺎ ﺍﻟﺤل ﺇﺫﺍﹰ؟ ﺍﻟﺤل ﻫﻭ Flashback Database.
ﺍلFlashback Database ﻫﻲ ﺇﺭﺠﺎﻉ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﻨﻘﻁﺔ ﺯﻤﻨﻴﺔ ﻤﻌﻴﻨﺔ ﻓﻲ ﺍﻟﻤﺎﻀﻲ، ﺒﺤﻴﺙ ﺠﻤﻴﻊ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺍﻟﺘﻲ ﺤﺩﺜﺕ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺘﻠﻙ ﺍﻟﻨﻘﻁﺔ ﺇﻟﻰ ﺍﻵﻥ ﻜﺄﻥ ﻟﻡ ﺘﻜﻥ.
ﻨﺴﺘﻔﻴﺩ ﻤﻥ ﺍلFlashback Database ﻓﻲ ﺤﺎﻟﺔ ﺤﺩﻭﺙ ﺃﺨﻁﺎﺀ ﻤﻨﻁﻘﻴﺔ، ﻜﺄﻥ ﻴﺤﺫﻑ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﺴﺘﺨﺩﻡ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺨﻁﺄ ﺃﻭ ﻋﻤل Truncate Table ، ﺃﻤﺎ ﺍﻷﺨﻁﺎﺀ ﺍﻟﻔﻴﺯﻴﺎﺌﻴﺔ ﻜﺄﻥ
ﻨﻔﻘﺩ Data File ﺃﻭ ﻏﻴﺭﻩ ﻤﻥ ﺍﻟﻤﻠﻔﺎﺕ ﻓﻼ ﻨﺴﺘﻁﻴﻊ ﺍﻻﺴﺘﻔﺎﺩﺓ ﻤﻥ ﺍلFlashback Database ﻭﻜل ﻤﺎ ﻨﺴﺘﻁﻴﻌﻪ ﻫﻭ ﻋﻤل ﺍﺴﺘﺭﺠﺎﻉ ﻟﻠﻤﻠﻔﺎﺕ ﻤﻥ ﺍﻟﻨﺴﺦ ﺍﻻﺤﺘﻴﺎﻁﻲ ﺒﺎﻟﻁﺭﻴﻘﺔ ﺍﻟﺘﻘﻠﻴﺩﻴﺔ.
ﻋﻤﻠﻴﺔ ﺍلFlashback Database ﻫﻲ ﻋﻤﻠﻴﺔ ﺴﺭﻴﻌﺔ ﺠﺩﺍﹰ ﻟﻠﺭﺠﻭﻉ ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻔﺘﺭﺓ ﺯﻤﻨﻴﺔ ﻓﻲ ﺍﻟﻤﺎﻀﻲ ﻤﻘﺎﺭﻨﺔ ﺒﻌﻤﻠﻴﺔ ﺍﻻﺴﺘﺭﺠﺎﻉ ﻤﻥ ﻤﻠﻔﺎﺕ ﺍﻟﻨﺴﺦ ﺍﻻﺤﺘﻴﺎﻁﻲ ﺒﺎﻟﻁﺭﻴﻘﺔ ﺍﻟﺘﻘﻠﻴﺩﻴﺔ
ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻻ ﻨﺤﺘﺎﺝ ﺇﺭﺠﺎﻉ ﻤﻠﻔﺎﺕ ﺍﻟﻨﺴﺦ ﺍﻻﺤﺘﻴﺎﻁﻲ ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ. ﻟﺤﻅﺔ ﻋﻤل Enable Flashback Database ﻴﺘﻡ ﺇﻨﺸﺎﺀ Background Process ﻴﺴﻤﻰ (Recovery Writer (RVWR
ﻭﻴﺘﻡ ﺘﺨﺼﻴﺹ ﺠﺯﺀ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ SGA ﻴﺴﻤﻰ Flashback Buffer ﻭﻴﺘﻡ ﺘﺨﺼﻴﺹ ﺠﺯﺀ ﻤﻥ ﺍﻟﺩﻴﺴﻙ ﻟلFlashback logs ﻭﻫﺫﺍ ﺍﻟﺠﺯﺀ ﻫﻭ ﺩﺍﺌﻤﺎﹰ ﻓﻲ ﺍلFlash Recovery Area.
ﻴﻜﻭﻥ ﺍﻟﺴﻴﻨﺎﺭﻴﻭ ﺒﺤﻴﺙ ﻴﺘﻡ ﺇﺭﺴﺎل ﻜل Block ﺘﻡ ﺘﻌﺩﻴﻠﻪ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﺍلFlash Buffer ﺒﻌﺩ ﺫﻟﻙ ﻴﻘﻭﻡ ﺍلRVWR ﺒﻭﻀﻊ ﻫﺫﻩ ﺍلBlocks ﻤﻥ ﺍلFlashback Buffer ﺇﻟﻰ ﺍلFlashback Logs .
ﻫﺫﺍ ﺍﻟﺴﻴﻨﺎﺭﻴﻭ ﻴﺸﺒﻪ ﺇﻟﻰ ﺤﺩ ﻜﺒﻴﺭ ﺴﻴﻨﺎﺭﻴﻭ ﺍلRedo Log Buffer ﻭﺍلRedo Log Files ﻭﻟﻜﻥ ﺍﻻﺨﺘﻼﻑ ﻓﻲ ﺃﻨﻪ ﻟﻴﺱ ﻜل ﺍﻟﺘﻌﺩﻴﻼﺕ ﺘﻜﺘﺏ ﻓﻲ ﺍلFlashback Buffer ﻜﻤﺎ ﻴﺤﺩﺙ ﻓﻲ ﺍلRedo Log Buffer
ﻭﺇﻨﻤﺎ Complete Block Images ، ﻜﺫﻟﻙ ﺍلFlashback Loges ﻻ ﺘﺘﻡ ﺃﺭﺸﻔﺘﻪ ﻜﻤﺎ ﻴﺤﺩﺙ ﻟلRedo Log Files .
ﻜﻤﺎ ﺫﻜﺭﺕ ﺃﻨﻪ ﻟﻴﺴﺕ ﻜل ﺍﻟﺘﻌﺩﻴﻼﺕ ﺘﻜﺘﺏ ﻓﻲ ﺍلFlashback Buffer ﻭﺇﻨﻤﺎ Complete Block Images، ﻟﺫﺍ ﻓﺈﻥ ﻫﻨﺎﻙ ﻜﺜﻴﺭ ﻤﻥ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺘﺤﺩﺙ ﻭﻻ ﻴﺘﻡ ﻜﺘﺎﺒﺘﻬﺎ ﻤﺒﺎﺸﺭﺓ ﻓﻲ ﺍلFlashback Buffer .
ﻭﺇﻨﻤﺎ ﻴﺘﻡ ﺘﺄﺨﻴﺭﻫﺎ ﻭﺭﺒﻤﺎ ﺘﺤﺩﺜﺕ ﺘﻌﺩﻴﻼﺕ ﺃﺨﺭﻯ ﻗﺒل ﺃﻥ ﺘﻜﺘﺏ ﻓﻲ ﺍلFlashback Buffer، ﻤﺎ ﺃﺭﻤﻰ ﺇﻟﻴﻪ ﺃﻨﻪ ﻗﺩ ﻴﺘﻡ ﻜﺘﺎﺒﺔ Complete Block ﻭﻫﻭ ﻴﺤﻭﻯ ﻤﺠﻤﻭﻋﺔ ﻤﺨﺘﻠﻔﺔ ﻤﻥ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺤﺩﺜﺕ
ﻓﻰ ﺃﺯﻤﻨﺔ ﻤﺨﺘﻠﻔﺔ، ﻟﺫﺍ ﻋﻤﻠﻴﺔ ﺍلFlashback Database ﻟﻭﻗﺕ ﻤﻀﺒﻭﻁ ﻫﻲ ﻤﻥ ﺍﻟﺼﻌﻭﺒﺔ ﺒﻤﻜﺎﻥ، ﻟﺫﺍ ﻓﺈﻥ ﺍل Flashback Database ﻴﺤﺘﺎﺝ ﻷﻥ ﺘﻜﻭﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻨﻤﻁ Archive Log Mode
ﻭﺫﻟﻙ ﻷﻥ ﺍﻷﺭﺸﻴﻑ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺠﻤﻴﻊ ﺘﻔﺎﺼﻴل ﺍﻟﺘﻌﺩﻴﻼﺕ ﺍﻟﺘﻲ ﺤﺩﺜﺕ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﺨﻼﻑ Logs Flashback، ﺇﺫﺍﹰ
ﺍلFlashback Logs ﻤﻊ ﺍلArchive Logs ﻴﺴﺘﻁﻴﻌﺎﻥ ﺃﻥ ﻴﻨﺠﺤﺎ ﻋﻤﻠﻴﺔ ﺍلFlashback Database .
ﻟﺘﻬﻴﺌﺔ ﺍلDatabase Flashback ﻨﺘﺒﻊ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻵﺘﻴﺔ:-
١ - ﺍﻟﺘﺄﻜﺩ ﻤﻥ ﺃﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﻌﻤل ﻓﻲ ﺍﻟﻨﻤﻁ Archive log mode.
ﺘﺤﺩﺜﻨﺎ ﻓﻲ ﻓﺼﻭل ﺴﺎﺒﻘﺔ ﻋﻠﻰ ﺃﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﻌﻤل ﻋﻠﻰ ﺍﻷﻗل ﻋﻠﻰ ﺍﺜﻨﻴﻥ ﻤﻥ Redo Log Files ﻭﻫﻰ ﻤﻠﻔﺎﺕ ﺘﺤﻭﻯ ﻋﻠﻰ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺍﻟﺘﻲ ﺘﻤﺕ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻭﺃﻥ LGWR Background Process ﻴﻘﻭﻡ ﺒﻜﺘﺎﺒﺔ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍل Log Redo Buffer ﻭﻴﻀﻌﻬﺎ ﻓﻲ ﺍلRedo Log Files، ﻭﺘﻜﻭﻥ ﻋﻤﻠﻴﺔ ﺍﻟﻜﺘﺎﺒﺔ ﺒﺸﻜل ﺩﻭﺭﻱ
ﺒﻴﻥ ﺍلRedo Logs ﻭﻴﺘﻡ ﺇﻋﺎﺩﺓ ﺍﻟﻜﺘﺎﺒﺔ ﻓﻲ ﺍلRedo Logs، ﻤﻤﺎ ﻴﺅﺩﻯ ﻟﻔﻘﺩﺍﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻴﻪ ﻟﺫﺍ ﻜﺎﻥ ﺍﻟﺤل ﻫﻭ ﺘﺸﻐﻴل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻨﻤﻁ Archive Log Mode
ﺒﺤﻴﺙ ﻴﺘﻡ ﺇﻨﺸﺎﺀ Background Process ﺠﺩﻴﺩ ﻴﺴﻤﻰ ARCn ﻴﻘﻭﻡ ﺒﻌﻤل ﻨﺴﺦ ﻟﻤﻠﻔﺎﺕ ﺍلRedo Log Files ﺒﺤﻴﺙ ﻻ ﻨﻔﻘﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﻫﺫﻩ ﺍﻟﻤﻠﻔﺎﺕ ﻭﺍﻟﺘﻲ ﻨﻌﺘﻤﺩ ﻋﻠﻴﻬﺎ
ﻓﻲ ﻋﻤﻠﻴﺔ ﺍﻻﺴﺘﺭﺠﺎﻉ Recovery, ﻭﺍﻟﺘﻲ ﺒﺩﻭﻨﻬﺎ ﺘﻔﺸل ﻋﻤﻠﻴﺔ ﺍلRecovery.
ﻟﻤﻌﺭﻓﺔ ﻫل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﻌﻤل ﻓﻲ ﺍﻟﻭﻀﻊ Archive Log Mode ﺃﻡ ﻻ؟
SELECT LOG_MODE FROM V$DATABASE; |
ﻟﺘﻬﻴﺌﺔ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ Archive Log ﻨﻘﻭﻡ ﺒﺎﻟﺨﻁﻭﺍﺕ ﺍﻵﺘﻴﺔ:
ﺃ- ﺘﺤﺩﻴﺩ ﺍﻟﻤﻜﺎﻥ ﺍﻟﺫﻱ ﺴﻭﻑ ﻨﻀﻊ ﻓﻴﻪ ﺍﻷﺭﺸﻴﻑ ﺒﻭﺍﺴﻁﺔ ﺍﻟﻤﺘﻐﻴﺭ LOG_ARCHIVE_DEST ﻤﻊ ﻤﺭﺍﻋﺎﺓ ﺃﻨﻪ ﻴﻤﻜﻥ ﺘﺤﺩﻴﺩ ﺘﺠﺎﻫﺎﺕ ﻤﺨﺘﻠﻔﺔ ﻭﺫﻟﻙ ﺒﻭﺍﺴﻁﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ LOG_ARCHIVE_DEST_n
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=D:\ARCHIVE\’ SCOPE=SPFILE; |
ﻜﻤﺎ ﺫﻜﺭﺕ ﺴﺎﺒﻘﺎﹰ ﻴﻤﻜﻥ ﺘﺤﺩﻴﺩ ﺍﺘﺠﺎﻫﺎﺕ ﺃﺨﺭﻯ ﻟﻸﺭﺸﻴﻑ، ﻜﻤﺎ ﻴﻤﻜﻥ ﺘﻬﻴﺌﺔ ﻤﺘﻐﻴﺭﺍﺕ ﺃﺨﺭﻯ ﻟﻜﻨﻬﺎ ﻏﻴﺭ ﻀﺭﻭﺭﻴﺔ ﻤﺜﻼﹰ LOG_ARCHIVE_FORMAT ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﺤﺩﻴﺩ ﺍﻟﻔﻭﺭﻤﺎﺕ ﺍﻟﺘﻲ ﻴﺨﺭﺝ ﺒﻬﺎ ﻤﻠﻑ
اﻷﺭﺸﻴﻑ.
ﺏ- ﻨﻐﻠﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻨﻔﺘﺤﻬﺎ ﻓﻲ ﺍﻟﻭﻀﻊ Mount، ﺜﻡ ﻨﻨﻔﺫ ﺍﻷﻤﺭ ALTER DATABASE ARCHIVELOG.
ALTER DATABASE ARCHIVELOG; |
ﺍﻵﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﻌﻤل ﻓﻲ ﺍﻟﻨﻤﻁ ARCHIVELOG MODE .
ﻴﻤﻜﻥ ﺍﻻﺴﺘﻌﻼﻡ ﺃﻴﻀﺎﹰ ﻋﻥ ﻋﻤل MODE ARCHIVELOG ﺒﻭﺍﺴﻁﺔ:
SELECT ARCHIVER FROM V$INSTANCE; |
ﻟﺤﻅﺔ ﻋﻤل SWITCH LOGFILE ﻴﺘﻡ ﻋﻤل ﻨﺴﺦ ﻟﻤﻠﻑ ﺍلREDO LOG FILE ﻟﻸﺭﺸﻴﻑ.
ALTER SYSTEM SWITCH LOGFILE; |
ﻜﻤﺎ ﻴﻤﻜﻥ ﺍﻻﺴﺘﻌﻼﻡ ﻋﻥ ﻤﻠﻔﺎﺕ ﺍﻷﺭﺸﻴﻑ
SELECT NAME FROM V$ARCHIVED_LOG; |
2- :تهيئة الFlash Recovery Area:
ﺫﻜﺭﺕ ﺴﺎﺒﻘﺎﹰ ﺃﻥ ﺍلFlashback Logs ﻻ ﺘﺘﻡ ﺇﺩﺍﺭﺘﻪ ﺇﻻ ﻓﻲ ﺍلFlash Recovery Area ﻭﻫﻰ ﻤﻜﺎﻥ ﻴﺘﻡ ﺘﺨﺼﻴﺼﻪ ﺒﻭﺍﺴﻁﺔ ﺍﻟﻤﺘﻐﻴﺭ DB_RECOVERY_FILE_DEST ﻭﻴﺘﻡ ﺘﺤﺩﻴﺩ ﻤﺴﺎﺤﺔ ﻫﺫﺍ ﺍﻟﻤﻜﺎﻥ ﺍﻟﻤﺨﺼﺹ
ﺒﻭﺍﺴﻁﺔ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ DB_RECOVERY_FILE_DEST_SIZE، ﺇﺫﺍﹰ ﻟﺘﻬﻴﺌﺔ ﺍل Flash Area Recovery ﻴﻠﺯﻤﻨﺎ ﺘﻬﻴﺌﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﻥ( DB_RECOVERY_FILE_DEST_SIZE & DB_RECOVERY_FILE_DEST) .
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST=’D:\ORACLE\PRODUCT\10.1.0\ FLASH_RECOVERY_AREA; |
ﻟﻘﺩ ﻗﻤﻨﺎ ﺒﺘﻬﻴﺌﺔ ﺍلFlash Recovery Area ﻭﻴﻤﻜﻨﻨﺎ ﺍﻟﺘﺄﻜﺩ ﻤﻥ ﺫﻟﻙ ﻤﻥ ﺨﻼل ﺍﺴﺘﻌﺭﺍﺽ ﺍﻟﻤﺘﻐﻴﺭﺍﻥ
(DB_RECOVERY_FILE_DEST & DB_RECOVERY_FILE_DEST_SIZE).
SHOW PARAMETER DB_RECOVERY_FILE_DEST; |
3 - ﺘﺤﺩﻴﺩ ﻓﺘﺭﺓ ﺍﻻﺤﺘﻔﺎﻅ ﺒﺎلFlashback Log:
ﻭﺫﻟﻙ ﻗﺒل ﺃﻥ ﻴﺘﻡ ﺍﺴﺘﺨﺩﺍﻤﻪ ﻭﺇﻋﺎﺩﺓ ﺍﻟﻜﺘﺎﺒﺔ ﻓﻴﻪ ﻤﺭﺓ ﺃﺨﺭﻯ ﻭﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺫﻟﻙ ﺒﻭﺍﺴﻁﺔ ﺍﻟﻤﺘﻐﻴﺭ DB_FLASHBACK_RETENTION_TARGET ﻭﻫﻭ ﺯﻤﻥ ﺍﻻﺤﺘﻔﺎﻅ ﺒﺎﻟﺩﻗﺎﺌﻕ والقيمة الإفتراضية
هي أن يتم الإحتفاظ لمدة يوم .
ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=1440; |
٤ - ﺇﻏﻼﻕ ﻭﻓﺘﺢ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ Mount:
وﻤﻥ ﺜﻡ ﺘﻬﻴﺌﺔ ﺍلFlashback ﺒﻭﺍﺴﻁﺔ ﺍﻷﻤﺭ ALTER DATABASE FLASHBACK ON
ALTER DATABASE FLASHBACK ON; |
ﻫﻜﺫﺍ ﺍﻨﺘﻬﻴﻨﺎ ﻤﻥ ﺘﻬﻴﺌﺔ ﺍلFlashback.
ﻟﻠﺘﺄﻜﺩ ﻤﻥ ﺘﻬﻴﺌﺔ ﺍلFlashback ﻨﻘﻭﻡ ﺒﻌﻤل ﺍﻻﺴﺘﻌﻼﻡ ﺍﻻﺘﻰ:
SELECT FLASHBACK_ON FROM V$DATABASE; |
ﻟﻤﺭﺍﻗﺒﺔ ﺍلFlashback
SELECT * FROM V$FLASHBACK_DATABASE_LOG; |
ﻟﻤﻌﺭﻓﺔ ﻜﻴﻔﻴﺔ ﺍﺴﺘﺨﺩﺍﻡ ﺍلFlashback Database ﻨﺘﺎﺒﻊ ﻤﻌﺎﹰ ﻫﺫﺍ ﺍﻟﺴﻴﻨﺎﺭﻴﻭ:
1- ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻗﺎﻡ ﺒﺤﺫﻑ ﺍﻟﻤﺴﺘﺨﺩﻡ TEST ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺨﻁﺄ.
DROP USER TEST CASCADE; |
2- ﺇﻏﻼﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻓﺘﺤﻬﺎ ﻓﻲ ﺍﻟﻭﻀﻊ Mount ﻭﻤﻥ ﺜﻡ ﻋﻤل Flashback Database ﻟﻠﺯﻤﻥ 01-06-08:12-55-54 ﻭﻫﻭ ﺍﻟﻭﻗﺕ ﻤﺎ ﻗﺒل ﺤﺫﻑ ﺍﻟﻤﺴﺘﺨﺩﻡ TEST .
FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('17-06-08:12-55-54','DD-MM-YY:HH٤٢- MI-SS'); |
3- ﻨﻔﺘﺢ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ Resetlogs .
ALTER DATABASE OPEN RESETLOGS; |
4- ﺃﺨﻴﺭﺍﹰ ﻟﻨﺘﺄﻜﺩ ﻤﻥ ﻭﺠﻭﺩ ﺍﻟﻤﺴﺘﺨﺩﻡ TEST.
SELECT USERNAME FROM DBA_USERS WHERE USERNAME='TEST'; |
ﺃﻤﺎ ﺇﺫﺍ ﻟﻡ ﻨﻜﻥ ﻨﻌﺭﻑ ﻤﺜﻼﹰ ﻭﻗﺕ ﺤﺫﻑ ﺍﻟﻤﺴﺘﺨﺩﻡ TEST ﻓﻠﻴﺱ ﻋﻨﺩﻨﺎ ﺤل ﺴﻭﺍﺀ ﺍﻟﺘﺨﻤﻴﻥ ﻭﻤﻥ ﺜﻡ ﻓﺘﺢ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ Read Only ﻭﺍﻟﺘﺄﻜﺩ ﻤﻥ ﺠﺩﻭﻯ ﺍﻻﺴﺘﺭﺠﺎﻉ ﻭﻗﺩ
ﻨﻠﺠﺄ ﻹﻏﻼﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻓﺘﺤﻬﺎ ﻤﺭﺓ ﺃﺨﺭﻯ ﻭﻤﻥ ﺜﻡ ﺇﻋﺎﺩﺓ ﺍلFlashback Database ﻟﻭﻗﺕ ﺃﺨﺭ، ﻭﻻ ﻨﻔﺘﺢ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﺒﺎﺸﺭﺓ ﻓﻲ ﺍﻟﻭﻀﻊ Resetlogs ﻷﻥ ﺍﻟﺨﻴﺎﺭ Restlogs
ﻴﻘﻭﻡ ﺒﺈﻋﺎﺩﺓ ﺘﻬﻴﺌﺔ ﺍلLog Sequence Number ﻭﻴﺒﺩﺃ ﺒﺄﺨﺫ ﺍﻟﻘﻴﻤﺔ (001) ﻤﻥ ﺠﺩﻴﺩ.
----------------------------------------