۱۴۰۴/۰۷/۰۱ Nebular

Job در SQL Server

Job چی هست؟

Job در SQL Server یعنی یک «کار زمان‌بندی‌شده» که خودکار اجرا میشه.
مثل یک ربات که کارهای تکراری رو برات انجام میده.

مثال ساده:

  • هر شب ساعت ۱ بامداد Backup از دیتابیس بگیر.
  • هر ۱۰ دقیقه یکبار یک اسکریپت پاک‌سازی لاگ‌ها اجرا کن.
  • هر روز صبح ساعت ۸ یک ایمیل گزارش فروش بفرست.

اجزای اصلی Job

یک Job از چند قسمت تشکیل میشه:

  1. Step (گام‌ها)
    • هر Step یک دستور (SQL Query، اجرای پروسیجر، اجرای فایل BAT و …) است.
    • یک Job می‌تونه چند Step داشته باشه.
  2. Schedule (زمان‌بندی)
    • تعیین می‌کنیم Job چه موقع اجرا بشه:
      • دستی (خودمون Run کنیم)
      • زمان‌بندی شده (مثلاً هر روز ساعت ۱۰ شب)
      • تکراری (هر ۵ دقیقه یکبار)
  3. Alert (هشدار)
    • می‌تونیم تنظیم کنیم اگر Job خطا داد یا موفق شد، پیام یا ایمیل ارسال کنه.
  4. History (تاریخچه)
    • SQL Server ذخیره می‌کنه که Job کی اجرا شده، موفق بوده یا خطا داده.

چطور Job بسازیم؟

از طریق SQL Server Agent (یکی از سرویس‌های SQL Server):

در SSMS (روش گرافیکی):

  1. توی Object Explorer برید به:
    SQL Server Agent → Jobs → New Job...
  2. اسم Job رو بدید.
  3. Step اضافه کنید (مثلاً یک کوئری Backup).
  4. Schedule تعیین کنید (مثلاً هر روز ساعت ۱ شب).
  5. ذخیره کنید → از این به بعد خودکار اجرا میشه.

با T-SQL (روش کدنویسی):

مثال: هر روز Backup بگیره:

USE msdb;
GO

EXEC sp_add_job 
    @job_name = N'NightlyBackup';

EXEC sp_add_jobstep
    @job_name = N'NightlyBackup',
    @step_name = N'BackupStep',
    @subsystem = N'TSQL',
    @command = N'BACKUP DATABASE MyDB TO DISK = ''D:\Backup\MyDB.bak'' WITH INIT';

EXEC sp_add_schedule
    @schedule_name = N'EveryMidnight',
    @freq_type = 4,      -- daily
    @active_start_time = 010000; -- 01:00 AM

EXEC sp_attach_schedule
    @job_name = N'NightlyBackup',
    @schedule_name = N'EveryMidnight';

EXEC sp_add_jobserver
    @job_name = N'NightlyBackup';

نکات مهم

  • SQL Server Agent باید Running باشه، وگرنه Jobها اجرا نمیشن.
  • Job می‌تونه برای نگهداری (Maintenance)، ارسال ایمیل، پاکسازی داده، یا اجرای هر نوع اسکریپت استفاده بشه.
  • همیشه تاریخچه Job رو چک کن → اگر خطا داد، علتش مشخص میشه.

👉 به زبان خیلی ساده:
Job مثل یه ماشین زمان‌بندی‌شده توی SQL Serverه که کارهای تکراری رو بدون دخالت شما انجام میده.

Accept Cookies
Accept Cookies
[your-shortcode]