Server یکی از محبوبترین و پرکاربردترین نرم افزارهای مدیریت پایگاه های داده رابطه ای است که توسط شرکت مایکروسافت ارایه شده است. آخرین نسخه این نرم افزار، نسخه 2022 است. یکی از ابتدایی ترین و مهم ترین کارها برای مدیریت دیتابیس ها در SQL Server انجام بکاپ گیری و بازیابی یا ریستور کردن بکاپ است. در این آموزش ما قصد داریم نحوه بکاپ و بازیابی دیتابیس در SQL Server را به طور کامل شرح دهیم. ابتدا به بررسی انواع مدلهای ریکاوری در SQL Server می پردازیم. اگر هنوز SQL Server را نصب نکرده اید؛ میتوانید برای آموزش نصب به این لینک مراجعه کنید.

انواع Recovery Model در SQL Server :

در SQL Server برای تعیین انواع بکاپ گیری نیاز به تعیین ریکاوری مدل است. ریکاوری مدل تعیین میکند که آیا امکان ایحاد بکاپ از لاگ سرور وجود دارد یا خیر. لاگ سرور یا همان Transaction Log، فایلی است که تمامی اقداماتی که کاربران در SQL Server انجام می دهند را در خود ذخیره میکند و برای بازیابی کامل دیتابیس به یک زمان خاص نیاز است علاوه بر بازیابی بکاپ کامل دیتابیس، فایل لاگ سرور نیز بازیابی شود. در SQL Server سه مدل ریکاوری وجود دارد که به دونوع مهم آنها می پردازیم.

ریکاوری مدل ساده یا Simple Recovery Model :

در این حالت امکان بکاپ گیری از لاگ سرور وجود ندارد؛ و فقط میتوان به صورت کامل (full ) و یا Differential از دیتابیس بکاپ گرفت. در این حالت با پر شدن فایل لاگ ، سرور شروع به پاک کردن فایل لاگ میکند و امکان بازیابی آن قسمت از دیتا از دست می رود. بنابر این در حالتی که از دست رفتن دیتا (Data Loss) برای ما ایرادی نداشته باشد؛ از ریکاوری مدل Simple استفاده میکنیم. برای تعیین نوع ریکاوری مدل دیتابیس نیز میتوانیم روی دیتابیس کلیک راست کرده، از سمت راست گزینه Options را انتخاب کرده و از از منوی بازشونده Recovery Model، مدل ریکاوری را انتخاب کنیم.

database recovery types

ریکاوری مدل کامل یا Full Recovery Model :

در این حالت امکان بکاپ گیری از لاگ سرور هم وجود دارد؛ و میتوان به صورت کامل (full ) و یا Differential و از لاگ دیتابیس (Transaction Log) بکاپ گرفت. در این حالت با پر شدن فایل لاگ، سرور هنگام انجام هر عملیاتی خطای پر شدن لاگ را نسان داده و عملیات را انجام نمی دهد. اینحالت ریکاوری زمانی که دیتا ها برای ما بسیار مهم است؛ و نباید به هیچ وجه از دست بروند؛ مناسب است. برای تعیین نوع ریکاوری مدل دیتابیس نیزمجدد میتوانیم روی دیتابیس کلیک راست کرده، از سمت راست گزینه Options را انتخاب کرده و از از منوی بازشونده Recovery Model، مدل ریکاوری را انتخاب کنیم.

پس از بررسی انواع ریکاوری مدل ها به بررسی بکاپ گیری از دیتابیس می پردازیم. برای این کاردر صورتی که دیتابیسی ندارید؛ ابتدا در SSMS با نوشتن و اجرای دستور زیر یک دیتابیس نمونه ایجاد کنید.

Create Database TestDB

 بکاپ گیری کامل (Full Backup):

 در این حالت کلیه دیتا ها و تغییرات دیتابیس از ابتدا تا کنون بکاپ گرفته می شود؛ پس قاعدتا نسبت به سایر انواع بکاپ زمان و حجم بیشتری را اشغال میکند. برای اینکار بر روی دیتابیس مورد نظر کلیک راست کرده و از منوی Tasks گزینه Backup… را انتحاب کنید.در پنجره باز شده از قسمت Backup Type گزینه Full را انتخاب کنید. در قسمت Backup Component گزینه Database راانتخاب کنید. برای ذخیره فایل بکاپ در دیسک از قسمت Back up to گزینه Disk را انتخاب کنید. برای انتخاب مسیر جدید برای ذخیره فایل بکاپ، بر روی Add کلیک کرده در قسمت Filename برو روی سه نقطه کلیک کرده و به مسیر مورد نظر بروید.

backup database

همچنین در پنجره باز شده در قسمت File Name نامی را برای فایل بکاپ خود انتخاب نمایید. به عنوان مثال ما نام b.bak را انتخاب کرده ایم. دقت کنید مسیری که میخواهید فایل بکاپ در آن ذخیره شود باید مسیری باشد که یوزر Service Account مربوط به SQL Server به آن مسیر دسترسی داشته باشد. پس از انتخاب مسیر و کلیک بر روی OK بکاپ ایجاد می شود.


بکاپ گیری Differential و لاگ (Transaction Log) :

برای هر دو حالت بکاپ ، نیاز است که ابتدا بکاپ Full گرفته شود. برای گرفتن این بکاپ ها، برروی دیتابیس مورد نظر کلیک راست کرده و از منوی Tasks گزینه Backup… را انتحاب کنید. سپس از Backup Type گزینه Differential یا Transaction Log را انتخاب کنید. اگر در لیست، گزینه Transaction Log وجود ندارد به این معنا است که ریکاوری مدل دیتابیس شما Simple است.

بازیابی (Restore) دیتابیس:

با بازیابی دیتابیس می توانید تغییراتی که ناخواسته در دیتابیس ایجاد شده را معکوس کنید و یا در یک سرور دیتابیس را به صورت کامل ایجاد کنید. برای باز یابی دیتابیس، برروی دیتابیس مورد نظر کلیک راست کرده  و از منوی Tasks گزینه Restore… و سپس Databases را انتخاب کنید (اگر دیتابیس وجود ندارد بر روی پوشه Database راست کلیک کنید و Restore Databases را انتخاب کنید ). در پنجره باز شده از قسمت Source گزینه Device را انتخاب کنید و از قسمت سه نقطه با زدن بر روی دکمه Add مسیری که فایل بکاپ وجود دارد را انتخاب کنید.

با انتخاب گزینه OK فایل بکاپ شما در صورت عدم وجود مشکل بازایابی می شود. دقت کنید یوزر Service Account برای SQL Server باید به مسیری که فایل بکاپ در آن قرارگرفته است؛ دسترسی داشته باشد.


پایان