1. مستندات
  2. سرور اختصاصی
  3. بکاپ‌گیری اصولی و کامل در سرور اختصاصی ویندوز؛ از طراحی سناریو تا بازیابی امن

بکاپ‌گیری اصولی و کامل در سرور اختصاصی ویندوز؛ از طراحی سناریو تا بازیابی امن

Calendar

انتشار:

1404/12/20
Update Calendar

به روز رسانی:

1404/12/20

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

مرحله اول: شناسایی سناریوهای بکاپ در سرور اختصاصی ویندوز

سناریوی اول: بکاپ‌گیری در زمان فعال بودن سرویس‌ها

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

سناریوی دوم: حجم بالای داده و محدودیت منابع سرور

در برخی سرورها حجم فایل‌ها یا دیتابیس به‌قدری زیاد است که بکاپ کامل و مداوم باعث مصرف بالای منابع می‌شود. در این وضعیت مدیر سرور باید سناریوی بکاپ مرحله‌ای یا ترکیبی را در نظر بگیرد تا هم امنیت داده حفظ شود و هم فشار غیرمنطقی به سرور وارد نشود. این حالت معمولاً در سرورهای پرترافیک یا دارای آرشیو بزرگ دیده می‌شود.

سناریوی سوم: نیاز به بکاپ‌گیری کاملاً خودکار و زمان‌بندی‌شده

در سرورهایی که به‌صورت شبانه‌روزی استفاده می‌شوند بکاپ‌گیری دستی عملی نیست. در این سناریو بکاپ باید کاملاً خودکار باشد و در زمان‌های مشخص اجرا شود. این موضوع اهمیت اسکریپت‌نویسی و زمان‌بندی دقیق را مشخص می‌کند که در مراحل بعدی مقاله به آن پرداخته می‌شود.

سناریوی چهارم: محدودیت شبکه و لزوم نگهداری بکاپ داخل ایران

در بعضی مواقع دسترسی به اینترنت بین‌الملل محدود یا قطع می‌شود. در این شرایط بهتر است بکاپ روی زیرساخت داخل ایران و در یک فضای بکاپ اختصاصی نگهداری شود تا در هر وضعیت شبکه‌ای در دسترس باقی بماند. این موضوع نشان می‌دهد که محل ذخیره بکاپ بخشی از طراحی اصلی سیستم پشتیبان‌گیری است و یک انتخاب فرعی محسوب نمی‌شود.

سناریوی پنجم: حساسیت امنیتی فایل‌های بکاپ

در این سناریو فرض می‌شود که فایل‌های بکاپ نیز ممکن است هدف دسترسی غیرمجاز قرار بگیرند. بنابراین از همان ابتدا باید رمزگذاری، محدودسازی دسترسی و جداسازی کاربر مربوط به بکاپ در طراحی در نظر گرفته شود. با این نگاه، امنیت بکاپ هم‌سطح امنیت داده‌های اصلی سرور تعریف می‌شود.

در پایان این مرحله مدیر سرور باید بداند سرور او در کدام یک از این سناریوها یا ترکیبی از آن‌ها قرار دارد. این شناخت مبنای انتخاب ابزار روش اجرا و تنظیمات بکاپ در مراحل بعدی مقاله خواهد بود.

مرحله دوم: تعیین سیاست بکاپ

در این مرحله مدیر سرور باید سیاست کلی بکاپ را به‌صورت شفاف تعریف کند تا فرآیند بکاپ‌گیری به شکل منظم و قابل اعتماد اجرا شود. یکی از اصول پایه در این بخش اجرای سیاست سه نسخه‌ای است که ریسک از دست رفتن داده را به حداقل می‌رساند. بر اساس این سیاست حداقل باید سه کپی مستقل از بکاپ وجود داشته باشد.

  1. اولین نسخه باید روی خود سرور نگهداری شود تا در صورت بروز مشکلات جزئی امکان بازیابی سریع بدون نیاز به انتقال داده فراهم باشد. این نسخه بیشتر برای بازیابی‌های فوری و کم‌ریسک استفاده می‌شود.
  2. نسخه دوم باید روی فضای بکاپ اختصاصی ایران‌سرور داخل ایران نگهداری شود تا در زمان قطعی اینترنت یا محدودیت‌های شبکه همچنان دسترسی به بکاپ امکان‌پذیر باشد. این نسخه نقش اصلی را در سناریوهای بحرانی ایفا می‌کند که ارتباط با سرویس‌های خارجی برقرار نیست.
  3. نسخه سوم باید در یک محل دیگر داخل ایران یا روی یک فضای ذخیره‌سازی کاملاً جدا نگهداری شود تا در بدترین حالت ممکن که سرور اصلی و فضای بکاپ نزدیک به آن دچار مشکل می‌شوند یک نسخه امن و مستقل وجود داشته باشد. این تفکیک فیزیکی یا منطقی بخش مهمی از طراحی بکاپ اصولی است.

در کنار محل نگهداری بکاپ لازم است از ابتدا سیاست نگهداری نسخه‌ها مشخص شود. مدیر سرور باید بداند هر بکاپ تا چه مدت باید حفظ شود و چه زمانی حذف شود. به‌طور معمول نگهداری حداقل ۷ نسخه بکاپ روزانه و ۴ نسخه بکاپ هفتگی برای سایت‌ها و سرویس‌های حساس یک حداقل منطقی محسوب می‌شود و امکان بازگشت به وضعیت سالم را در بازه‌های زمانی مختلف فراهم می‌کند.

مرحله سوم: بکاپ‌گیری در ویندوز سرور

در ویندوز سرور بکاپ‌گیری باید در دو سطح جداگانه طراحی شود. یک بخش مربوط به بکاپ فایل‌ها و داده‌ها است و بخش دیگر مربوط به بکاپ سطح سیستم عامل است. اگر فقط از فایل‌ها بکاپ گرفته شود امکان بازگردانی کامل سرور در زمان خرابی سیستم وجود نخواهد داشت و اگر فقط بکاپ سیستم گرفته شود بازیابی جزئی فایل‌ها زمان‌بر خواهد بود. به همین دلیل این دو بخش باید هم‌زمان و مکمل یکدیگر در نظر گرفته شوند.

روش اول: بکاپ سطح سیستم با Windows Server Backup و wbadmin

بکاپ سطح سیستم این امکان را می‌دهد که در صورت خرابی کامل سرور بتوان کل سیستم عامل، تنظیمات بوت، سرویس‌ها و درایوهای حیاتی را بازیابی کرد. برای این کار ابتدا باید قابلیت Windows Server Backup روی سرور نصب شود. این قابلیت از طریق Server Manager یا PowerShell قابل نصب است.

نصب Windows Server Backup از طریق PowerShell باید با دسترسی Administrator انجام شود.

Install-WindowsFeature Windows-Server-Backup

بعد از نصب می‌توان با ابزار wbadmin بکاپ سطح سیستم را به یک مقصد جداگانه گرفت. مقصد بکاپ باید حتماً روی دیسکی غیر از درایو اصلی سیستم یا روی یک مسیر شبکه‌ای مستقل قرار داشته باشد.

نمونه بکاپ گرفتن روی یک دیسک جدا به شکل زیر است.

wbadmin start backup -backupTarget:E: -include:C: -allCritical -quiet

در این دستور تمام اجزای حیاتی سیستم عامل به همراه درایو مشخص‌شده بکاپ گرفته می‌شود و نیازی به تأیید دستی وجود ندارد.

اگر مقصد بکاپ یک Share شبکه‌ای باشد باید نام کاربری و رمز عبور نیز مشخص شود. در این حالت بکاپ می‌تواند روی یک سرور بکاپ جدا داخل شبکه نگهداری شود.

wbadmin start backup -backupTarget:\\BACKUP-SRV\winbackup -user:DOMAIN\backupuser -password:* -include:C: -allCritical -quiet

این روش برای سناریوهایی که نیاز به بازیابی کامل سرور وجود دارد ضروری است و پایه بکاپ‌گیری اصولی در ویندوز سرور محسوب می‌شود.

روش دوم: بکاپ فایل‌ها با robocopy

برای بکاپ فایل‌ها و داده‌های سایت استفاده از robocopy یک روش استاندارد و قابل اعتماد است. این ابزار امکان همگام‌سازی دقیق پوشه‌ها را فراهم می‌کند و در صورت حذف یا تغییر فایل‌ها مقصد را با منبع هماهنگ می‌کند.

برای مثال اگر سایت روی IIS و مسیر پیش‌فرض قرار دارد می‌توان از دستور زیر استفاده کرد.

