محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش Backup گیری خودکار از Database های SQL Server به زبان ساده

در این مطلب درباره آموزش پشتیبان (Backup) گیری خودکار از SQL Server صحبت کنیم. بکاپ گیری خودکار از بانک اطلاعاتی ، یکی از مهمترین نکات در آموزش SQL Server است که شما باید با آن آشنا باشید. اگر مقاله های قبلی من در خصوص Backup گیری از اکتیودایرکتوری را به خاطر داشته باشید یک قانون همیشگی در خصوص ادامه حیات شما در حوزه IT وجود دارد و آن قانون Backup است و Backup است و Backup . البته این جمله از خودم نیست و در واقع یک قانون در حوزه امنیت اطلاعات هست.امروزه تقریبا بیش از 90 درصد Database هایی که برای نرم افزارهای اتوماسیون ، مالی ، انبارداری و حتی سرورهای سازمانی مثل SharePoint یا Lync استفاده می شود چیزی به غیر از MSSQL Server نیست .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

باید بدانید که بدون شک در مراحل زمانی مشخص و مرتب از Database های موجود در این سرور Backup بگیرید ، در زمان های قدیم ( یعنی زمانی که بنده اصلا کاری به کار SQL سرور نداشتم D: ) انجام عملیات Backup گیری از SQL سرور چندان آسان نبود و مستلزم اجرای یک سری دستورات و Query ها در SQL سرور بود. اما شخصی که تا کنون کاری به SQL سرور نداشته و به عنوان مدیر یک شبکه مسئولیت نگهداری از داده ها را دارد کار ساده ای با این نرم افزار نداشت .

در SQL سرور 2008 نسخه R2 که امروز می خواهیم در خصوص آن توضیح دهیم ، شرکت مایکروسافت یک روش بسیار بسیار ساده برای گرفتن Backup آن هم بصورت زمانبندی شده در اختیار مدیرهای شبکه قرار داده است که براحتی و تنها با چند کلیک می توانید از همه اطلاعات موجود در Database های خود backup بگیرید. در این مقاله شما بصورت گام به گام از کلیه اطلاعات موجود در Instance ای به نام ITPRO در MSSQL Server بصورت زمانبندی شده Backup میگیرید و این Backup ها را نیز بعد از مدتی باز هم بصورت مدت دار از دستگاه ذخیره سازی اطلاعات حذف می کنید تا فضای اضافه ای اشغال نکنند.

چگونه بصورت خودکار از Database های SQL بکاپ بگیریم ؟

خوب قبل از اینکه یک راست به سراغ فرآیند Backup گیری برویم باید مطمئن شوید که سرویس SQL Server Agent در حالت running قرار دارد در غیر اینصورت نمی توانید از این روش برای Backup گیری استفاده کنید. برای بررسی این مورد هم می توانید وارد کنسول Services.msc شوید و هم می توانید از طریق کنسول SQL Management Studio بعد از connect شدن به Instance موجود در SQL در قسمت Object Explorer بررسی کنید که آیا سرویس فعال و در حال اجرا است یا خیر ، اگر نبود براحتی بر روی سرویس مورد نظر راست کلیک کرده و مشابه تصویر پایین بر روی Start کلیک می کنیم.

بررسی فعال بودن سرویس SQL Server Agent

از Object Explorer قسمت Management Node را باز کنید و گزینه Maintenance Plan را انتخاب کنید.توجه کنید که برای اینکه بتوانید یک برنامه Backup زمانبندی شده توسط Maintenance Plan ها داشته باشید باید دسترسی یا بهتر بگوییم role ای به نام SYSADMIN را داشته باشید ، البته من فرض را بر این میگیرم که شما دسترسی کامل را دارید زیرا هیچ مدیر سیستمی در ایران توانایی تحمل محدودیت را ندارد و در همه جا Admin می باشد ( باور کنید ، مدیر شبکه خود را مالک همه سیستم ها می داند چه به او ربطی داشته باشد و چه ربطی نداشته باشد ) به هر حال اگر نمی توانید Maintenance را مشابه آنچه در تصویر زیر مشاهده می کنید ببینید بررسی کنید که Permission های لازم را به این Instance داشته باشید.

تصویر دوم : وارد شدن به محیط Maintenance Plan در SQL Server Management Studio برای گرفتن backup از SQL

مشابه آنچه در تصویر پایین می بینید بر روی Maintenance Plan راست کلیک کرده و گزینه new maintenance plan را انتخاب کنید.

تصویر سوم : ایجاد یک maintenance plan برای Backup گیری از SQL سرور

در کادری که در پایین مشاهده می کنید یک اسم برای این maintenance plan ایجاد کنید ، اسم را متناسب با فرآیندی که قرار است در اینجا انجام شود تعیین کنید برای مثال بنده اسم را ITPRO Database Daily Backup گذاشته ام ، شما می توانید بر اساس نیاز خود هر اسمی که دوست دارید را انتخاب کنید فقط لطفا یک اسم با معنی ایجاد کنید نه هر چیزی که فقط کاراکتر باشد ( مورد داشتیم اسم Maintenance Mode به شکل Nazijoon وارد شده است ، به خداااا ( . اسم را ایجاد و بر روی OK کلیک کنید.

تصویر چهارم : ایجاد کردن یک اسم برای Maintenance Plans برای Backup گیری خودکار از SQL  سرور

خوب شما الان در صفحه تنظیمات مربوط به Maintenance Plan هستید. به نقاطی که با علامت ویلبیلک ( VillBilak ) مشخص شده اند توجه کنید ، این دو قسمت مواردی هستند که شما باید تنظیمات Backup خود را انجام دهید. قسمتی که در گوشه بالای سمت راست در تصویر زیر مشخص شده است برای زمانبندی انجام عملیات خود استفاده می کنید ، اینکه در چه زمانی و چه روزهایی عملیات های Maintenance Plan انجام شوند. توجه کنید که زمانی برای انجام خود تعیین کنید که می دانید Database شما در حال استفاده نمی باشد ، هیچوقت در اوج ساعت کاری Database ها از آنها بصورت زمانبندی شده Backup نگیرید. اما قسمتی که در پایین و سمت چپ تصویر مشخص شده است اصل ماجرا یا همان Backup Maintenance Plan شما را ایجاد می کند. با توجه به اینکه می توان فقط برای همین یک قسمت چند مقاله نوشت ما بصورت جزئی تر وارد ماجرا نمی شویم و فقط به بررسی دو مورد از آنها که در آموزش ما استفاده می شود کفایت می کنیم.

تصویر پنجم : تعریف زمانبندی و استفاده از Maintenance Plan  های SQL برای Backup گیری MSSQL

بر روی آیکن تقویم یا همان Calendar که در تصویر بالا مشخص شده است دابل کلیک کنید. با اینکار یک کادر باز می شود که شما می توانید زمان های اجرای عملیات و همچنین وهله های زمانی کار را برای سیستم تعریف کنید. همیشه بر اساس نیاز و اهمیت کار سازمان تعاریف زمانبندی خود را انجام دهید. معمولا Backup ها سازمانی بصورت روزانه گرفته می شوند. باز هم تاکید می کنم زمانی را انتخاب کنید که می دانید Database شما Load کاری زیادی ندارد ، بنده معمولا شب ها یا ساعات اولیه بامداد را برای گرفتن backup انتخاب می کنم. زمانیکه کار خود را تمام کردید بر روی دکمه OK کلیک کنید.

تصویر ششم : تعیین تقویم زمانبندی برای گرفتن backup از SQL  سرور

از قسمت Maintenance Plans که در تصاویر بالا در گوشه سمت چپ پایین مشخص شده است گزینه backup database plan را انتخاب کنید و بوسیله Drag and Drop آنرا در کادر خالی روبرو بیندازید. این همان مجموعه دستوراتی است که عملیات Backup گیری را برای شما انجام می دهد. تصویر زیر دقیقا همان چیزی است که باید مشاهده کنید.

تصویر هفتم : انتخاب کردن Backup Maintenance Plan در SQL  سرور 2008

حالا بر روی backup database task ای که در کادر روبرو ایجاد شده است دابل کلیک کنید. با اینکار یک صفحه جدید باز می شود که شما می توانید تنظیمات مربوط به Database هایی که می خواهید Backup بگیرید را مشخص می کنید. در اینجاست که شما تعیین می کنید از چه Database هایی می خواهید Backup بگیرید ، در اینجاست که شما تعیین می کنید در کجای سیستم و در چه مسیری فایل های Backup قرار بگیرد و تمامی موارد مرتبط با backup گیری از دیتابیس ها در اینجا تعیین می شود. از قسمت بالایی این صفحه از منوی بازشوی Databases شما می توانید دقیقا Database مورد نظر خودتان را برای Backup گیری تعیین کنید ، همچنین در همین صفحه همانطور که در صفحه پایین مشاهده می کنید می توانید پسوند فایل های ذخیره شده و مسیر ذخیره را نیز تعیین کنید ، ترجیجا با توجه با ساختارهای شلخته ایرانی ( تعارف نداریم باور کنید ) Backup خود را بصورت All Databases تعریف کنید.

تصویر نهم : آموزش گرفتن Backup از SQL سرور
تصویر دهم : آموزش بکاپ گیری از SQL سرور

بعد از اینکه موارد بالا را انجام دادید بر روی OK کلیک کنید. تبریک صمیمانه ، تنظیمان مربوط به Backup گیری شما انجام شده است. فایل های Backup شما در زمان تعیین شده و در مسیر تعریف شده بصورت خودکار روزانه در ساعت 9 شب گرفته می شوند. نام فایل هایی که بعد از گرفتن Backup ایجاد می شود بر اساس تاریخی تعیین می شود که در آن Backup گرفته شده است و این کمک زیادی به بحث شناسایی دقیق داده های درست در زمان بازگردانی یا Recovery به مدیر سیستم می کند.

با توجه به اینکه Backup های شما بصورت متناوب و روزانه گرفته می شوند بعد از مدتی حجم اطلاعاتی که backup گرفته می شوند زیاد می شود بنابراین بهتر است برای این سیستم Backup تعریف کنید که بعد از یک وهله زمانی معین Backup های قبلی را از بین ببرد و حذف کند.. برای اینکه بتوانید اینکار را انجام دهید شما باید یک cleanup task از همان قسمتی که Maintenance Cleanup Taskرا انتخاب کردید را به شکل قبل در کادر روبرویی Drag and Drop کنید. با استفاده از روش زیر شما می توانید تنظیمات Maintenance Cleanup Task را نیز انجام دهید.

تصویر یازدهم : انتخاب cleanup task برای حذف Backup های MSSQL Server

بر روی شیئ Maintenance Cleanup Task ای که در کادر روبرو انداخته اید دابل کلیک کنید تا تنظیمات آن را مشاهده کنید. شما باید مسیر Backup ای که گرفته شده است به همراه پسوند فایل ها و همچنین مدت زمانی که می خواهید Backup ها معتبر باشند را تعیین کنید. معمولا برای این قسمت مدت زمان یک ماه در نظر گرفته می شوند همانطور که در تصویر زیر نیز مشاهده می کنید.

تصویر دوازدهم : تکمیل فرآیند Backup گیری از Database های SQL سرور

زمانیکه بر روی تصویر بالا OK را کلیک کنید. می توانید مطمئن باشید که Backup های شما هر ماه یکبار گذشته را فراموش می کنند و به فکر آینده می افتند. امیدوارم هیچوقت در زندگی نیازی به بازگردانی Backup نداشته باشید اما به هر حال همیشه اصل Backup Backup Backup را فراموش نکنید ، امیدوارم مورد توجه شما قرار گرفته باشد. توسینسو باشید.

  • چگونه بصورت اتوماتیک از SQL Server بکاپ بگیریم؟

    شما می توانید از طریق گرافیکی و کنسول مدیریتی Management Studio براحتی با رفتن به قسمت Task Scheduler و راست کلیک کردن بر روی Task Schedule Library و کلیک کردن گزینه Create basic task یک Job برای بکاپ گیری ایجاد کنید ، سپس یک نام برای Task خود وارد کنید برای مثال SQLBackup1 و سپس Next را بزنید ، زمانبندی بکاپ بصورت Daily یا روزانه و ... را انتخاب و سپس Next را بزنید ، گزینه Recurrence را روی One Day قرار دادن و Next را بزنید و تمام
  • آیا می توان از دیتابیس SQL سرور در شبکه بکاپ گرفت؟

    بله ، می شود ، اما لازمه اینکار باز بودن پورت ها ، نصب بودن سرویس SQL Browser و فعال بودن آن و در عین حال Mount شدن پارتیشن اشتراکی سرور مقصد در سرور SQL سرور است.
  • آیا بعد از بکاپ گیری می توان سلامت فایل بکاپ SQL را چک کرد؟

    شما در زمان بکاپ گیری می توانید به SQL سرور بگویید که سلامت داده های موجود و فایل را بعد از بکاپ گیری به کلی بررسی کند و با خیال راحت بکاپ ها را به جای دیگر منتقل کنید ، فشرده سازی و تست سلامت Backup از مهمترین فاکتورهایی است که فرآیند بکاپ را کمی زمانبر می کند

محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات