معرفی Job در SQL SERVER

سه شنبه 6 بهمن 1394

در این مقاله در مورد Job ها در SQL SERVER صحبت خواهیم کرد و همچنین توضیح می دهیم که چطور می توان نسخه پشتیبان Job را با کمک Maintenance Plan نصب و راه اندازی کرد.

معرفی Job در SQL SERVER

مقدمه

Job ها در SQL SERVER به اصطلاح نوعی ظرف یا یک شامل شونده هستند که اجازه می دهند یک یا چند مرحله از فرایند در یک بسته(Package) قرار گیرند تا به صورت یک جا اجرا شوند. به عبارت دیگر می توانیم بگوییم که Job ها  یک سری اعمالی هستند که SQL SERVER آنها را به صورت یک جا انجام می دهد.

برای ایجاد یک Job در SQL SERVER، یک کاربر باید عضوی از نقش های ثابت در SQL SERVER fhan یا باید یک sysadmin باشد چرا که فقط عضوی از این نقش ها می توانند Job ها را ایجاد یا تغییر دهند.

برای مثال اگر شما user/login خود را ببینید تنها به CsharpCornerDB دسترسی دارد و زمانی که ما با آن Login متصل می شویم، SQL Server Agent به صورت زیر ناپدید می شود.

دلیل این است که Login ما عضوی از یک sysadmin یا یک نقش ثابت در SQL SERVER نیست.

این نقش ها تحت msdb database ذخیره شده اند که کنترل administrator را برا دسترسی به SQL Server agent ایجاد می کند.

در زیر سه نقش SQL Server Agent برایارائه شده است:

SQLAgentUserRole

SQlAgentReaderRole

SQLAgentOperatorRole

ما کاربر خود را به این نقش ها اضافه می کنیم. برای انجام این عمل( از طریق حالتAdministrator  گزینه Security را باز کرده، Login را انتخاب کنید سپس User Mapping و بعد MSDB database را انتخاب کنید. بعد از آن دسترسی را برای SQL Agent roles به صورت زیر دریافت کنید:

بعد از دریافت این مجوز ها زمانی که شما دوباره به SQL Server متصل می شوید می توانید ببینید که حالا SQL Server Agent  قابل مشاهده است.

ما آن را با بخش configuration انجام داده ایم؛ حالا اجازه دهید مثالی بزنیم که نسخه پشتیبان برای پایگاه داده از طریق SQL SERVER را به صورت خودکار انجام دهیم.

مراحل زیر را برای راه اندازی Job انجام دهید.

بر روی SQL Server Agent راست کلیک کرده وNew و بعد Job سپس نام، دسته بندی و توضیحات Job را وارد کنید. بر روی تب Steps رفته و نام Step را وارد کنید  سپس نوع Step را انتخاب کنید و در آخر پایگاه داده را انتخاب و بر روی OK کلیک کنید.

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

نکته مهم در اینجا این است که در حال مراحل ایجاد Job، شما Type را مشاهده خواهید کرد و این کار نوع مراحل را تعریف می کند که می تواند ایجاد شود. این مراحل Job می تواند به روش های مختلفی که در لیست زیر آمده است ایجاد شود:

T-SQL

SSIS Packages

ActiveX scripts

SSAS commands

SSAS Queries

Replication Snapshot

زمانی که نوع category را expand کنید انواع مختلف دیگر به صورت زیر پیدا خواهید کرد:

بعد از انجام تمام مراحل بالا شما چیزی شبیه به تصویر زیر دریافت خواهید کرد:

حالا بر روی OK کلیک کرده و مراحل انجام می شود. Job Activity Monitor را باز کرده و خواهید دید که Job شما در آنجا ایجاد شده است.

ما باید نسخه پشتیبان Job خود را به صورت دستی و با انجام مراحل بالا راه اندازی کنیم. این مراحل کمی طولانی تر به نظر می رسد اما می توانیم این backup job را با کمک Maintenance Plan و در مراحل آسان تری انجام دهیم. مراحل به صورت زیر می باشد.

Maintenance Plan یک مجموعه ای از اقدامات انجام شده برای اطمینان از این است که یک پایگاه داده به درستی نگهداری شده و backup های روزانه برنامه ریزی شده و به کار گرفته شود.

این ویرایشگر تا حدودی شبیه به ویرایشگر Visual Studio به نظر می رسد که در آن کنترل ها را کشیده و در فرم خود رها می کنیم.

Maintenance plan در SQL SERVER شامل وظایف مختلفی مانند زیر است:

پشیبان گیری از پایگاه داده(Backup Database Task)

وظیفه پاک سازی(Cleanup)

وظیفه آمار به روز رسانی(Shrinking)

بازسازی(Rebuild) صفحه Index و غیره

در این مقاله ما Backup task را خواهیم دید.

برای انجام آن مراحل زیر را پیش می رویم( که در حالت Admin انجام می شود)

Management را Expand کرده سپس بر روی Maintenance Plan راست کلیک کنید و سپس به صورت زیر بر روی New Maintenance کلیک کنید:

بعد از این که یک پنجره به صورت popup باز شد از شما می خواهد که نام maintenance plan را وارد کنید.

یک نام مناسب انتخاب کرده و بر روی Ok کلیک کنید. بعد از آن شما به حالت طراحی redirect می شوید و تعدادی ابزار در پنجره toolbox مشاهده خواهید کرد.

در اینجا ما backup job خودمان را ایجاد خواهیم کرد. ما می توانیم job خود را نه فقط برای 1 پایگاه داده بلکه همچنین برای دیگر پایگاه داده ها با یک کلیک ایجاد کنیم، مانند انجام تمام نسخه های پشتیبان پایگاه داده های سیستم یا تمام نسخه پشتیبان های کاربر.

حالا یک مثال را شروع می کنیم که در آن یک backup plan ایجاد می کنیم و همچنین فایل های قدیمی تر از یک هفته را پاک خواهیم کرد.

از Toolbox قسمت Back Up Database Task را کشده و رها کنید مانند زیر:

بر روی این کنترل راست کلیک کرده و Edit را انتخاب کنید و می توانید پنجره Backup Database Task را دریافت کنید که در آن نوع backup ای که می خواهید روی پایگاه داده بگیرید را انتخاب کنید که پایگاه داده در maintenance plan اضافه شود، در محل backup یک دایرکتوری به صورت خودکار برای هر پایگاه داده ایجاد می شود. مراحل به صورت زیر است:

در این پنجره می بینید که یک dropdown برای انتخاب پایگاه داده وجود دارد. زمانی که شما dropdown را باز می کنید برخی موارد را مانند زیر خواهید دید:

در این پنجره 4 گزینه زیر را پیدا خواهید کرد

تمام پایگاه داده ها(All Databases) : این گزینه تمام پایگاه داده ها را به جز پایگاه داده سیستم backup خواهد گرفت.

پایگاه داده های سیستمی(System Databases): این گزینه فقط پایگاه داده های سیستمی را backup خواهد گرفت.

(All User databases)تمام پایگاه داده های کاربر(به جز master، model، msdb و tempdb): با انتخاب این گزینه تمام پایگاه داده های کاربر را backup خواهد گرفت.

این پایگاه داده ها(These databases): در اینجا شما می توانید پایگاه داده ایی طبق آنچه می خواهید برای backup گیری انجام دهید انتخاب کنید.

اگر شما گزینه Ignore databases where the state is not online را تیک بزنید Job پایگاه داده هایی که OFFLINE هستند را در نظر نمی گیرد.

حالا پایگاه داده های خود را انتخاب کرده و بر روی OK کلیک کنید، فورا آن از Select One or more به Specific databases” تغییر دهید.

اگر شما بخواهید کد T-SQL را ببینید فقط کافیست بر روی دکمه View T-SQL کلیک کرده و کد T-SQL را به صورت زیر دریافت کنید.

حالا بر روی OK کلیک کرده و backup task شما آماده است.

اگر  علامت ضربدر قرمز ببینید  برای این کنترل ناپدید می شود.

حالا ما setup clean-up task را خواهیم داشت که backup ها ی قدیمی تر از یک هفته را پاک خواهد کرد.

History Cleanup Task را کشیده و رها کنید که شبیه تصویر زیر می شود.

بر روی این کنترل راست کلیک کرده و Edit را انتخاب کنید و یک پنجره برای پاک کردن داده های گذشته دریافت خواهید کرد. ما در اینجا یک هفته را انتخاب کرده ایم شما همچنین می توانید “Days”, “Hours”, “Months”, and “Year” را انتخاب کنید. زمانی که آن را انجام دهید چیزی شبیه به پنجره زیر را دریافت می کنید.

ما آن را با هر دو کار انجام می دهیم. حالا باید برای اجرا تصمیم بگیریم، برای مثال تصمیم بگیریم چگونه می خواهیم این plan را اجرا کنیم. در اینجا دو گزینه داریم:

Backup قدیمی تر را پاک کرده و یک backup جدید بگیرید.

fresh کردن backup و پاک کردن backup های قدیمی تر

در این جا توصیه می شود که گزینه دوم را انتخاب کنید، در ابتدا backup را گرفته و بعد نسخه قدیمی تر را پاک کنید. این کار به این دلیل است که اگر شما گزینه اولی را انتخاب کنید و clean-up را در ابتدا انجام دهید، با توجه به برخی مسائل شبکه اگر backup گیری شکست بخورد شما backup قبلی خود را از دست می دهید.

اگر گزینه دوم را انتخاب کنید فلش سبز از Backup Database Task به History Cleanup Task مانند تصویر زیر قرار میگیرد:

اگر گزینه اول را انتخاب کنید فلش اتصال از History Cleanup Task به Backup Database Task قرار می گیرد.

maintenance plan خود را ذخیره کنید. زمانی که فولدر Maintenance Plans را مشاهده می کنید، plan خود را روی آن پیدا خواهید کرد.

به Job Activity Monitor رفته یا فولدر Job را در SQL Server Agent باز کنید و مشاهده خواهید کرد که SQL SERVER به طور اتو ماتیک یک backup job برای شما ایجاد کرده است.

حالا شما فقط باید این Job را برنامه ریزی کنید. همچنین می توانید آن را در حال ایجاد maintenance plan زمانبندی کنید. فقط بر روی دکمه schedule کلیک کرده و تعدادی schedule قرار دهید. حالا Job را اجرا کرده و بررسی کنید که چگونه فایل های backup ذخیره می شوند.

Job  را Start کرده و فرایند را ببینید.

Job ما با موفقیت کامل شده و فایل ها را بررسی کنید. زمانی که شما محل backup را ببینید خواهید یافت که SQL SERVER به طور اتوماتیک فولدر ها را ایجاد کرده و فایل های backup را در آن ذخیره خواهد کرد.

در زیر تصویر فایل های ذخیره شده در فولدر CSharpCornerDB وجود دارد.

آموزش نصب sql server 2017

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید