مقدمه
در نرم افزار SQL Server به دو روش به صورت دستی و به صورت خودکار امکان پشتیبانگیری از دیتابیس وجود دارد. در ادامه به
شرح جزئیات در خصوص نحوه انجام بکاپگیری به این دو روش پرداخته میشود.
بکاپگیری از SQL به صورت دستی (Manual)
عملیات بکاپگیری به صورت دستی را میتوان به دو روش زیر انجام داد:
روش اول
1. در ابتدا پنجره SQL Server Management Studio را باز کرده و در قسمت Object Explorer با ورود به بخش databases، بر روی
دیتابیس موردنظر کلیک راست کرده و از منوی Task گزینه Backup را انتخاب کنید.

2. با توجه به موارد مشخص شده در تصویر زیر نوع بکاپ را مشخص کنید و سپس گزینه Add را انتخاب کنید

نکته قابل توجه اینکه جهت بکاپگیری از Transaction Logها و محتوای Files and Groups میبایست Recovery Model دیتابیس
مورد نظر، در حالت Full قرار داشته باشد. جهت تغییر Recovery Model، بر روی دیتابیس موردنظر Properties گرفته و در تب Option
گزینه Recovery Model را تغییر میدهیم.

3. در ادامه میبایست محل ذخیره و نام بکاپ را مشخص کرد.

4. توجه داشته باشید فایل بکاپ را حتما میبایست با پسوند bak ذخیره نمایید. در ادامه بر روی دکمه Ok کلیک نمایید.

5. درصورتیکه بکاپگیری با موفقیت انجام شود صفحه ی زیر را مشاهده خواهید کرد:

روش دوم
در این روش میتوان از طریق T-SQL عملیات بکاپگیری را انجام داد. در ادامه روش بکاپگیری به روش T-SQL برای انواع روش های
بکاپگیری شرح داده میشود.
انجام عملیات Full Backup به روش T-SQL
1. وارد کنسول SQL Server Management Studio شوید و روی گزیه New Query در بالای صفحه کلیک کنید.

2. دستور زیر را وارد کرده و روی گزینه Execute کلیک کنید (دستور زیر دیتابیس BinaDB را در پوشه \:c با نام BinaDB-Backup-Test.BAK در
حالت Full Backup ذخیره میکند).
BACKUP DATABASE BinaDB TO DISK = 'C:\BinaDB-Backup-Test.BAK'
GO

توجه داشته باشید پس از اجرای Query، پیغام "Query Executed Successfully" که بیانگر اجرای موفقیت آمیز دستور بر روی دیتابیس میباشد،
نمایش داده شود.
انجام عملیات Differential backup به روش T-SQL
1. مانند قبل، وارد کنسول SQL Server Management Studio شوید و روی گزینه New Query در بالای صفحه کلیک کنید.
2. دستور زیر را وارد کرده و روی گزینه Execute کلیک کنید (دستور زیر دیتابیس BinaDB را در پوشه \:c با نام
BinaDB-Backup-Test.DIF به روش Differential Backupذخیره میکند).
BACKUP DATABASE BinaDB TO DISK = 'C:\BinaDB-Backup-Test.DIF' WITH DFFERENTIAL
GO

توجه داشته باشید پس از اجرای Query، پیغام "Query Executed Successfully" که بیانگر اجرای موفقیت آمیز دستور بر روی دیتابیس میباشد،
نمایش داده شود.
انجام عملیات File Backup به روش T-SQL
در رابطه با ارائه توضیحات در خصوص این روش بکاپگیری، برای مثال دیتابیسی با نام BinaDB ایجاد کردهایم که این دیتابیس دارای دو
Data File با نامهای "BinaDB" و "BinaDB2" و یک Log File است. مراحل زیر نشان میدهد چگونه میتوان از هر File به صورت جداگانه
بکاپ تهیه کرد.
1. همانند قبل، وارد کنسول SQL Server Management Studio شوید و روی گزینه New Query در بالای صفحه کلیک کنید.
2. دستور زیر را وارد کرده و روی گزینه Execute کلیک کنید (دستور زیر دو فایل BinaDB1 و BinaDB2 را از دیتابیس
BinaDB در پوشه \:C را به ترتیب با نامهایBinaDB_BinaDB1.FIL و BinaDB_BinaDB2.FIL به روش File Backup ذخیره میکند).
BACKUP DATABASE BinaDB FILE = 'BinaDB1'
TO DISK = 'C:\BinaDB_BinaDB1.FIL'
GO
BACKUP DATABASE BinaDB FILE = 'BinaDB2'
TO DISK = 'C:\BinaDB_BinaDB2.FIL'
GO

