فصل چهارم: نگهداری و اتوماسیون

SQL Server Agent و Job

خودکارسازی وظایف تکراری

SQL Server Agent سرویسی است که به شما امکان می‌دهد وظایف تکراری مانند پشتیبان‌گیری شبانه، اجرای Stored Procedure در ساعت مشخص یا پاک‌سازی داده‌های قدیمی را به‌صورت خودکار و بر اساس زمان‌بندی اجرا کنید، بدون نیاز به دخالت دستی.

یک Job در Agent از یک یا چند Step (مرحله) تشکیل شده که هر Step می‌تواند یک دستور T-SQL، اجرای یک Stored Procedure یا حتی یک اسکریپت خارجی باشد. برای ساخت یک Job ساده که هر شب بکاپ می‌گیرد، می‌توانید از رویه‌های سیستمی Agent استفاده کنید:

EXEC msdb.dbo.sp_add_job @job_name = N'Nightly_Backup';

EXEC msdb.dbo.sp_add_jobstep
    @job_name = N'Nightly_Backup',
    @step_name = N'Backup Shop DB',
    @command = N'BACKUP DATABASE Shop TO DISK = ''C:\Backups\Shop_Nightly.bak''';

EXEC msdb.dbo.sp_add_schedule
    @schedule_name = N'Every_Night_2AM',
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 020000;

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

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.