در این مقاله انواع مدلهای بازیابی قابل استفاده در نرمافزار SQL SERVER از جمله Full، Simple و Bulk Logged را با هم مرور میکنیم و در مقاله بعدی به شرح کامل انواع مدلهای پشتیبانگیری این ابزار میپردازیم.
عملیات بکاپگیری (Backup) و بازگردانی اطلاعات (Restore) در SQL Server مطابق با نوع Recovery Model در دیتابیس مورد نظر انجام میپذیرد. در واقع Recovery Modelها برای کنترل نگهداری Transaction Logها طراحی شدهاند. یک Recovery Model جزئی از دیتابیس است که بر موارد زیر کنترل و نظارت دارد:
- چگونگی ذخیره تراکنشها بصورت Log
- چگونگی نیاز Transaction Log ها به بکاپگیری
- استفاده درست و به موقع از انواع عملیات بازگردانی اطلاعات (Restore)
به طور کلی در SQL Server سه نوع Recovery Model به شرح زیر وجود دارد:
- <ol
- مدل بازیابی Full
- مدل بازیابی Simple
- مدل بازیابی Bulk-Logged
مدل بازیابی Full
مدل بازیابی Full به SQL Server میگوید که همه دادههای تراکنش را در لگاریتم تراکنش حفظ کند تا زمانی که یا یک Backup از transaction log گرفته شود . روش کار این برنامه به این شکل است که همه تراکنشهایی که در مقابل SQL Server منتشر میشوند، ابتدا وارد transaction log شده و سپس داده بر روی فایل داده مناسب نوشته میشود.
این امر به SQL Server اجازه میدهد تا در هر مرحله که خطایی به وجود آمد یا تراکنش به دلایلی کنسل شد، به عقب برگردد. مدل بازیابی Full،کاملترین مدل Recovery است و به شما اجازه میدهد همه دادههای خود را در هر زمانی Recover کنید، تا زمانیکه همه فایلهای Backup قابل استفاده باشند.
با این مدل همه عملکردها به طور کامل وارد سیستم شده که بدین معناست که میتوانید دیتابیس خود را به هر شکلی Recover کنید. علاوه بر این اگر دیتابیس بر روی مدل بازیابی کامل تنظیم شده باشد، نیاز است Backupهای transaction log را نیز منتشر کنید، در غیر این صورت transaction log مربوط به دیتابیس شما برای همیشه به رشد ادامه میدهد.
در این مدل از Backupها زیر میتوانید استفاده کنید:
- Full backups
- Differential backups
- Transaction log backups
- File backups
- Filegroup backups
- Partial backups
چگونکی تنظیم مدل بازیابی Full با استفاده از T-SQL
1-ALTER DATABASE Didgah Test SET RECOVERY Full
2-GO
مدل بازیابی Simple
این مدل، یک Backup ساده به شما ارائه میدهد که میتواند کل دیتابیس شما را در رویداد یک شکست جایگزین کند، یا اگر نیاز باشد دیتابیس شما را به سرور دیگری بازگرداند. با این مدل شما قادر به انجام Backup های Full ( یک کپی کلی) و یا Backupهای Differential (هر گونه تغییر از زمان آخرین Full Backup) هستید.
مدل بازیابی Simple اساسیترین مدل برای SQL Server است. هر تراکنشی روی Transaction log نوشته میشود؛اما زمانیکه تراکنش کامل شود و داده روی فایل داده نوشته میشود، فضایی که توسط فایل Transaction log استفاده شده بود، میتواند مجددا به وسیله تراکنش های جدید قابل استفاده شود.
از آنجایی که این فضا دوباره استفاده می شود توانایی اشاره به آن نقطه خاص در زمان بازیابی وجود ندارد؛ بنابراین آخرین نقطهی بازگشت یا Full Backup و یا آخرین Backup Differential که کامل شده است، خواهد بود.
همچنین از آنجایی که فضا در Transaction log میتواند دوباره مورد استفاده قرار بگیرد، transaction log به رشد همیشگی خود ادامه نخواهد داد.
نوع Backupهایی که میتوانید اجرا کنید وقتی که داده در حالت مدل بازیابی ساده است:
- Full backups
- Differential backups
- File backups
- Filegroup backups
- Partial backups
چگونگی تنظیم مدل بازیابی ساده با استفاده از T- SQL
1- ALTER DATABASE Didgah Test SET RECOVERY Simple
2- GO
مدل بازیابی Bulk-Logged
مانند Full Recovery Model نیازمند دریافت Log Backup است. در این روش با استفاده از به حداقل رساندن ثبت Log در هنگام انجام عملیات به روزرسانی حجیم یا درج رکوردهای زیاد در جداول (Bulk-Logged) حجم فایل Log به شدت کاهش داده میشود.
این مدل بازیابی شباهت بسیار زیادی به Full Recovery Model دارد؛ اما تفاوت اصلی بین این دو مدل در روشی است که مدل بازیابی Bulk-logged برای مدیریت عملیاتهای گسترده تغییرات در اطلاعات انجام میدهد.
در واقع این روش برای ثبت اطلاعات و عملیاتها در Transaction Logها، از روشی به نام Minimal Logging استفاده میکند. با استفاده از این روش سرعت پردازشی بسیار بالا میرود، زمان پردازشها طبیعتاً کاهش پیدا میکند و میزان فضای مصرفی برای اغلب عملکردها کاهش مییابد. اما در این روش قابلیت استفاده از Point In Time Restore را نخواهید داشت.
در این مدل، حجم فایل Transaction Logها نسبت به مدل بازیابی Full بسیار کمتر خواهد شد. نکته قابل ذکر این است که اگر شما از این مدل استفاده می کنید، نیاز به انتشار Backupهای log تراکنش دارید، در غیر این صورت log تراکنش مربوط به دیتابیس شما به رشد ادامه خواهد داد.
نوع Backupهایی که میتوانید اجرا کنید وقتی که داده در حالت مدل بازیابی Bulk-logged است:
- Full backups
- Differential backups
- File backup
- Filegroup backups
- Partial backups
چگونگی تنظیم مدل بازیابی bulk-logged با استفاده از T-SQL:
1- ALTER DATABASE Didgah Test SET RECOVERY BULK_LOGGED
2- GO
سلام
مقاله مفیدی بود
دقیقا منظورتان از ” نیاز است Backupهای transaction log را نیز منتشر کنید ” چیست؟