توجه داشته باشید پس از اجرای Query، پیغام "Query Executed Successfully" که بیانگر اجرای موفقیت آمیز دستور بر روی دیتابیس میباشد،
نمایش داده شود.
انجام عملیات FileGroup Backup به روش T-SQL
1. وارد کنسول SQL Server Management Studio شوید و روی گزینه New Query در بالای صفحه کلیک کنید.
2. دستور زیر را وارد کرده و روی گزینه Execute کلیک کنید (دستور زیر FileGroup موجود با نام ReadOnly را از دیتابیس
BinaDB در پوشه \:C را با نامBinaDB_ReadOnly.FLG به روش FileGroup Backup ذخیره میکند).
BACKUP DATABASE BinaDB FILEGROUP = 'ReadOnly'
BACKUP DATABASE BinaDB FILEGROUP = 'ReadOnly'
یGO

توجه داشته باشید پس از اجرای Query، پیغام "Query Executed Successfully" که بیانگر اجرای موفقیت آمیز دستور بر روی دیتابیس میباشد،
نمایش داده شود.
انجام عملیات Transaction Log Backup به روش T-SQL
1. وارد کنسول SQL Server Management Studio شوید و روی گزینه New Query در بالای صفحه کلیک کنید.
2. دستور زیر را وارد کرده و روی گزینه Execute کلیک کنید (دستور زیر Transaction Logهای دیتابیس BinaDB را در پوشه \:C با
نام BinaDB-TRNBackup-Test.TRNذخیره میکند).
BACKUP LOG BinaDB TO DISK = 'C:\BinaDB-TRNBackup-Test.TRN'
GO

توجه داشته باشید پس از اجرای Query، پیغام "Query Executed Successfully" که بیانگر اجرای موفقیت آمیز دستور بر روی دیتابیس میباشد،
نمایش داده شود.
انجام عملیات Partial Backp به روش T-SQL
در رابطه با ارائه توضیحات در خصوص این روش بکاپگیری، برای مثال دیتابیسی با نام BinaDB ساخته ایم که سه Data File و یک
Log File دارد. دو تا از Data Fileها به صورت Primary FileGroup و یکی از آنها به صورت Read-Only FileGroup میباشد. دستور زیر
نشان میدهد چگونه میتوان یک بکاپ جزئی ایجاد کرد.
ایجاد Full Partial Backup
همانند روشهای قبل، بر روی New Query کلیک کنید و پس از وارد کردن دستورات زیر بر روی Execute کلیک کنید.
BACKUP DATABASE BinaDB READ_WRITE_FILEGROUPS
TO DISK = 'C:\BinaDB_Partial.BAK'
GO

ایجاد Differential partial Backup
در این روش نیز مانند روشهای قبل، بر روی New Query کلیک کنید و پس از وارد کردن دستورات زیر بر روی Execute کلیک کنید.
BACKUP DATABASE BinaDB READ_WRITE_FILEGROUPS
TO DISK = 'C:\BinaDB_Partial.DIF'
WITH DIFFERENTIAL
GO

