مدیریت زمانبندی (Job) در پایگاه داده اوراکل

زهیر صفری 1403/07/09 0 12
لینک کوتاه https://zoheirsoftware.com/z/e6116a8 |
ایجاد و مدیریت زمانبندی (Job) در پایگاه داده اوراکل,ایجاد یک Job در پایگاه داده اوراکل,مدیریت و مانیتورینگ Jobها

ایجاد و مدیریت زمانبندی (Job) در پایگاه داده اوراکل

پایگاه داده اوراکل دارای ابزار قدرتمندی برای مدیریت و اجرای خودکار وظایف (Job) است.

این وظایف یا Job‌ها می‌توانند شامل اجرای اسکریپت‌های PL/SQL، گزارش‌گیری، نگهداری از پایگاه داده و بسیاری از عملیات دیگر باشند.

با استفاده از DBMS_SCHEDULER، شما می‌توانید این وظایف را به صورت خودکار و با زمانبندی دلخواه اجرا کنید.

در این مقاله به معرفی مفهوم زمانبندی (Job) در پایگاه داده اوراکل، نحوه ایجاد، مدیریت و حذف آن‌ها می‌پردازیم.

همچنین ابزارهای مربوط به مدیریت زمانبندی‌ها و نحوه بهینه‌سازی و رفع مشکلات مربوط به این فرآیندها را بررسی خواهیم کرد.

 

ایجاد و مدیریت زمانبندی (Job) در پایگاه داده اوراکل

مقدمه‌ای بر DBMS_SCHEDULER

در نسخه‌های قدیمی‌تر اوراکل، برای مدیریت و زمانبندی Jobها از بسته DBMS_JOB استفاده می‌شد

اما از نسخه 10g به بعد، اوراکل ابزار جدیدی به نام DBMS_SCHEDULER ارائه داد که قابلیت‌ها و امکانات پیشرفته‌تری را برای مدیریت Job‌ها فراهم می‌کند.

DBMS_SCHEDULER به کاربران این امکان را می‌دهد که وظایف پیچیده‌تری را با برنامه‌های دقیق‌تر زمانبندی و اجرا کنند.

این ابزار امکاناتی همچون زمانبندی وابسته به شرایط، اجرای دوره‌ای، کنترل کامل بر نحوه اجرای Job و مدیریت Chain‌های وظایفی را که به هم وابسته هستند، فراهم می‌کند.

مزایای استفاده از DBMS_SCHEDULER

  • زمانبندی انعطاف‌پذیر

    این بسته امکانات گسترده‌ای برای زمانبندی و اجرای دوره‌ای Job‌ها با فواصل زمانی خاص یا براساس تقویم فراهم می‌کند.
  • مدیریت بهتر منابع

    با استفاده از DBMS_SCHEDULER، می‌توانید استفاده بهینه‌تری از منابع سیستمی داشته باشید، چرا که زمان‌های اجرای Jobها قابل کنترل هستند.
  • مکانیزم‌های پیچیده‌تر

    امکان تعریف Chain، وابستگی‌های بین وظایف و تعریف شرایط خاص برای اجرای Job‌ها.
    اجرای اسکریپت‌های سیستم‌عامل: به شما اجازه می‌دهد که علاوه بر اسکریپت‌های PL/SQL، فرمان‌های سیستم‌عامل را نیز اجرا کنید.
  • مدیریت خطاها و ثبت گزارش‌ها

    امکان کنترل کامل بر ثبت رویدادها و مدیریت خطاهای احتمالی.

 

مزایای استفاده از DBMS_SCHEDULER

ایجاد یک Job در پایگاه داده اوراکل

برای ایجاد Job در اوراکل، از بسته DBMS_SCHEDULER و به طور خاص از تابع CREATE_JOB استفاده می‌شود.

در این فرآیند، می‌توان زمانبندی، نوع وظیفه و تنظیمات مربوطه را تعیین کرد.

ساختار کلی ایجاد یک Job:

BEGIN
   DBMS_SCHEDULER.create_job (
      job_name           => 'job_name',
      job_type           => 'PLSQL_BLOCK',
      job_action         => 'BEGIN your_code_here; END;',
      start_date         => SYSTIMESTAMP,
      repeat_interval    => 'FREQ=DAILY; BYHOUR=10;',
      enabled            => TRUE
   );
END;


توضیح پارامترها:

job_name: نامی که برای Job مورد نظر در نظر گرفته می‌شود. این نام باید منحصربه‌فرد باشد.
job_type: نوع Job که می‌تواند یکی از انواع زیر باشد:
PLSQL_BLOCK: اجرای یک بلوک PL/SQL.
STORED_PROCEDURE: اجرای یک رویه ذخیره شده (Stored Procedure).
EXECUTABLE: اجرای یک فرمان سیستم‌عامل.
job_action: عملیاتی که توسط Job انجام می‌شود. این عملیات می‌تواند شامل کد PL/SQL یا نام رویه ذخیره شده باشد.
start_date: زمانی که Job برای اولین بار اجرا می‌شود.
repeat_interval: الگوی تکرار Job که می‌تواند به صورت روزانه، هفتگی، ماهانه و غیره باشد.
enabled: مشخص می‌کند که آیا Job به محض ایجاد فعال باشد یا خیر.


مثال: ایجاد یک Job ساده برای ارسال ایمیل

در این مثال، یک Job ایجاد می‌کنیم که هر روز در ساعت 10 صبح یک ایمیل ارسال کند:

 

