نشر بواسطة : Obay Salah , November 19, 2024

في الإصدارات السابقة من قاعدة بيانات أوراكلOracle Database ، في اللحظة التي تحذف فيها جدول Drop Table سيتم أيضًا إزالته من ﺍلData Dictionary، ويتطلب الأمر استرداد Recovery  لقاعدة البيانات إذا كنت تريد استرداد جدول واحد تم حذفه بالخطأ. لا شك أنه حل مكلف للغاية من حيث الوقت ومن حيث حقيقة أننا سنفقد بعض البيانات.

عند حذف جدول في الإصدارات السابقة من أوراكل، يتم تحرير المساحات التي كان مستقلاً عنها، ولكن في إصدار أوراكل 10g، لا يتم تحرير المساحات التي كان الجدول وكائناته مستقلين عنها في لحظة حذف الجدول، بل يتم وضع الجدول مؤقتًا في سلة المهملات RECYCLE BIN ويبقى الجدول مملوكًا للمستخدم حتى لو تم نقله إلى سلة المهملات، ولكن بالطبع في اللحظة التي يتم نقله فيها إلى سلة المهملات، يتم إعادة تسميته حتى لا يكون هناك تعارض في الأسماء إذا أردت إنشاء جدول آخر بنفس الاسم. هذا الوضع يمنحنا الفرصة لاسترجاع الجداول من سلة المهملات دون الحاجة إلى استرجاع قاعدة البيانات، مما يقلل من فترة الاسترجاع بالنسبة لنا وأيضًا دون فقدان أي بيانات. ببساطة، سلة المهملات (BIN RECYCLE) في قاعدة بيانات Oracle تشبه إلى حد كبير سلة المهملات في نظام التشغيل Windows.


يمكن الوصول إلى سلة المهملات (RECYCLE BIN) من خلال:

 DBA_RECYCLEBIN

USER_RECYCLEBIN

يمكنك أيضًا الاستعلام باستخدام الأمر:

SHOW RECYCLEBIN

الآن دعنا نتابع هذا السيناريو معًا: يحذف المستخدم جدول USER_MASTER، ثم نستفسر عن سلة المهملات RECYCLE BIN.

SHOW RECYCLE BIN;

ﻻﺤﻅﺕ ﻤﻌﻲ ﻜﻴﻑ ﺃﻨﻪ ﺭﻏﻡ ﺃﻨﻨﺎ ﻗﻤﻨﺎ ﺒﺤﺫﻑ ﺍﻟﺠﺩﻭل USER_MASTER ﺇﻻ ﺃﻨﻪ ﻤﺎ ﺯﺍل ﻤﻭﺠﻭﺩﺍﹰ ﻓﻲ ﺴﻠﺔ ﺍﻟﻤﻬﻤﻼﺕ ﻭﻴﻤﻜﻨﻨﺎ ﻜﺫﻟﻙ ﺍﺴﺘﺭﺠﺎﻋﻪ.


FLASHBACK TABLE USER_MASTER TO BEFORE DROP;

لقد قمنا باستعادة الجدول من سلة المحذوفات ولكن عملية الاستعادة قد تفشل إذا قمنا بإنشاء جدول بنفس الاسم قبل عملية الاستعادة حتى نتمكن من إعادة تسميته لتجنب تعارض الأسماء.


FLASHBACK TABLE USER_MASTER TO BEFORE DROP RENAME TO MASTER;


لقد قمنا باسترجاع الجدول ولكن بإسم جديد.

SELECT * FROM USER_RECYCLEBIN;

يمكن تنظيف سلة المحذوفات ومسح الجداول من سلة المحذوفات باستخدام الأمر PURGE.


PURGE TABLE MASTER;


يمكن أيضًا حذف الجدول بواسطة المستخدم دون وضعه في سلة المحذوفات، بل حذفه مباشرة من قاعدة البيانات باستخدام الأمر DROP TABLE <TABLE_NAME> PURGE.

DROP TABLE EMP PURGE;


إذا كانت الحالات التي يتم فيها حذف الجداول من قاعدة البيانات دون المرور بسلة المهملات:

1- باستخدام الأمر DROP TABLE <TABLE_NAME> PURGE

2- لحظة حذف TABLESPACE التي تحتوي على الجداول بواسطة الأمر

DROP TABLESPACE <TABLESPACE_NAME> INCLUDING CONTENTS

3- عند حذف المستخدم الذي يحتوي على الجداول بواسطة الأمر

.DROP USER <USER_NAME> CASCADE

إذا كان بإمكانك الاستعلام عن سلة المهملات عبر:

SHOW RECYCLEBIN

USER_RECYCLEBIN

DBA_RECYCLEBIN

كما ذكرت سابقا، يمكنك عموما حذف الجدول دون المرور بسلة المهملات عبر الأمر:

DROP TABLE TABLE_NAME PURGE

يمكنك حذف الجدول من سلة المهملات عبر الأمر:

PURGE TABLE TABLE_NAME

يمكنك حذف ﺍلIndex  مباشرة ودون المرور بسلة المهملات عبر الأمر:

DROP INDEX INDEX_NAME PURGE

يمكنك حذف جميع كائنات TABLESPACE المحذوفة عبر الأمر:

PURGE TABLESPACE TABLESPACE_NAME

يمكنك أيضًا حذف جميع كائنات TABLESPACE المحذوفة التي تنتمي إلى مستخدم معين عبر الأمر:

PURGE TABLESPACE TABLESPACE_NAME USER USER_NAME

يمكنك أيضًا حذف جميع الكائنات المحذوفة لمستخدم معين من سلة المحذوفات باستخدام الأمر:

PURGE USER_RECYCLEBIN

يمكن حذف جميع الكائنات الموجودة في سلة المحذوفات باستخدام الأمر:

PURGE DBA_RECYCLE_BIN


لا يمكن استرداد الكائنات التي تنتمي إلى SYSTEM TABLESPACE باستخدام FLASHBACK DRPO.

 


علامات : Database

يمكن ان يعجبك ايضا


Comments

لايوجد تعليق حتى الان