توجه داشته باشید پس از اجرای Query، پیغام "Query Executed Successfully" که بیانگر اجرای موفقیت آمیز دستور بر روی دیتابیس میباشد،
نمایش داده شود.
بکاپگیری از SQL به صورت خودکار (Maintenance Plan)
1. برای استفاده از این روش بکاپگیری میبایست سرویس SQL Server Agent در حالت Running قرار داشته باشد. لذا برای بررسی
اینکه سرویس مذکور در حالت Runningقرار دارد یا خیر، هم میتوان وارد کنسول Services.msc شد و وضعیت سرویس را بررسی کرد
(در صورتی که سرویس Stop بود آن را Start کنید) و هم می توانید از طریق کنسول SQL Server Management Studio پس از اتصال
به Instance موردنظر، در منوی Object Explorer مشاهده کرد که آیا سرویس فعال و در حال اجرا است یا خیر؟

2. پس از اینکه اطمینان حاصل کردید سرویس SQL Server Agent در حال اجرا میباشد، از منوی Object Explorer گزینه Management
را انتخاب و در زیرمجموعه آن گزینهMaintenance Plan را انتخاب کنید و با کلیک راست بر روی آن وارد Maintenance Plan Wizard شوید.

3. هنگامی که پنجره Pop-Up مربوط به Maintenance Plan Wizard باز شد، در اولین صفحه، گزینه Next انتخاب میکنیم.

4. در صفحه بعد با انتخاب نام Plan و ارائه توضیحات در قسمت Description، گزینه Change را جهت انجام تنظیمات Backup Plan انتخاب
کنید.

5. تنظیمات موردنظر را (شامل تنظیمات زمانی و نوع Plan و شرایط وقوع آن) جهت ایجاد برنامه بکاپ وارد کنید.

6. در مرحله بعد، نوع عملیات Full یا Differential یا Transaction Log را انتخاب کنید.

7. پس از آن از قسمت (Database(s، دیتابیس (های) موردنظر جهت اجرای Plan را انتخاب کنید و محل ذخیره فایلهای Backup را مشخص
کنید.

8. در نهایت تمامی تنظیمات انجام شده را مشاهده خواهید کرد که با فشردن دکمه Finish عملیات نهایی شده و Plan موردنظر ایجاد میگردد.

روش بازگردانی (Restore) اطلاعات
جهت بازگردانی اطلاعات از یک Database که قبلا از آن Backup تهیه شده است به روش زیر عمل کنید:
1. پس از اتصال به کنسول SQL Server Management Studio روی دیتابیس کلیک راست کرده و از منوی Task گزینه Resote و سپس
Databases را انتخاب کنید.

2. از قسمت Source For Restore گزینه From Device را انتخاب کرده و فایل Backupی که پیشتر تهیه شده است را انتخاب کنیم.

3. جهت جایگزین (Replace) شدن Database از منوی Options گزینه Overwrite the existing database را انتخاب کنید.

لازم به ذکر است در نسخه SQL Server 2014 و بالاتر، جهت مشخص کردن محل ذخیرهی جدید برای فایلهای دیتابیس، از تب Files بر
روی گزینه Relocate all files to folder کلیک کنید و محل ذخیرهای جدید برای Data File Folderها و Log File Folderها تعیین کنید.

نکات قابل توجه در بکاپگیری از SQL
پیشنهاد میشود به دلیل حجم بالای تراکنشها در SQL Server، زمان انجام عملیات بکاپ خودکار، خارج از ساعات کاری باشد، برای مثال ساعات
پایانی روز.
پیشنهاد میشود فایلهای بکاپ بر روی سرور و یا دیسک دیگری ذخیره شود تا در صورت بروز هرگونه اشکال در سرور SQL، فایلهای بکاپ از
بین نرود.
جهت انجام عملیات بکاپگیری، یوزر میبایست دسترسی Sysadmin را به عنوان Server Roles و دسترسیهای db_owner و
db_backupoperator را به عنوان Database Roles داشته باشد. بدین منظور در نرمافزار SQL Server Management Studio
پس از اتصال به Instance به مسیر Security و سپس Login رفته و با کلیک راست بر روی یوزر موردنظر گزینه Properties را انتخاب مکنید
و تنظیمات را مطابق زیر اعمال نمایید.




















