الأربعاء، 8 أبريل 2009

Case Study for Flashback

Case Study 1

يعمل أحمد في شركة بوظيفة (DBA) ويدير قاعدة بيانات بحجم 200GB , أستلم أحمد تقرير من أحد المطورين بأنه قام بالخطأ بحذف 10,000 سجل من الجدول المسمى Sales , ولا بد أن تستعاد هذه المعطيات , هنا أحمد بحاجة لاستعادة المعطيات بسرعة من دون فقدان أي معطيات , خذ بعين الاعتبار أن undo information متوفرة

أي من الطرق التالية هي الأفضل لاستعادة المعطيات المحذوفة والتي تحقق متطلبات الاستعادة ؟

1- استعادة قاعدة المعطيات كاملة Restore the entire database .

2- import utility (Use the Import utility).

3- Oracle Flashback Query .

4- Oracle Flashback Drop .

الطريقة الأفضل هي رقم 3 حيث أن flashback query تستخدم undo segments , والتي تزود snapshot للمعطيات في وقت معين ويمكنك من إعادة إدخال البيانات , إذا أحمد يمكن أن ينفذ الكود التالي :

INSERT INTO SALES

(SELECT * FROM

SALES AS OF TIMESTAMP

TO_TIMESTAMP(’’,

’DD-MON-YY HH24:MI:SS’) MINUS

SELECT * FROM SALES);


الطريقة رقم 1 غير صحيحة وذلك بسبب أن استعادة قاعدة البيانات كاملة تستغرق وقت أطول مقارنة مع الطريقة رقم 3 .

الطريقة رقم 2 غير صحيحة بسبب أن هناك معطيات والتي تم إدخالها بعد آخر export سوف تفقد .

الطريقة رقم 4 غير صحيحة بسبب أن flashback drop تستخدم لاستعادة جدول بشكل كامل والذي تم حذفه بتعليمة drop ولا تستعيد معطيات محددة في جدول .

Case Study 2

في الساعة 07:00 صباحا لاحظت أن هناك عملية تعديل خاطئة نفذت الساعة 2:00 مساءا (أي اليوم الأول) وعملية التعديل هذه عدلت العمود last_name لكل الموظفين إلى قيمة فارغة في الجدول EMP , وهناك العديد من المناقلات (transactions) تمت بعد هذه العملية على هذا الجدول وجداول آخري , أنت تريد أن تعيد المعطيات الأصلية للعمود last_name بحيث يكون الجدول يحوي البيانات قبل تنفيذ تعليمة التحديث الخاطئة ويجب أن تضمن التالي :

1- عدم التأثير على جدول آخر .

2- العملية يجب أن تأخذ أقل زمن ممكن من الوقت .

أي من الطرق التالية يجب أن تختار ؟

1- Oracle Flashback Drop

2- . Oracle Flashback Transaction Query along with Oracle Flashback Drop

3- Oracle Flashback Table

4- Oracle Flashback Database

الطريقة الأفضل هي رقم 3 .

الطريقة رقم 1 غير صحيحة وذلك لأن flashback drop تستخدم لاستعادة التأثيرات التي حدثت بسبب تعليمة drop .

الطريقة رقم 2 غير صحيحة وذلك لأن Oracle Flashback Transaction Query عبارة عن أداة لاستعراض التغيرات التي حدثت على قاعدة البيانات على مستوى transaction , مع أنها تمكنك من أن تنجز التحليل والتدقيق للـ transaction .

حيث أن هذه الأداة سواء كانت لوحدها أو مع Oracle Flashback Drop لا تستطيع استعادة المعطيات.

الطريقة رقم 4 غير صحيحة وذلك لان Oracle Flashback Database سوف تستعيد كامل قاعدة البيانات إلى زمن معين , وبذلك سيتم التراجع عن كل transaction التي تمت على الجداول الأخرى .




خلاصة رائعة:

Oracle Flashback Query enables the user to query data at some point in time to reconstruct lost data that may have been deleted or changed by accident.

Oracle Flashback Transaction Query provides a mechanism for viewing changes made to the database at the transaction level.

Oracle Flashback Table enables users to quickly recover a table or a set of tables (including all dependent objects and referential integrity) to a previous specified point.

Oracle Flashback Database provides a way to quickly rewind an Oracle Database instance, with a single SQL command, to a previous time to correct any problems caused by logical data corruption or user error.

ليست هناك تعليقات:

إرسال تعليق

Powered By Blogger