TAHA
11-28-2009, 12:53 PM
اوراکل راهحلی به نام Flash Back را در نسخه 9i برای پاسخگویی به این نیاز ارائه داده و اکنون در نسخه 10g تکمیل شده آن را با امکانات بسیار وسیع تر در اختیار کاربران گذاشته است.
http://pnu-club.com/imported/mising.jpg
وقتی کاربری ناخواستهً سیستم را دچار مشکل میکند، شما به یک ابزار جهت رفع اشکال آن نیاز دارید. به این منظور شرکت اوراکل در Database 10g تکنول پروژیهای مختلفی را در قالب Flash Back برای رفع خطاهای انسانی(human errors) فراهم کرده است. این تکنولوژی، تغییراتی اساسی بر روی استرداد و بازیافت اطلاعات گذاشته است.
در گذشته، ظرف چند دقیقه بانک اطلاعاتی دچار اشکال میشد و بازیافت آن ساعتها طول میکشید، اما با تکنولوژی Flash Back زمان تصحیح خطاها برابر زمان بروز آنها شده است.
همچنین استفاده از این تکنولوژی بسیار آسان و ساده بوده و یک دستور کوتاه به جای دستورات پیچیده میتواند تمامی بانک اطلاعاتی را بازیابی کند. Flash Back سعی میکند بهترین آنالیز را از اطلاعات از دست رفته به عمل آورد تا تمامی آنها را بیکم و کسر بازگرداند. Flash Back همچنین خرابیهای گسترده و وسیع را نیز به سرعت بهبود میبخشد که این موجب کاستهشدن زمان down بودن سیستم میشود- مثل وقتی که تمامی سفارش های مشتریان این ماه از سیستم حذف شوند. Flash Back در بانک اطلاعاتی اوراکل بینظیر است و برای بازیابی اطلاعات در تمامی سطوح (شامل یک ردیف، یک تراکنش، یک جدول، یک table space و یا یک بانک اطلاعاتی نامحدود) راهکاری دارد و تنها باید جهت استفاده از آن، در ابتدا تنظیمات اولیهای را انجام دهیم (مثلاً تنظیم مقدار پارامترundo-retention و ...).
Flash Back Query
این ویژگی یکی از خصوصیات معرفیشده در بانک اطلاعاتی اوراکل 9i بود که به DBA و کاربر اجازه میدهد هر اطلاعاتی را در point in timeهای گذشته query بگیرد. این ویژگی قدرتمند میتواند برای مشاهده و احیاکردن اطلاعات از دست رفته که ممکن است به صورت تصادفی پاک شده و یا تغییر یافته باشند، استفاده شود. به عنوان مثال:
SELECT * FROM customer AS OF “1:00PM” WHERE…
این دستور ردیفهایی از جدولcustomer را از ساعت 2 بعدازظهر امروز نمایش میدهد.
برنامهنویسها میتوانند جهت ساخت تصحیحکننده اتوماتیک خطا در درون برنامههایشان از این ویژگی استفاده کنند و به کاربران اختیار میدهد که اطلاعات را برگردانند و خطاهایشان را به جای تحمیلکردن انجام این کار به DBAها شخصاً تصحیح کنند.
اداره کردنflash back query بسیار آسان است، چرا که بانک اطلاعاتی به صورت اتوماتیک اطلاعات ضروری را به منظور بازیابی اطلاعات- در زمانی قابل تنظیم از گذشته- نگه میدارد.
Flash Back Versions Query
این ویژگی راهی برای دیدن تغییرات اعمال شده بر بانک اطلاعاتی را در سطح ردیف فراهم میکند. یکی از دستورات توسعه یافتهSQL است که بازیابی تمامی نسخههای مختلف یک ردیف از نظر تغییرات اعمال شده را- در فاصله زمانی تعیین شده- اجازه میدهد. به عنوان مثال:
SELECT * FROM customer VERSION BETWEEN “1:00PM” AND “3:00PM” WHERE…
این دستور هر نسخهای از ردیف- یعنی هر تغییری که با یک تراکنش اعمال شده- را بین ساعت 2 و 3 بعدازظهر امروز نمایش میدهد. با استفاده از آنDBA ها میتوانند با دقت، به زمان و چگونگی تغییر یافتن اطلاعات و نیز ردگیری به یک کاربر، برنامه و یا تراکنش خاص اشارهکنند و به مدیر بانک اطلاعاتی این امکان را میدهد که سرچشمه اینگونه خرابیهای منطقی را در یک بانک پیگیری کند و آن را تصحیح نماید. همچنین این خصوصیت به برنامهنویس نیز این امکان را میدهد تا به راحتی برنامه خود راdebug کند.
Flash Back Transaction Query
این ویژگی راهی را برای مشاهده تغییرات اعمال شده روی بانک اطلاعاتی و در سطح تراکنش فراهم میکند. یک دستور توسعه یافتهSQLای است که به شما اجازه میدهد تا تمامی تغییرات انجام شده توسط یکtransaction را ببینید. به عنوان مثال:
SELECT * FROM dba-transaction-query WHERE xid = “000200030000002D”;
این دستور برآیند تمامی تغییراتی را که با این تراکنش روی بانک اعمال شده است را نمایش میدهد. در حقیقت، دستورات استفاده شدهSQL ای را جبران کرده و برمیگرداند و میتواند برای برعکسکردن همه تغییرات اعمال شده روی تمامی ردیفهایی که از این تراکنش تغییر یافتهاند استفاده شود. مجدداً توسط چنین ابزار دقیقی،DBA و برنامهنویس میتوانند صریحاً مشکلات منطقی رخ داده روی بانک اطلاعاتی و یا برنامه را تشخیص دهند.
Flash Back Database
برای آوردن بانک اطلاعاتی بهpoint in time قبلی، روش متداولrecovery کردن بهpoint in time دلخواه است. این روش میتواند ساعتها و یا حتی روزها طول بکشد، زیرا که باید تمامی بانک اطلاعاتی از روی نسخههای پشتیبان تهیه شدهrestore شود و بهpoint in time قبل از بروز خطاrecover شود.
Flash Back Database یک تدبیر جدید برایrecovery کردن به point in timeدلخواه است که به سرعت بانک اطلاعاتی اوراکل را به حالت اولیه قبل از رویداد خطا باز میگرداندlog هایی که flash back تولید میکند برای ردگیریblock هایی که از نسخه قبل تغییر کرده بودند استفاده میشوند. یک راه برای درک بهتر این ویژگی تصور گرفتن نوعیcontinuous backup یاstorage snapshot از سیستم است که این کار توسط خود بانک صورت میگیرد.
وقتی که نیاز به اجرایrecovery احساس شود، log هایflash back به سرعت بازخوانی و موجبrestore شدن پایگاه داده بهpoint in time قبل از خطا میشوند و این در حالی است که تنهاblock های تغییر یافته مجدداً restore میشوند. این کار بینهایت سریع است و زمانrecovery را از ساعتها به فقط چند دقیقه کاهش میدهد و استفاده از آن نیز بسیار آسان خواهد بود. یک بانک اطلاعاتی میتواند به وسیله یک دستور ساده (به صورتی که در زیر مشاهده میکنید) به ساعت 58:1 بعدازظهرrecover شود:
FLASHBACK DATABASE TO “1:58PM” ;
این دستور بهrestore کردن اطلاعات از رویtape نیازی ندارد،down time سیستم ابداً طولانی نخواهد بود و هیچ گونه روش پیچیدهای به منظورrecovery اطلاعات مورد نیاز نیست. شما همچنین پس از استفاده ازflash back میتوانید، بانک را در حالت “فقط خواندنی”
open کنید و محتویات درون آن را مورد آزمایش قرار دهید. اگر تصمیم گرفتید که به زمان قبلتر از آن بروید و یا هنوز به زمان مورد نظر نرسیدهاید، میتوانید دستورflash back را برای رسیدن به بهترینpoint in time مجدداً استفاده نمائید.
flash back همچنین بباOracle Data Guard یکپارچه میشود، بنابراین شما میتوانید هم سیستم عملیاتی اصلی و هم سیستمstandby راflash back کنید.
Flash Back Database مشابه این است که دکمهundo و یاrefresh به قبل از پیدایش مشکل، در بانک اطلاعاتی وجود داشته باشد.
Flash Back Table
این ویژگی قابلیتrecover کردن یک جدول و یا دستهای از جداول را به point in time تعیین شده در زمان گذشته به سرعت و به سادگی برای یک مدیر بانک اطلاعاتی فراهم میکند و در بسیاری از موارد نیاز به اجرا کردن عملیات پیچیدهrecovery را برایpoint in timeدلخواه کم میکند.به عنوان مثال:
FLASHBACK DATABASE orders, order-items TO TIMESTAMP (JUL-07-2003, 02:33:00);
این دستور هر بهروزسازیای را که روی جداولorders وorderitems بین زمان فعلی سیستم و timestamp تعیین شده انجامگرفته است، برمیگرداند.
این ویژگی کل عملیات را به صورتon-line وin-place اجرا کرده و به درستیconstraint های موجود بین جداول صدمهای نخواهد زد.
این ویژگی مشابه آن است که در بانک اطلاعاتی دکمهundo برای هر جدول وجود داشته باشد.
Flash Back Drop
drop و یاdelete کردنobject های بانک اطلاعاتی به صورت تصادفی، مشکلی است که کاربران دارند و تقریباً همیشه آن را مرتکب میشوند.
“من فکر کردم زمانی که داشتم جدول راdelete میکردم به سیستم آزمایشی وصل هستم!”، جملهای است که اغلب در قسمت ساپورت از کاربران شنیده میشود. کاربران به زودی متوجه اشتباهشان میشوند، اما هنگامی که دیگر خیلی دیر شده است و راهی نیست که به آسانی جداولdrop شده،index های آنها،constraint ها وtrigger هاrecover شوندobject . هایی که یکبارdrop شوند، دیگر برای همیشه از دست رفتهاند. در مورد جداول خیلی مهم و با ارزش و یاobject های آنها (از جملهindex ها،partition ها و یاcluster ها)،DBA باید یکpoint in time recovery را که شاید خیلی هم وقتگیر باشد اجرا نماید که این موجب میشود تا تراکنشهای صحیح اخیر متضرر شوند.
Flash Back Drop یک شبکه ایمن را برای زمانی کهobject ها در بانک اطلاعاتی اوراکل10g از بین میروند فراهم میآورد. وقتی که یک کاربر جدولی راdrop کند، اوراکل آن را درrecycle bin قرار میدهدobject . ها تا زمانی که کاربر تصمیم بگیرد به صورت دائمی آنها را حذف کند و یا اینکه از نظر میزان فضای خالی رویtablespace ای که شامل آن جدول است در مضیقه باشد درونrecycle bin اوراکل- که محلی مجازی است برای مستقر شدنobject هایdrop شده- باقی خواهند ماند. کاربران میتوانند درونrecycle bin را نگاه کرده و جدولهایdrop شده وobject های وابسته آنها راundrop کنند. به عنوان مثال جدولdrop شدهemployee و تمامیobject های وابسته آن با دستور زیرundrop میشوند.
FLASHBACK TABLE employee BEFORE DROP;
flash back drop مشابه آن است که دکمهundo و یا refresh به قبل از مشکل برای یک جدول و وابستههای آن وجود داشته باشد.
در پایان ذکر این نکته ضروری است که ویژگیFlash Back جایگزین مناسبی برای حذف همیشگی استراتژیهایBackup نیست.
http://pnu-club.com/imported/mising.jpg
وقتی کاربری ناخواستهً سیستم را دچار مشکل میکند، شما به یک ابزار جهت رفع اشکال آن نیاز دارید. به این منظور شرکت اوراکل در Database 10g تکنول پروژیهای مختلفی را در قالب Flash Back برای رفع خطاهای انسانی(human errors) فراهم کرده است. این تکنولوژی، تغییراتی اساسی بر روی استرداد و بازیافت اطلاعات گذاشته است.
در گذشته، ظرف چند دقیقه بانک اطلاعاتی دچار اشکال میشد و بازیافت آن ساعتها طول میکشید، اما با تکنولوژی Flash Back زمان تصحیح خطاها برابر زمان بروز آنها شده است.
همچنین استفاده از این تکنولوژی بسیار آسان و ساده بوده و یک دستور کوتاه به جای دستورات پیچیده میتواند تمامی بانک اطلاعاتی را بازیابی کند. Flash Back سعی میکند بهترین آنالیز را از اطلاعات از دست رفته به عمل آورد تا تمامی آنها را بیکم و کسر بازگرداند. Flash Back همچنین خرابیهای گسترده و وسیع را نیز به سرعت بهبود میبخشد که این موجب کاستهشدن زمان down بودن سیستم میشود- مثل وقتی که تمامی سفارش های مشتریان این ماه از سیستم حذف شوند. Flash Back در بانک اطلاعاتی اوراکل بینظیر است و برای بازیابی اطلاعات در تمامی سطوح (شامل یک ردیف، یک تراکنش، یک جدول، یک table space و یا یک بانک اطلاعاتی نامحدود) راهکاری دارد و تنها باید جهت استفاده از آن، در ابتدا تنظیمات اولیهای را انجام دهیم (مثلاً تنظیم مقدار پارامترundo-retention و ...).
Flash Back Query
این ویژگی یکی از خصوصیات معرفیشده در بانک اطلاعاتی اوراکل 9i بود که به DBA و کاربر اجازه میدهد هر اطلاعاتی را در point in timeهای گذشته query بگیرد. این ویژگی قدرتمند میتواند برای مشاهده و احیاکردن اطلاعات از دست رفته که ممکن است به صورت تصادفی پاک شده و یا تغییر یافته باشند، استفاده شود. به عنوان مثال:
SELECT * FROM customer AS OF “1:00PM” WHERE…
این دستور ردیفهایی از جدولcustomer را از ساعت 2 بعدازظهر امروز نمایش میدهد.
برنامهنویسها میتوانند جهت ساخت تصحیحکننده اتوماتیک خطا در درون برنامههایشان از این ویژگی استفاده کنند و به کاربران اختیار میدهد که اطلاعات را برگردانند و خطاهایشان را به جای تحمیلکردن انجام این کار به DBAها شخصاً تصحیح کنند.
اداره کردنflash back query بسیار آسان است، چرا که بانک اطلاعاتی به صورت اتوماتیک اطلاعات ضروری را به منظور بازیابی اطلاعات- در زمانی قابل تنظیم از گذشته- نگه میدارد.
Flash Back Versions Query
این ویژگی راهی برای دیدن تغییرات اعمال شده بر بانک اطلاعاتی را در سطح ردیف فراهم میکند. یکی از دستورات توسعه یافتهSQL است که بازیابی تمامی نسخههای مختلف یک ردیف از نظر تغییرات اعمال شده را- در فاصله زمانی تعیین شده- اجازه میدهد. به عنوان مثال:
SELECT * FROM customer VERSION BETWEEN “1:00PM” AND “3:00PM” WHERE…
این دستور هر نسخهای از ردیف- یعنی هر تغییری که با یک تراکنش اعمال شده- را بین ساعت 2 و 3 بعدازظهر امروز نمایش میدهد. با استفاده از آنDBA ها میتوانند با دقت، به زمان و چگونگی تغییر یافتن اطلاعات و نیز ردگیری به یک کاربر، برنامه و یا تراکنش خاص اشارهکنند و به مدیر بانک اطلاعاتی این امکان را میدهد که سرچشمه اینگونه خرابیهای منطقی را در یک بانک پیگیری کند و آن را تصحیح نماید. همچنین این خصوصیت به برنامهنویس نیز این امکان را میدهد تا به راحتی برنامه خود راdebug کند.
Flash Back Transaction Query
این ویژگی راهی را برای مشاهده تغییرات اعمال شده روی بانک اطلاعاتی و در سطح تراکنش فراهم میکند. یک دستور توسعه یافتهSQLای است که به شما اجازه میدهد تا تمامی تغییرات انجام شده توسط یکtransaction را ببینید. به عنوان مثال:
SELECT * FROM dba-transaction-query WHERE xid = “000200030000002D”;
این دستور برآیند تمامی تغییراتی را که با این تراکنش روی بانک اعمال شده است را نمایش میدهد. در حقیقت، دستورات استفاده شدهSQL ای را جبران کرده و برمیگرداند و میتواند برای برعکسکردن همه تغییرات اعمال شده روی تمامی ردیفهایی که از این تراکنش تغییر یافتهاند استفاده شود. مجدداً توسط چنین ابزار دقیقی،DBA و برنامهنویس میتوانند صریحاً مشکلات منطقی رخ داده روی بانک اطلاعاتی و یا برنامه را تشخیص دهند.
Flash Back Database
برای آوردن بانک اطلاعاتی بهpoint in time قبلی، روش متداولrecovery کردن بهpoint in time دلخواه است. این روش میتواند ساعتها و یا حتی روزها طول بکشد، زیرا که باید تمامی بانک اطلاعاتی از روی نسخههای پشتیبان تهیه شدهrestore شود و بهpoint in time قبل از بروز خطاrecover شود.
Flash Back Database یک تدبیر جدید برایrecovery کردن به point in timeدلخواه است که به سرعت بانک اطلاعاتی اوراکل را به حالت اولیه قبل از رویداد خطا باز میگرداندlog هایی که flash back تولید میکند برای ردگیریblock هایی که از نسخه قبل تغییر کرده بودند استفاده میشوند. یک راه برای درک بهتر این ویژگی تصور گرفتن نوعیcontinuous backup یاstorage snapshot از سیستم است که این کار توسط خود بانک صورت میگیرد.
وقتی که نیاز به اجرایrecovery احساس شود، log هایflash back به سرعت بازخوانی و موجبrestore شدن پایگاه داده بهpoint in time قبل از خطا میشوند و این در حالی است که تنهاblock های تغییر یافته مجدداً restore میشوند. این کار بینهایت سریع است و زمانrecovery را از ساعتها به فقط چند دقیقه کاهش میدهد و استفاده از آن نیز بسیار آسان خواهد بود. یک بانک اطلاعاتی میتواند به وسیله یک دستور ساده (به صورتی که در زیر مشاهده میکنید) به ساعت 58:1 بعدازظهرrecover شود:
FLASHBACK DATABASE TO “1:58PM” ;
این دستور بهrestore کردن اطلاعات از رویtape نیازی ندارد،down time سیستم ابداً طولانی نخواهد بود و هیچ گونه روش پیچیدهای به منظورrecovery اطلاعات مورد نیاز نیست. شما همچنین پس از استفاده ازflash back میتوانید، بانک را در حالت “فقط خواندنی”
open کنید و محتویات درون آن را مورد آزمایش قرار دهید. اگر تصمیم گرفتید که به زمان قبلتر از آن بروید و یا هنوز به زمان مورد نظر نرسیدهاید، میتوانید دستورflash back را برای رسیدن به بهترینpoint in time مجدداً استفاده نمائید.
flash back همچنین بباOracle Data Guard یکپارچه میشود، بنابراین شما میتوانید هم سیستم عملیاتی اصلی و هم سیستمstandby راflash back کنید.
Flash Back Database مشابه این است که دکمهundo و یاrefresh به قبل از پیدایش مشکل، در بانک اطلاعاتی وجود داشته باشد.
Flash Back Table
این ویژگی قابلیتrecover کردن یک جدول و یا دستهای از جداول را به point in time تعیین شده در زمان گذشته به سرعت و به سادگی برای یک مدیر بانک اطلاعاتی فراهم میکند و در بسیاری از موارد نیاز به اجرا کردن عملیات پیچیدهrecovery را برایpoint in timeدلخواه کم میکند.به عنوان مثال:
FLASHBACK DATABASE orders, order-items TO TIMESTAMP (JUL-07-2003, 02:33:00);
این دستور هر بهروزسازیای را که روی جداولorders وorderitems بین زمان فعلی سیستم و timestamp تعیین شده انجامگرفته است، برمیگرداند.
این ویژگی کل عملیات را به صورتon-line وin-place اجرا کرده و به درستیconstraint های موجود بین جداول صدمهای نخواهد زد.
این ویژگی مشابه آن است که در بانک اطلاعاتی دکمهundo برای هر جدول وجود داشته باشد.
Flash Back Drop
drop و یاdelete کردنobject های بانک اطلاعاتی به صورت تصادفی، مشکلی است که کاربران دارند و تقریباً همیشه آن را مرتکب میشوند.
“من فکر کردم زمانی که داشتم جدول راdelete میکردم به سیستم آزمایشی وصل هستم!”، جملهای است که اغلب در قسمت ساپورت از کاربران شنیده میشود. کاربران به زودی متوجه اشتباهشان میشوند، اما هنگامی که دیگر خیلی دیر شده است و راهی نیست که به آسانی جداولdrop شده،index های آنها،constraint ها وtrigger هاrecover شوندobject . هایی که یکبارdrop شوند، دیگر برای همیشه از دست رفتهاند. در مورد جداول خیلی مهم و با ارزش و یاobject های آنها (از جملهindex ها،partition ها و یاcluster ها)،DBA باید یکpoint in time recovery را که شاید خیلی هم وقتگیر باشد اجرا نماید که این موجب میشود تا تراکنشهای صحیح اخیر متضرر شوند.
Flash Back Drop یک شبکه ایمن را برای زمانی کهobject ها در بانک اطلاعاتی اوراکل10g از بین میروند فراهم میآورد. وقتی که یک کاربر جدولی راdrop کند، اوراکل آن را درrecycle bin قرار میدهدobject . ها تا زمانی که کاربر تصمیم بگیرد به صورت دائمی آنها را حذف کند و یا اینکه از نظر میزان فضای خالی رویtablespace ای که شامل آن جدول است در مضیقه باشد درونrecycle bin اوراکل- که محلی مجازی است برای مستقر شدنobject هایdrop شده- باقی خواهند ماند. کاربران میتوانند درونrecycle bin را نگاه کرده و جدولهایdrop شده وobject های وابسته آنها راundrop کنند. به عنوان مثال جدولdrop شدهemployee و تمامیobject های وابسته آن با دستور زیرundrop میشوند.
FLASHBACK TABLE employee BEFORE DROP;
flash back drop مشابه آن است که دکمهundo و یا refresh به قبل از مشکل برای یک جدول و وابستههای آن وجود داشته باشد.
در پایان ذکر این نکته ضروری است که ویژگیFlash Back جایگزین مناسبی برای حذف همیشگی استراتژیهایBackup نیست.