نحوه گرفتن بکاپ صحیح از دیتابیس SQL Server
براي گرفتن Backup از اطلاعات موجود در Database از الگوريتم هاي زير پيروي ميشود.
در بانك اطلاعاتي MS SQL Server سه نوع تهيه نسخ پشتيبان وجود دارد كه از هر كدام بنا به حجم اطلاعات و امكانات سخت افزاري ميتوان در دوره هاي مختلف بهره برداري نمود.
1- Full Backup :
كه از كل اطلاعات موجود در Database نسخه پشتيبان تهيه ميگردد.
2- Differential Backup:
در اين نوع از آخرين تغييرات بوجود آمده در Database نسخه پشتيبان تهيه مي شود . آخرين مرحله Backup گيري مد نظر قرار گرفته مي شود و از آخرين تغييرات نسخه پشتيباني تهيه مي شود . لازم به ذكر است كه در اين نوع فقط تغييرات اطلاعات نسخه پشتيبان گرفته ميشود و نه كل اطلاعات
3- Transaction Log Backup:
در اين نوع از آخرين Transaction هايي كه در Database رخ داده نسخه پشتيبان تهيه ميشود . بدين معنا كه كليه عمليات اتفاق افتاده در بانك اطلاعاتي را پشتيبان گيري مينمايد و اين مورد از آخرين اتفاق هاي Backup گرفته شده به بعد نسخه پشتيبان تهيه مينمايد.
تهيه نسخ پشتيبان بنا به حجم اطلاعات و منابع سخت افزاري
حال بنا به تعاريف فوق عمل تهيه نسخ پشتيبان بنا به حجم اطلاعات و منابع سخت افزاري در دسترس تنظيم ميشود ، ليكن آنرا ميتوان به گروه هاي زير تقسيم نمود:
حجم اطلاعات كمتر از GB 30
در اين حالت توصيه ميشود از نوعهاي 1 و 3 با الگوريتم زير استفاده شود:
حجم اطلاعات بيشتر از GB 30
در اين حالت توصيه ميشود از نوع هاي 1 و 3 با الگوريتم زير استفاده شود:
بکاپ گیری در SQL Server به روش دستی
بکاپ گیری دستی در SQL Server به روش دستی، به دو صورت انجام می شود.
BACKUP DATABASE BinaDB TO DISK = ‘C:BinaDB-Backup-Test.BAK’ GO
( توجه داشته باشید که این دستور دیتابیس BinaDB را در درایو C و با نام نوشته شده در حالت Full Backup ذخیره می کند)
پس از اتمام کار، پیغامی مبنی بر اجرای موفقیت آمیز دستور نمایش داده می شود.
برای دیدن فیلم آموزشی این روش اینجا کلیک کنید
بکاپ گیری در SQL Server به روش خودکار
برای استفاده از این روش باید سرویس SQL Server Agent در حالت فعال یا Running قرار داشته باشد. برای بررسی این موضوع می توانید وارد کنسول Services.msc شده و وضعیت آن را بررسی کنید. در صورتی که حالت آن روی Stop بود آن را به استارت تغییر دهید. همچنین می توانید پس از اتصال به instance مورد نظر در SQL Server Management Studio در منوی Object Explorer ببینید که سرویس مورد نظر اجرا می شود و یا اینکه غیر فعال است.
پس از مطمئن بودن از فعال بودن آن، از منوی Object Explorer بر روی گزینه Management کلیک کرده و گزینه Maintenance Plan را انتخاب کنید. سپس وارد بخش Maintenance Plan Wizard شوید. در صفحه باز شده، گزینه Next را انتخاب می کنیم. در صفحه بعدی نام فایل را انتخاب می کنیم و سپس برای انجام تنظیمات مربوطه Change را انتخاب می کنیم.
سپس تنظیماتی مثل زمان، نوع بکاپ، شرایط بکاپ گیری و… را در صفحه باز شده مشخص می کنیم. در صفحه بعدی باید نوع بکاپ را انتخاب کنیم
برای دیدن فیلم آموزشی اینجا کلیک کنید
ریکاوری دیتابیس در SQL Server
حال که نحوه گرفتن بکاپ را یاد گرفتیم می خواهیم درباره ی ریکاوری دیتابیس در SQL Server صحبت کنیم. برای این کار به این صورت عمل می کنیم. ابتدا در SQL Server Management Studioبر روی دیتابیس مورد نظر راست کلیک کرده و از قسمت Task، گزینه Restore و سپس از آن قسمت هم گزینه Databaseرا انتخاب می کنیم. در صفحه باز شده در قسمت Source For Restore گزینه From Device را انتخاب کرده و فایل بکاپی را که قبلا ایجاد شده است انتخاب می کنیم. اگر می خواهید فایل بکاپ جایگزین دیتابیس فعلی شود، باید از قسمت Options در سمت راست گزینه Overwrite the Exsisting Database را تیک بزنید.
برای دیدن ویدئو آموزشی اینجا کلیک کنید
نرم افزار های ریکاوری و بازیابی اطلاعات دیتابیس
برای ریکاوری اطلاعات پایگاه داده میتوان از نرم افزارهای مختلف استفاده کرد. این نرم افزارها را میتوانید از اینترنت دانلود کرده و آن را بر روی سیستم خود نصب کنید. نرم افزارهایی مانند نرم افزارهای :
Stellar Phoenix Access Database Repair v5.5.0.0 x64
استفاده از نرم افزار Stellar Repair for MS SQL
در اینجا نحوه استفاده از نرم افزار Stellar Repair for MS SQL برای ریکاوری و بازیابی اطلاعات دیتابیس بررسی میکنیم. برای استفاده از این برنامه به صورت زیر عمل کنید.
گام اول: دانلود و نصب برنامه
اولین کاری که باید انجام دهید، دانلود و نصب برنامه Stellar Repair for MS SQL استت سپس آن را اجرا کنید.
بعد از اجرای این برنامه پنجره رابط کاربری اصلی آن باز میشود و میتوانید با استفاده از کادر جستجو یا Browseدیتابیس خود را انتخاب کنید و یا به جستجوی فایلهای MDF بپردازید.
گام دوم: در این مرحله مسیر و آدرس فایلهایی که میخواهید به صورت کامل نمایش داده شوند در کادر دیتابیس وارد میکنید. با انتخاب جستجو و انتخاب فایلها و دیتابیس این کادر به صورت اتوماتیک پر میشود.
گام سوم: بعد ازاین که فایلها بارگذازی شدند میتوانید روی دکمه Repairکلیک کنید تا برنامه شروع به تعمیر و بازیابی اطلاعات دیتابیس کند.
گام چهارم: وقتی که روند تعمیر به صورت کامل و موفقیتآمیز به پایان رسید، فایلها و دادههای قابل بازیابی و ریکاوری را که شامل Tables و Defaults و Viewsو Data Typesو Synonymsو غیره میشود را به شما نمایش میدهد. در پنل سمت چپ میتوانید ساختار آنها را مشاهده کنید.
به صورت پیش فرض چک باکس دیتابیسها انتخاب شده است. برای این که محتویات دیتابیسها قابل مشاهده شود روی آنها از پنل سمت چپ کلیک کنید، تا خصوصیات و قابلیت ریکاوری آنها در پنل سمت راست نمایش داده شود. سپس میتوانید بر روی آپشن ذخیره یا Saveکه در منوی فایل در دسترس است، کلیک کنید و به ریکاوری اطلاعات و دادههای دیتابیس بدون استفاده از بکاپگیری بپردازید.
گام پنجم: در این مرحله گزینه MDF را انتخاب کنید. این دکمه در بخش Save As قرار دارد.
گام ششم: بعد از این مرحله باکس MS SQL dialog برنامه Stellar Repair ظاهر خواهد شد. در این پنجره میتوانید موارد زیر را انتخاب کنید.
۱- دیتابیسهای جدید : (New Database) اگر میخواهید ریکاوری و بازیابی اطلاعات دیتابیس در new database ذخیره شود، این آپشن را انتخاب کنید.
۲- انتخاب آپشن Live Databaseاگر میخواهید دیتابیس های ریکاوری شده را در existing database ذخیره کنی، استفاده میشود.
ذخیره ریکاوری اطلاعات دیتابیس در دیتابیس جدید
برای ذخیره ریکاوری اطلاعات پایگاه داده در دیتابیس جدید به صورت زیر عمل کنید:
۱- بر روی دکمه دیتابیس جدید یا New Database کلیک کنید.
۲- کادر روبروی Server/Instance Name را پر کنید و یک مسیر مقصد برای صرفهجویی در دیتابیس انتخاب کنید.
۳- بر روی دکمه Saveبرای تعمیر فایلهای پایگاه داده کلیک کنید. بعد از این که روند به صورت موفقیتآمیز به پایان رسید، پیغام File saved at the desired locationظاهر میشود. روی دکمه Ok کلیک کنید
. ۴-نرم افزار دیتابیس را در New Database ذخیره میکند و پنجرهای به صورت زیر برای شما نمایش داده میشود.
ذخیره ریکاوری اطلاعات دیتابیس در Live Database
برای ذخیره اطلاعات و دادههای دیتابیس درLive Database به صورت زیر عمل کنید:
۱- روی دکمه رادیویی یعنی Live Database کلیک کنید.
۲- کادر Server/Instance Name را پر کنید.
۳- از لیست کشویی Existing Database را انتخاب کنید، جایی که میخواهید ریکاوری اطلاعات دیتابیس در آن ذخیره شود.
۴- بر روی دکمه ذخیره کلیک کنید تا برنامه شروع به ذخیره و تعمیر فایلهای دیتابیس کند. وقتی که روند ذخیره به صورت کامل و موفقیتآمیز به پایان رسید، شما پیام File saved at the desired pathرا دریافت خواهید کرد.
۵- نرم افزار دیتابیسها را در Live Database ذخیره خواهد کرد. در پنجره زیر آن را مشاهده میکنید.
استفاده از نرم افزار Stellar Phoenix Access Database Repair v5.5.0.0 x64برای ریکاوری دیتابیس
این نرم افزار، یک برنامه کاربردی برای بازیابی و ریکاوری دادههای بانک اطلاعاتی است. با استفاده از آن میتوان به بررسی دیتابیسها و خطاهای موجود در آن پرداخت و آنها را شناسایی و نواقص موجود در آنها را ترمیم و بازیابی کرد. از جمله ویژگیها و خصوصیاتی که این برنامه دارد عبارت است از امکان ریکاوری فایل های دیتابیسهای MDB و یا ACCDB، امکان ریکاوری فرمها و ماژولهایی که رمزنگاری شدهاند، قابلیت ریکاوری اطلاعات حذف شده از یک پایگاه داده در یک پایگاه داده جدید، امکان تعیین مسیر اطلاعات بازگردانی شده و غیره اشاره کرد. این نرم افزار را میتوانید از سایتهای اینترنتی دانلود کرده و مورد استفاده قرار دهید. به این صورت نیز شما میتوانید به ریکاوری اطلاعات دیتابیس خود بپردازید و آنها را ذخیره کنید.
در بکاپ و ریکاوری دیتابیس در SQL Server به چه نکاتی باید توجه کنیم؟
در نسخه های جدید SQL Server ، برای مشخص کردن محل ذخیره ی جدیدی برای فایل های دیتابیس، باید در قسمت Files گزینه Relocate all files to folder را تیک بزنید و سپس یک محل جدید برای ذخیره ی داده ها و لاگ ها مشخص کنید.
اگر می خواهید پلنی برای بکاپ خودکار تنظیم کنید، پیشنهاد می شود به دلیل شلوغ بودن سرور، این کار را برای ساعات پایانی روز تعیین کنید.
بهتر است فایل های مربوط به بکاپ خود را بر روی سرور، دیسک و یا حافظه دیگری ذخیره کنید تا در صورت ایجاد مشکل در سرور، این فایل ها از بین نروند.
برای انجام دادن عملیات بکاپ گیری، کاربر باید دسترسی Sysadmin را به عنوان Server Roles و دسترسی هایdb_owner و db_backupoperator را به عنوان Database Roles داشته باشد. برای این منظور در نرم افزار SQL Server Management Studio پس از اتصال بهInstance به مسیر Security و سپس Login رفته و با راست کلیک بر روی یوزر مورد نظر گزینهProperties را انتخاب کنید و تنظیمات را مطابق زیر اعمال نمایید:
در قسمت Server Roles، دو گزینه Public و Sysadmin را تیک بزنید. سپس وارد قسمت User Mapping شده و در این قسمت گزینه های BinaDB، db_backupoperatorو db_owner را تیک بزنید.
انواع مدل های ریکاوری و تفاوت های آن ها
همان طور که مشاهده کردید در قسمت هایی از مقاله به مدل های مختلف بکاپ اشاره شد و گفتیم که بعدا به توضیح آن ها می پردازیم، ریکاوری هم مدل های مختلف دارد. عملیات گرفتن بکاپ و ریکاوری دیتابیس در SQL Server ، بر اساس مدل ریکاوری در آن دیتابیس انجام می گیرد. این مدل های مختلف ریکاوری برای به منظور کنترل و نگه داریTransaction Log ها ایجاد شده اند و بر مواردی مثل نحوه ذخیره تراکنش ها به صورت لاگ، اجازه بکاپ گیری به تراکنش ها و نوع عملیات بازگردانی اطلاعات کنترل دارند. به صورت کلی سه نوع مدل ریکاوری در SQL Server وجود دارد:
· مدل ریکاوری Full
· مدل ریکاوری Bulk-Logged
· مدل ریکاوری Simple
· مدل بازیابی کامل یا Full Recovery
تنظیم این مدل به گونه ای است که تا زمانی که از تراکنشی بکاپ گرفته نشده باشد، دیتابیس آن را پاک نمی کند. پس از گرفته شدن بکاپ به یکی از سه روش موجود است که دیتابیس اقدام به حذف تراکنش ها خواهد کرد. در صورت ایجاد اشکال در دیتابیس، روش Full Recovery Model بهترین عملکرد را در بازیابی اطلاعات ما دارد. در این مدل شما قادر خواهید بود در هنگام بازیابی اطلاعات دیتابیس، آن ها را به زمان و تاریخ مد نظرتان بازیابی کنید که به این ویژگی قابلیت Point In Time Recovery گفته می شود. حجم اطلاعاتی که در صورت بروز مشکل می توان بازیابی کرد، توسط مدت زمان طول کشیده برای بکاپ گیری از تراکنش ها تعیین می شود.
مدل بازیابی Bul-Logged
این مدل ریکاوری بسیار به مدل قبلی یا همان ریکاوری کامل شبیه است اما تفاوت اصلی در بین این دو مدل ریکاوری در روش این مدل از ریکاوری، برای مدیریت عملیات های تغییر در اطلاعات است. این مدل از ریکاوری برای ذخیره اطلاعات و تراکنش ها از سیستم Minimal Logging استفاده می کند. این کار سرعت پردازش را افزایش می دهد در نتیجه زمان مورد نیاز برای پردازش کم شده و همچنین فضای اشغال شده برای این کار کاهش می یابد.
از دیگر تفاوت های این دو روش این است که در این مدل، قابیلت Point In Time Restore را نخواهید داشت. همچنین در این مدل ریکاوری، حجم فایل ها نسبت به مدل قبلی بسیار کمتر خواهد بود. معمولا از این مدل ریکاوری دیتابیس در SQL Server ، به صورت تک موردی و یا برای مدت زمان کوتاهی استفاده می شود نه یک راه دائمی. اگر از این مدل ریکاوری در سازمان خود استفاده می کنید باید دقت داشته باشید که این عملیات را در زمان بروز رسانی ثبت اطلاعات جدید توسط کاربران انجام ندهید، زیرا امکان از بین رفتن داده ها در حین این کار وجود دارد.
مدل بازیابی ساده و یا Simple Recovery Model
در این روش، هدف اصلی کاهش اندازه اطلاعات تراکنش ها در لاگ های ذخیره شده است. در این مدل SQL Server هر زمانی که دیتابیس به یک Transaction Checkpoint برسد، اطلاعات تراکنش ها را حذف می کند، که در اصطلاح به اینکار Truncate کردن گفته می شود. استفاده از این مدل ریکاوری سبب می شود که فقط امکان بازگردانی اطلاعات از آن دیتابیس هایی وجود داشته باشد که به روش های Full و Differential از آن ها بکاپ گیری شده است.
در حالت Simple Recovery Model قابلیت بازیابی اطلاعات به یک نقطه زمانی خاص یا همان Point In Time Restore وجود ندارد و تنها می توان اطلاعات را به صورت کامل با استفاده از Full Backup و یا Differential Backup به زمانی برگرداند که Backupها ایجاد شده اند. در استفاده از این مدل ریکاوری دیتابیس در SQL Server ، با خالی شدن Transaction Logها، فضای بیشتری در هارد دیسک شما برای انجام فرآیندهای دیگر باز خواهد شد.
در حالت عادی تنظیمات بر روی حالت ریکاوری کامل قرار گرفته است. برای تغییر آن در SQL Server Management Studio وارد قسمت دیتابیس ها در Object Explorer شده، بر روی دیتابیس مورد نظرتان راست کلیک کرده و Properties را انتخاب کنید. در قسمت Options از صفحه باز شده امکان تغییر مدل ریکاوری وجود دارد.
نحوه بازنشانی دیتابیس از طریق Microsoft SQL Server Management Studio
جمع بندی
دیتابیس و یا به عبارت دیگر بانک اطلاعاتی به مجموعه اطلاعات با ساختار منظم گفته میشود. دیتابیس های اطلاعاتی معمولا قالبی برای دستگاهها و رایانهها قابل خواندن و قابل دسترسی باشند، ذخیره میشوند.
ذخیره اطلاعات و دادهها در دیتابیس از جمله روشهای مطمئن و ایمن برای حفظ اطلاعات است. ولی با این حال، دیتابیس ها به دلایل مختلف ممکن است با مشکلاتی مواجه شوند و اطلاعات آن از بین برود.
از این رو، ریکاوری و بازیابی اطلاعاتی که در اثر اختلال و مشکل در دیتابیس از بین رفتهاند، بهترین راه برای دسترسی مجدد به اطلاعات ذخیره شده در دیتابیس است. به این روش دیگر نگران از دست رفتن اطلاعات و داده های روی دیتابیس خود نباشید.
پایان
باتشکر از توجه شما
تهیه کننده :حسین حلاجی دانشجوی رشته علوم کامپیوتر
نام استاد:دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن
Dr.Maryam Hajiesmaeili
PhD of computer science from Kingston university of London