$Date = Get-Date -Format "yyyy-MM-dd_HHmm"
robocopy C:\inetpub\wwwroot \\BACKUP-SRV\files\wwwroot /MIR /R:2 /W:5 /LOG:C:\backup_logs\wwwroot_$Date.log

در این دستور مسیر سایت به‌صورت کامل با مقصد بکاپ همگام می‌شود و یک فایل لاگ برای بررسی وضعیت بکاپ ایجاد می‌شود. این روش برای بازیابی سریع فایل‌ها بسیار کاربردی است.

بکاپ‌گیری از تنظیمات IIS

در سرورهایی که از IIS استفاده می‌کنند بکاپ فایل‌ها به‌تنهایی کافی نیست و تنظیمات IIS نیز باید ذخیره شوند. تنظیمات سایت‌ها Application Pool و Bindings همگی در IIS تعریف شده‌اند و بدون آن‌ها سایت به‌درستی اجرا نخواهد شد.

برای گرفتن بکاپ از تنظیمات IIS می‌توان از دستور زیر استفاده کرد.

%windir%\system32\inetsrv\appcmd add backup "iis_backup_$(Get-Date -Format yyyyMMdd_HHmm)"

بعد از اجرای این دستور تنظیمات IIS در مسیر داخلی ویندوز ذخیره می‌شود. برای اطمینان از ماندگاری بکاپ لازم است پوشه بکاپ IIS نیز به محل بکاپ منتقل شود.

robocopy C:\Windows\System32\inetsrv\backup \\BACKUP-SRV\files\iis_backup /E

بکاپ‌گیری از دیتابیس SQL Server

اگر روی ویندوز سرور از SQL Server استفاده می‌شود بکاپ دیتابیس باید به‌صورت جداگانه انجام شود. این کار معمولاً از طریق SQL Server ،Management Studio یا اجرای دستور T-SQL انجام می‌شود. مسیر ذخیره بکاپ باید روی یک دیسک جدا یا فضای بکاپ مستقل قرار داشته باشد.

نمونه دستور بکاپ کامل دیتابیس به شکل زیر است.

BACKUP DATABASE [YourDB]
TO DISK = N'E:\sql_backups\YourDB_full.bak'
WITH COMPRESSION, CHECKSUM;

در این دستور، نسخه پشتیبان به‌صورت فشرده ذخیره می‌شود و هم‌زمان صحت آن نیز بررسی می‌شود. این کار باعث می‌شود حجم فایل کمتر شود و از سالم بودن بکاپ اطمینان بیشتری حاصل شود.

مرحله چهارم: تفکیک بکاپ با فضای اختصاصی داخل ایران

در این مرحله باید بکاپ‌ها به‌صورت کامل از سرور اصلی جدا شوند. نگه داشتن بکاپ روی یک سرور ریسک بالایی دارد و در صورت خرابی سخت‌افزار یا از دسترس خارج شدن سرور عملاً بکاپ نیز از بین می‌رود. این جداسازی باید در سرور مجزا انجام شود تا حتی در شرایط قطعی یا محدودیت اینترنت بین‌الملل دسترسی به بکاپ حفظ شود.

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

سناریوی پیشنهادی برای نگهداری بکاپ داخل ایران

در یک سناریوی استاندارد داخل ایران شما باید از یک فضای بکاپ اختصاصی ایران‌سرور یا یک سرور بکاپ مستقل داخل دیتاسنتر ایران استفاده کنید. این فضا باید همیشه در دسترس باشد و وابستگی به اینترنت نداشته باشد.

در ویندوز سرور رایج‌ترین حالت این است که مقصد شما یک Share شبکه‌ای باشد. در این حالت هم بکاپ سطح سیستم با wbadmin می‌تواند مستقیم روی Share ذخیره شود و هم بکاپ فایل‌ها با robocopy به همان مقصد منتقل شود. نکته مهم این است که مقصد شبکه‌ای باید دسترسی محدود داشته باشد و برای عملیات بکاپ یک کاربر مشخص تعریف شود تا همه کاربران به بکاپ‌ها دسترسی نداشته باشند.

مرحله پنجم: تنظیم زمان‌بندی بکاپ در ویندوز سرور