BEGIN
   DBMS_SCHEDULER.create_job (
      job_name           => 'send_daily_email',
      job_type           => 'PLSQL_BLOCK',
      job_action         => 'BEGIN send_email_procedure; END;',
      start_date         => SYSTIMESTAMP,
      repeat_interval    => 'FREQ=DAILY; BYHOUR=10;',
      enabled            => TRUE
   );
END;


در این مثال، Job به نام send_daily_email ایجاد شده و هر روز ساعت 10 صبح اجرا می‌شود و رویه send_email_procedure را فراخوانی می‌کند.

مدیریت Job‌ها در پایگاه داده اوراکل

پس از ایجاد Job، می‌توان آن را مدیریت و کنترل کرد.

برخی از عملیات مدیریتی شامل غیرفعال‌سازی، فعال‌سازی، تغییر زمانبندی، حذف و نمایش وضعیت Job می‌باشد.

  • فعال‌سازی و غیرفعال‌سازی یک Job

    برای فعال‌سازی یک Job که غیرفعال شده است، از دستور زیر استفاده می‌شود:
BEGIN
   DBMS_SCHEDULER.enable('job_name');
END;
برای غیرفعال‌سازی یک Job:

sql
Copy code
BEGIN
   DBMS_SCHEDULER.disable('job_name');
END;

 

  • حذف یک Job

    برای حذف یک Job از پایگاه داده اوراکل، از دستور زیر استفاده کنید:
BEGIN
   DBMS_SCHEDULER.drop_job('job_name');
END;

 

  • تغییر زمانبندی یک Job

    برای تغییر زمانبندی یک Job، از DBMS_SCHEDULER.set_attribute استفاده می‌شود. به عنوان مثال، اگر بخواهید الگوی تکرار Job را تغییر دهید:
BEGIN
   DBMS_SCHEDULER.set_attribute (
      name      => 'job_name',
      attribute => 'repeat_interval',
      value     => 'FREQ=WEEKLY; BYDAY=MON; BYHOUR=9;'
   );
END;



این دستور باعث می‌شود Job هر دوشنبه ساعت 9 صبح اجرا شود.

  • بررسی وضعیت یک Job

    برای مشاهده وضعیت و اطلاعات مربوط به Jobها، می‌توانید از جداول سیستمی استفاده کنید.
    جدول USER_SCHEDULER_JOBS اطلاعاتی در مورد Job‌های موجود نمایش می‌دهد:
SELECT job_name, enabled, state, last_start_date, next_run_date
FROM user_scheduler_jobs;


این کوئری اطلاعات مهمی مانند نام Job، وضعیت فعال بودن، تاریخ آخرین اجرای آن و زمان اجرای بعدی را نمایش می‌دهد.

  •  اجرای دستی یک Job

    اگر بخواهید یک Job را به صورت دستی و خارج از زمانبندی اجرا کنید، می‌توانید از دستور RUN_JOB استفاده کنید:
BEGIN
   DBMS_SCHEDULER.run_job('job_name');
END;



تعریف Chain‌های وابسته در Job‌ها

یکی از قابلیت‌های قدرتمند DBMS_SCHEDULER امکان تعریف Chain برای Jobها است.

در یک Chain، می‌توان چندین وظیفه را به صورت وابسته به هم تعریف کرد.

به این معنی که تا زمانی که یک Job خاص به پایان نرسد، وظایف دیگر شروع نخواهند شد.

مراحل ایجاد Chain:

  • تعریف Chain: در ابتدا یک Chain تعریف می‌شود.
  • افزودن مراحل به Chain: هر مرحله از Chain شامل یک Job است.
  • تعریف وابستگی‌ها: وابستگی‌های بین مراحل مختلف مشخص می‌شود.
  • فعال‌سازی Chain: در نهایت Chain فعال و اجرا می‌شود.


مثال: ایجاد یک Chain وابسته


در این مثال، دو وظیفه تعریف شده است.

وظیفه اول اجرای یک رویه PL/SQL و وظیفه دوم ارسال ایمیل. وظیفه دوم فقط زمانی اجرا می‌شود که وظیفه اول با موفقیت به پایان برسد.

BEGIN
   -- تعریف Chain
   DBMS_SCHEDULER.create_chain('job_chain', 'Execution Chain');

   -- افزودن وظایف به Chain
   DBMS_SCHEDULER.define_chain_step('job_chain', 'step1', 'PLSQL_BLOCK');
   DBMS_SCHEDULER.define_chain_step('job_chain', 'step2', 'send_email_procedure');

   -- تعریف وابستگی‌ها
   DBMS_SCHEDULER.define_chain_rule('job_chain', 'step1 COMPLETED', 'step2');

   -- فعال‌سازی Chain
   DBMS_SCHEDULER.enable('job_chain');
END;

مدیریت و مانیتورینگ Jobها

اوراکل ابزارهای مختلفی برای مدیریت و مانیتورینگ Jobها ارائه می‌دهد. برخی از ابزارهای مهم شامل موارد زیر هستند:

  1. DBA_SCHEDULER_JOBS

    اطلاعات کلی درباره Job‌ها.
  2. DBA_SCHEDULER_JOB_LOG

    ثبت تاریخچه اجرای Job‌ها.
  3. DBA_SCHEDULER_RUNNING_JOBS

    نمایش Job‌هایی که در حال اجرا هستند.


 

مدیریت و مانیتورینگ Jobها

دوره های مرتبط
پکیج آموزش اوراکل,دوره آموزش پروژه محور پایگاه داده اوراکل,آموزش پایگاه داده اوراکل Oracle ,پایگاه داده اوراکل

اموزش پایگاه داده اوراکل Oracle

در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیاده‌سازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .

700,000 تومان

2.2k بازدید
مشاهده

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.