اخبار و آموزش شبکه و نرم افزار

هر آنچه شما از دنیا می خواهید

آشنایی با روش های ایجاد نسخه پشتیبان (بکاپ) در SQL Server

مقدمه

با گذر زمان شرکتها و سازمان‌ها با حجم بالا و غیر قابل کنترلی از اطلاعات روبرو می‌شوند که دسته‌بندی و نظم‌دهی به آنها روزبه‌روز دشوارتر شده و مهمتر اینکه بدون حمایت لازم رها شده‌اند. Microsoft SQL Server محصولی از شرکت معروف مایکروسافت می‌باشد که جهت مدیریت بانک‌های اطلاعاتی مورد استفاده قرار می‌گیرد. در این نرم افزار ابزارهای بسیار مختلفی به منظور ایجاد و مدیریت پایگاه داده‌ها و بانک‌های اطلاعاتی وجود دارد که شما می‌توانید با استفاده از آنها یک بانک عظیم اطلاعاتی ایجاد کنید و بر روی اطلاعات موجود در آن مدیریت نمایید. باید توجه داشت در صورت بروز هرگونه خطا و یا مشکل این امکان وجود دارد که تمام و یا بخشی از اطلاعات نرم افزار موجود در دیتابیس از دست برود. بنابراین می‌بایست برای اطمینان از صحت و سلامت اطلاعات، از دیتابیس نرم افزار Backup تهیه گردد تا در صورت بروز هرگونه مشکل بتوان اطلاعات را به راحتی بازیابی کرد. در این مقاله صرفاً انواع روش‌های بکاپ‌گیری توضیح داده می‌شود. شما می‌توانید روش انجام هر یک از بکاپ‌ها را در مقاله‌ی نحوه پشتیبان‌گیری (Backup) و بازگردانی (Restore) اطلاعات از دیتابیس در SQL Server بیاموزید.

در چه مواقعی ممکن است به Backup احتیاج پیدا کنیم؟

  • گم شدن یا حذف شدن اطلاعات
  • بازگرداندن به نسخه قبلی بعد از تغییرات اعمال شده
  • هزینه‌بر بودن تولید مجدد اطلاعات در صورت حذف شدن آنها
  • غیر‌ممکن بودن بازگردانی اطلاعات در برخی موارد

انواع روش های پشتیبان‌گیری


روش Full Backup

از معمول‌ترین روش Backupگیری از SQL Server روش Full Backup می‌باشد که به این روش Database Backup هم گفته می‌شود. در این نوع Backupگیری، از Database موجود به همراه Transaction Logهای موجود در آن Backup گرفته می‌شود و با این روش شما براحتی می‌توانید اطلاعات خود را بازیابی (Recover) کنید. این روش از ساده‌ترین روشهای بازیابی اطلاعات می‌باشد چرا که تمامی اطلاعات در یک فایل بکاپ جای گرفته اند و یکجا بازیابی می‌شوند.

روش Differential Backup

یکی دیگر از روشهای معمول Backupگیری، روش Differential است. در این روش، فقط از تغییراتی که در Database موردنظر از آخرین Backup گرفته شده انجام شده است، Backup گرفته می‌شود. لازم به ذکر است که اگر از Database شما تاکنون backupای گرفته نشده باشد، اولین بار که بصورت Differential بکاپ بگیرید از تمامی اطلاعات دیتابیس Backup گرفته می‌شوند. در واقع اگر شما یک Full Backup و پس از آن یک Differential Backup بگیرید، اطلاعات موجود در Differential Backup شما فقط شامل اطلاعات تغییر کرده بعد از Full Backup می‌باشد. زمانی‌که می‌خواهید Backupی از SQL سرور خود را بازیابی کنید، کافیست ضمن بازگردانی آخرین Full Backup، فقط اطلاعات موجود در آخرین Differential Backup را نیز بازیابی کنید تا اطلاعات به صورت کامل بازیابی شوند. در این حالت سایر Differential Backupهای موجود نادیده گرفته می‌شوند.

روش Transaction Log Backup

در صورتی که Recovery Model پایگاه داده‌های شما در حالت Full یا Bulk-Logged قرار داشته باشد، این امکان را به شما می‌دهند تا بتوانید از Transaction Logهای خود نیز Backup تهیه کنید. اگر شما در ساختار خود Transaction Log Backup را دیده باشید و به همراه آن Full Backup نیز داشته باشید، این امکان را برای شما فراهم می‌آورد تا چیزی شبیه به Restore Point ویندوز را برای SQL سرور ایجاد کنید، بدین معنا که اگر شخصی بصورت عمدی و یا تصادفی کلیه اطلاعات موجود در Database‌های شما را حذف کند، شما می‌توانید با استفاده از این Backupها، اطلاعات خود را به حالت عملیاتی قبل از حذف اطلاعات بازیابی کنید.

روش Partial Backup

بکاپ‌گیری جرئی روش دیگری از بکاپ‌گیری است که از نسخه SQL Server 2005 معرفی گردید. این نوع بکاپ به شما این امکان را می‌دهد تا از Primary FileGroupها، تمامی FileGroupهای خواندنی-نوشتنی (Read-Write) و تمامی Fileهای تعریف شده به صورت اختیاری بکاپ تهیه کنید. این نوع بکاپ‌گیری یک مزیت به شمار می‌رود، در صورتی که شما FileGroupهای فقط خواندنی (Read-Only) در دیتابیس داشته باشید و نخواهید همواره از تمامی دیتابیس بکاپ تهیه کنید.

روش File Backup

این روش به شما این امکان را می‌دهد که بتوانید بجای اینکه از کل Database بکاپ تهیه کنید، چندین فایل Data در Database خود بسازید و از هر فایل به صورت مستقل Backup تهیه کنید. یکی از دلایل مهم استفاده از این روش Backupگیری زمانیست که شما یک Database دارید که دارای چندین فایل با حجم‌های زیاد است و میخواهید هر کدام از این فایل ها را بصورت جداگانه و مستقل Backup بگیرید. باید توجه داشته باشید که در اغلب موارد شما فقط یک فایل در Database خود دارید که در این صورت این روش معمولا به کار شما نمی‌آید. این نوع Backup معمولا در محیطهای Enterpriseی انجام می‌شود که حجم عظیمی از اطلاعات در آن وجود دارد.

روش Copy-Only Backup

زمانیکه از روش Copy Only Backup برای Backupگیری از Databaseها استفاده می‌کنید، تقریبا Backupی مشابه Full Backup گرفته‌اید که در آن تمامی اطلاعات موجود در Databaseها و Logها و سایر موارد مرتبط وجود دارد، اما تفاوت در این است که در صورتیکه شما از Databaseهای خود Full Backup بگیرید، Plan بکاپ‌گیری Differential و تغییراتی که در Databaseها انجام شده است تغییر می‌کند، اما در حالت Copy Only هیچ گونه تغییری در Backup Plan شما پیش نمی‌آید و تنها یک کپی با تمام مشخصات از اطلاعات موجود برداشته می‌شود. معمولا اینگونه backupها بصورت دستی و برای بررسی و تحلیل استفاده می‌شود.

روش Mirror Backup

از این نوع روش Backupگیری به عنوان Database Mirroring نیز یاد می‌شود. از این نوع روش Backupگیری بیشتر برای بالابردن دسترسی‌پذیری یا Availability پایگاه‌های داده استفاده می‌شود. شما در این روش نیازمند حداقل دو سرور مجزا هستید که بتوانند Databaseهای خود را با همدیگر انطباق زمانی (Synchronize) دهند. این روش بکاپ‌گیری بر اساس هر Database انجام می‌گیرد و در اصطلاح فنی به آن Per Database Basis گفته می‌شود. توجه کنید که این روش صرفا با Recovery Model در حالت Full کار می‌کند. در این روش Backupگیری، اگر هر اطلاعاتی در Databaseها ثبت شود، بلافاصله با Database دیگر که بر روی سرور دیگری قرار دارد Replicate و یکپارچه‌سازی انجام می‌شود.