تعریف برنامه زمان بندی پشتیبان گیری اتوماتیک یا maintenance plans
در این درس، از طریق SQL Server Management Studio و ابزارهای Maintenance Plans و Maintenance Plan Wizard، نحوه ایجاد یک برنامه زمانبندی پشتیبانگیری اتوماتیک بهصورت تخصصی آموزش داده شده است؛ در این فرآیند، با نامگذاری برنامه (مثلاً DailyBackup) و تنظیم schedule به صورت روزانه با اجرای full database backup در ساعت 12 شب (به منظور کاهش تداخل با فعالیتهای کاربران)، به انتخاب destination مناسب (Disk) به همراه فعالسازی گزینه create a subfolder for each database و تعیین backup file extension به صورت bak پرداخته شده است. همچنین، با تنظیم Compress backup و Verify backup integrity، صحت و فشردهسازی فایلهای پشتیبان تضمین میشود و پس از نهاییسازی تنظیمات، اجرای دستور Execute جهت تست عملکرد برنامه و بررسی گزارش backup انجام میگردد؛ هدف نهایی این آموزش، فراهم آوردن روشی مؤثر و خودکار برای حفاظت از اطلاعات حیاتی در محیطهای SQL Server برای متخصصان و مدیران سیستم است.
در ویدئوهای آموزشی قبلی دیدیم که چطور به صورت دستی back up ایجاد کنیم. به هر حال، ایجاد backup روی یک زمانبندی و برنامه مشخص به نظر مفیدتر هست؛ شاید شما در اداره تون مسئول محافظت از اطلاعات پایگاه دادتون هستید و داشتن یک بک آپ از اطلاعاتتون می تونه خیلی خوب به شما در محافظت از اطلاعات ارزشمندتون کمک کنه و sql server یک مکانیزمی داره تا راحتتر و با ظرافت بیشتری یک backup رو به صورت اتوماتیک براتون بگیره و این کار رو در زمانبندی سفارشی شده برامون؛ انجام بده.
برای تنظیم این قابلیت؛ کافیه زمانی که در محیط Management Studio قرار داریم، لیست Management رو باز کنیم و یکی از گزینه های پایین، Maintenance Plans هست. اگه لیست اون رو هم باز کنم، میبینم که هیچ maintenance plans یا برنامه زمانبندی شده ای تا کنون ایجاد نشده بنابراین روی maintenance plans راست کلیک میکنم و Maintenance Plan Wizard رو انتخاب میکنم و اون از طریق ی wizard برای من اجازه میگیره که برخی از task ها و وظایف شاملbackup ها رو زمانبندی کنم، پس می بینید که ویزارد maintenceance plan wizard بصورت یک پنجره نصبی برای سفارشی سازی توسط کاربر؛ باز میشه.
صفحه اول فقط شامل اطلاعات هست؛ درست اطلاعاتی که اگه چند لحظه ای برای خوندنش زمان بذارید متوجه میشید که داره میگه این یک ویزاردی برای اینکه شما بتونید برنامه زمانبندی بک آپ گیریتون رو بصورت اتوماتیک در محیط Management Studio سفارشی کنید. روی دکمه next کلیک میکنیم و بعد از اون باید یک نام در قسمتname برای maintenance plan مون بذاریم وتوصیحات لازم رو در قسمت Description بنویسیم. نام و توضیحات هیچ تاثیری در عملکرد نداره. اونها فقط به من در یاد اوری این که چه کردیم کمک میکنن؛ و حتی وقتی که در لیست سمت چپ Management Studio درست در پنل object explorer و در ساختار درختی management این نامی که الان در این ویزارد وارد می کنیم رو دیدیم بتونیم متوجه این موضوع بشیم که بله “من یک برنامه زمانبندی شده برای بک آپ گیری اتوماتیک تعریف کرده ام”، و وان الان با این نام وجود داره. من اون رو DailyBackupنامگذاری میکنم، شاید در اداره ما اطلاعاتمون اینقدر مهم و ارزشمند هستن که من میخام بصورت روزانه أزشون بک آپ بگیرم؛ آآآو اون پایین گزینه ای رو میبینم که یک زمانبند با نام schedule رو تعریف میکنه در سمت راست روی دکمه change کلیک میکنم و وارد صفحه ای میشم که میتونیم زمانبند رو در اون تنظیم کنیم ما میتونیم در قسمت occur بر اساس رویداد های روزانه، هفتگی، یا ماهانه که بترتیب با گزینه های daily و monthly و weekly قابل سفارشی شدن هستن؛ تنظیم کنیم. خب شاید متوجه شده باشید با این اسمی که برای این برنامه زمانبدی تهیه اتوماتیک بک آپ تعریف کردم من میخوام که occur بر اساس رویداد های روزانه باشه.
و در گزینه recur every که بمعنی این هست که تکرار بک آپ گیری هر چند روز یکبار انجام بشه، من با عدد یک میگم هر یک روز یکبار تکرار بک آپ گیری تکرار بشه. این گزینه occurs once at به صورت پیش فرض داره میگه کار یا job بک آپ گیری رو در نیمه شب شروع میکنه درست ساعت 12 نیمه شب و من همین رو انتخاب میکنم؛ چون سرور اداره من همیشه روشن و نیمه شب ها تعداد کاربران من حداقل هستن و اونا تا اون موقع از شب اکثر کار خودشون رو دیگه انجام دادن و زمان خوبی برای شروع بک آپ گیری. من میتونم پیش برم و همه پیش فرض های اینجا رو بپذیرم و روی دکمه ok کلیک کنم. سپس روی دکمه next کلیک میکنم در اینجا باید نوع بک آپ گیری مون رو مشخص کنیم و task ای که من بسته به اطلاعات ارزشمند ادارمون میخوام یک full database backup هست؛ که بیاد و هر روز در ساعت 12 بامداد از تمام اطلاعات و فایل های پایگاه داده من بک آ پ بگیره. من روی چک باکس کنار این task کلیک میکنم. بعد هم روی next.
در اینجا من میتونم این task رو سفارشی کنم. اگه من چند task رو در ویزارد قبلی انتخاب کرده بودم میتونستم الان یک توالی و لیستی از انچه که اتفاق میفته رو انتخاب و سفارشی کنم. اما می بینید که ما تنها یک task داریم، بدون اینکه نیاز به یک توالی خاص باشه.
من تنها کاری که کافیه انجام بدم اینه که روی دکمه next کلیک میکنم و حالا در این صفحه من سه تب دارم.
General، Destination و Options.
در تب Generalما باید مشخص کنیم که کدام دیتا بیس رو برای بک اپ گیری میخوایم و من میخوام با همه دیتا بیس ها پیش برم بنابراین گزینه all database رو انتخاب میکنم روی دکمه اوکی کلیک میکنم و حالا کجا میخوام بک اپ ذخیره بشه.
Disk، Tape یا URL؟ من با دیسک میخوام پیش برم. در تب بعدی Destination، باید جایی رو که میخوام روی این دیسک فایلهای بک آپ در اون مسیر ذخیره بشن رو مشخص کنم. اون یک مسیر پیش فرض بک اپ گیری برای من گذاشته. من پیش میرم و با همین مسیر بعنوان جایی که میخام بک آپ هام اونجا ذخیره بشن کارم رو ادامه میدم.
شما میتونین حتی روی سه نقطه کلیک کنین و یک مسیر و یک دایرکتوری دلخواه دیگه رو انتخاب کنین. من میخوام با همین مسیر پیش فرض ادامه بدم. من میخوام روی چک باکسی که کنار create a subfolder for each databaseکلیک کنم تا برای هر دیتابیسی که بک آپش رو هر روز ساعت 12 بامداد بوجود میاره یک فولدر جداگانه در مسیر دلخواهم تعریف کنه. قسمت backup file extention هم که فرمت بک آپم هستتش رو به صورت پیش فرض bak. قبول میکنم. من میخوام پیش برم و اون رو نگه دارم. این تموم پیکربندی هست که من در این تب میخوام. بنابریان من به تب اپشن میرم. Set backup compression، بنظرتون چی هست؟ اگه یادتون باشه این امکان اینکه فایل های بک آپ من رو به حالت فشرده در بیاره رو میتونه برام سفارشی کنه و، بله من دوست دارم که بک اپ به صورت فشرده باشه بنابراین گزینه Compress backup رو انتخاب میکنم. میتونم درستی بک اپم رو با استفاده از گزینه Verify backup integrity بررسی کنم به این معنی که بعد از بک اپی که گرفته شد؛ پیش برم و بررسی کنم که بک اپم معتبر هست.
روی چک باکس کنار اون کلیک میکنم. در پایین این پنجره بعد از چک کردن این 3 تب، دکمه next رو میزنم. اون از من میپرسه که بعد از این که بک اپ گیری تموم شد دوست دارید چطوری گزارشش رو بسمتتون ارسال کنه. به صورت پیش فرض روی write a report to a text file هست که بصورت فایل متنی گزارش بک آپ گیری رو اعلام میکنه. من میتونم به صورت اختیاری گزینه email report رو انتخاب کنم تا بعد از هر بار بک آپ گیری یک ایمیل به ایمیلی که درست در این کادر سفارشی می کنم ارسال کنه روی دکمه next در پایین کلیک میکنم، چون بنظرم گزینه انتخاب شده پیشفرض، برای کار من مناسب تر هست.
این پنجره هم به من یک خلاصه ای از چیزهایی که انتخاب کردم میده و روی گزینه finish میزنم. عالیه. ما یک دسته از چک مارکهای سبز به همراه کلمه success داریم و اینا بمعنی این هستند که الان یک برنامه زمانبندی برای بک آپ گیری اتوماتیک روی این سرور ایجاد کردیم. من پیش میرم و دکمه close رو میزنم و حالا در زیر Maintenance Plans ام، DailyBackup رو میبینم. هر شب در نیمه شب، این کار به صورت اتوماتیک شروع میشه و از همه دیتا بیسم بک اپ گرفته میشه.
برای تست اون، من میتونم در حال حاضر maintenance plan رو اجرا کنم. من فقط روی اون راست کلیک میکنم و برای اجرا Execute رو میزنم. یک پنجره وضعیت باز شد که دایره سبز رنگ در حال چرخش به معنی این که در حال کار بر روی اون بک آپهای تعریف شده در این برنامه زمانبندی DailyBackup هست و در نهایت باید به حالت Success تغییر بکنه. اگه شما در حال بک اپ گیری از پایگاه های داده بزرگ باشید، اون زمان زیادی میگیره . پایگاه داده های 50 یا 100 گیگی ممکن هست یک ساعت یا بیشتر برای بک اپ گیریشون طول بکشه اما سرور ما هیچ دیتا بیس بزرگی نداره. بنابراین فک نمیکنم که بیشتر از چند دقیقه طول بکشه.
پس نهایتا ما یک چک مارک سبز رنگ خواهیم دید و اون پیام Succes رو به ما میده، به این معنی که من دستور شما مبنی بر اجرای برنامه زمانبندی بک آپ گیری رو همین حالا بصورت موفقیت آمیز انجام دادم. من دکمه close رو میزنم و فولدری رو باز میکنم که گفته بودم بک اپم در اون قرار بگیره. حالا ما میبینیم که یک زیرمجموعه از فولدرها برای هر کدوم از پایگاه داده هامون بوجود اومده چون اگه یادتون باشه چند لحظه پیشش من تیک create a subfolder for each database رو در مراحل تعریف ویزارد اعمال کردم که شامل AdventureWorks2014 هم هست. من روی اون دو بار کلیک میکنم و در این جا فایل بک اپم رو که با تاریخ و زمان بک اپ گیری نامگذاری شده میبینم. اطلاعات خیلی مفیدی رو داره. من پیشنهاد میکنم که رو تمامی sql server هاتون، تنظیمات سفارشی رو برای بک اپ گیری اتوماتیک داشته باشین.
اون میتونه با این عملکرد شبیه یک ابزار شخص ثالث، که از بین رفتن اطلاعات اداره مون رو یجورایی برامون بیمه کنه؛ عمل کنه، اما در sql server، من به طور کلی از ساختار ابزار Maintenance Plansاستفاده کردم که پیش رفتم و با یک زمانبندی روزانه بک اپ گیری أم رو سفارشی کردم.