در ویندوز سرور برای خودکارسازی بکاپ باید از Task Scheduler استفاده شود. در این روش یک Task تعریف می‌شود که در زمان مشخص و بدون دخالت دستی اجرا گردد. این کار باعث می‌شود بکاپ‌گیری منظم باشد و وابستگی به اجرای دستی از بین برود. هر Task باید با دسترسی Administrator اجرا شود تا به تمام بخش‌های سیستم دسترسی داشته باشد.

سناریو اول: زمان‌بندی بکاپ سطح سیستم با wbadmin

برای زمان‌بندی بکاپ سطح سیستم ابتدا باید یک فایل اسکریپت ساده ساخته شود تا دستور wbadmin در آن قرار گیرد. این کار مدیریت Task را ساده‌تر می‌کند و امکان تغییر یا بررسی دستورات را فراهم می‌سازد.

به‌عنوان مثال می‌توان فایل زیر را ایجاد کرد.

مسیر فایل اسکریپت:

C:\BackupScripts\backup_daily.cmd

محتوای فایل اسکریپت به شکل زیر است.

@echo off
wbadmin start backup -backupTarget:E: -include:C: -allCritical -quiet

بعد از ساخت فایل اسکریپت، باید وارد Task Scheduler شوید و یک تسک جدید ایجاد کنید. در این مرحله گزینه Create Task را انتخاب کنید و یک نام مشخص برای آن تعیین کنید. سپس در بخش Trigger، زمان اجرا را روی حالت Daily قرار دهید و ساعت مناسب برای انجام بکاپ را انتخاب کنید.

در بخش Action گزینه Start a program را انتخاب کنید و فایل backup_daily.cmd را به‌عنوان برنامه اجرایی معرفی کنید. با انجام این تنظیمات، بکاپ سطح سیستم هر روز در ساعت مشخص به‌صورت خودکار اجرا خواهد شد.

سناریو دوم: زمان‌بندی بکاپ فایل‌ها با robocopy

برای بکاپ‌گیری منظم از فایل‌ها بهتر است یک اسکریپت PowerShell جداگانه ایجاد شود تا هم لاگ‌گیری انجام شود و هم نام فایل‌های لاگ بر اساس زمان اجرا تغییر کند.

به‌عنوان نمونه می‌توان فایل زیر را ایجاد کرد.

مسیر فایل اسکریپت:

C:\BackupScripts\files_backup.ps1

محتوای فایل اسکریپت به شکل زیر است.

$Date = Get-Date -Format "yyyy-MM-dd_HHmm"
robocopy C:\inetpub\wwwroot \\BACKUP-SRV\files\wwwroot /MIR /R:2 /W:5 /LOG:C:\backup_logs\wwwroot_$Date.log

پس از ساخت اسکریپت باید یک Task جدید در Task Scheduler ایجاد شود. در بخش Action گزینه Start a program انتخاب می‌شود و برنامه زیر به‌عنوان دستور اجرا قرار می‌گیرد.

powershell.exe -ExecutionPolicy Bypass -File C:\BackupScripts\files_backup.ps1

با این تنظیم PowerShell بدون محدودیت اجرای اسکریپت اجرا می‌شود و فرآیند بکاپ فایل‌ها طبق زمان‌بندی مشخص انجام خواهد شد. این روش برای سایت‌ها و سرویس‌هایی که فایل‌های آن‌ها به‌صورت مداوم تغییر می‌کند بسیار کاربردی است.

مرحله ششم: تست بکاپ و اطمینان از قابلیت بازیابی

در این مرحله باید مطمئن شوید بکاپ‌هایی که تهیه شده‌اند واقعاً قابل استفاده هستند. بررسی حجم فایل یا وجود فایل بکاپ به‌تنهایی کافی نیست و هیچ تضمینی برای سالم بودن داده‌ها ایجاد نمی‌کند. تنها روش مطمئن برای ارزیابی بکاپ انجام بازیابی واقعی در یک محیط تست است. اگر این مرحله نادیده گرفته شود در زمان بحران امکان دارد بکاپ‌ها عملاً غیرقابل استفاده باشند.

تست: تست بازیابی در ویندوز سرور

در ویندوز سرور تست بکاپ باید حداقل یک بار به‌صورت عملی انجام شود. برای Windows Server Backup بهترین حالت انجام بازیابی روی یک ماشین تست جداگانه است تا کل فرآیند بدون ریسک بررسی شود.

اگر ماشین تست در دسترس نباشد حداقل باید File Restore انجام شود و یک مسیر مشخص از بکاپ بازگردانی گردد تا از سلامت داده‌ها اطمینان حاصل شود. در مورد SQL Server نیز لازم است بکاپ روی یک دیتابیس تست Restore شود و چند جدول یا رکورد بررسی گردد.

مرحله هفتم: تنظیم موارد امنیتی بکاپ

در این مرحله باید بکاپ‌ها دقیقاً با همان حساسیتی مدیریت شوند که دیتابیس اصلی یا اطلاعات حیاتی سرور مدیریت می‌شوند. فایل بکاپ معمولاً شامل تمام داده‌های مهم سیستم است و در صورت دسترسی غیرمجاز می‌تواند بزرگ‌ترین نقطه ضعف امنیتی سرور باشد. به همین دلیل هم محدودسازی دسترسی و هم رمزگذاری بکاپ باید از ابتدا و به‌صورت جدی اجرا شود.

امنیت بکاپ در ویندوز سرور

در ویندوز سرور نیز بکاپ باید روی یک دیسک جداگانه یا فضای ذخیره‌سازی مستقل نگهداری شود. مسیر بکاپ نباید روی درایو سیستم عامل قرار داشته باشد.

سطح دسترسی NTFS باید به‌گونه‌ای تنظیم شود که فقط گروه Backup Operators یا یک کاربر مشخص امکان دسترسی به فایل‌های بکاپ را داشته باشد. سایر کاربران حتی نباید امکان مشاهده محتویات پوشه بکاپ را داشته باشند.

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

با رعایت این موارد امنیت بکاپ در سطح قابل قبولی قرار می‌گیرد و فایل‌های بکاپ به یک نقطه ضعف امنیتی در زیرساخت تبدیل نخواهند شد.

مرحله هشتم: خودکارسازی پاکسازی و نگهداری نسخه‌های بکاپ

بعد از مدتی حجم بکاپ‌ها به‌صورت طبیعی افزایش پیدا می‌کند و اگر پاکسازی انجام نشود فضای ذخیره‌سازی به‌سرعت پر خواهد شد. به همین دلیل لازم است حذف نسخه‌های قدیمی بر اساس سیاست نگهداری از قبل تعریف‌شده به‌صورت کاملاً خودکار انجام شود. این کار نباید به بررسی دستی وابسته باشد زیرا در عمل فراموش می‌شود یا با تأخیر انجام می‌گیرد.

در این مرحله باید مشخص شود هر نوع بکاپ تا چه مدت نگهداری می‌شود و بعد از پایان این بازه زمانی به‌صورت خودکار حذف گردد. اجرای منظم این فرآیند باعث می‌شود هم فضای ذخیره‌سازی مدیریت شود و هم فقط نسخه‌های معتبر و موردنیاز در دسترس باقی بمانند.

ادغام پاکسازی با فرآیند بکاپ

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

با خودکارسازی این مرحله فرآیند بکاپ‌گیری پایدارتر می‌شود و مدیریت فضای ذخیره‌سازی بدون نیاز به دخالت دستی انجام خواهد شد.

مرحله نهم: چک‌لیست عملی نهایی برای سرور اختصاصی ویندوز

در پایان باید یک روند ثابت و مشخص برای بکاپ‌گیری وجود داشته باشد تا هیچ مرحله‌ای جا نیفتد. این چک‌لیست خلاصه‌ای از کل فرآیند بکاپ است و رعایت ترتیب آن باعث می‌شود بکاپ‌ها قابل اعتماد و قابل بازیابی باقی بمانند.

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

در بازه‌های منظم حداقل ماهی یک‌بار باید بازیابی واقعی بکاپ روی یک محیط تست انجام شود تا از سالم بودن داده‌ها اطمینان حاصل شود. در نهایت سیاست نگهداری باید با حذف خودکار بکاپ‌های قدیمی اجرا شود تا فضای ذخیره‌سازی به‌درستی مدیریت شود.


در این مقاله روش طراحی سناریوی بکاپ، بکاپ از فایل‌های سیستم، دیتابیس، زمان‌بندی درست، نکات امنیتی و تست بازیابی در سرور اختصاصی ویندوز آموزش داده شد تا بتوانید در هر شرایطی داده‌های خود را بازیابی کنید.

آیا توانستیم چالش شما را حل کنیم؟