Orcale Tutorial Content
Getting Started - البدء مع إدارة قواعد البيانات
Oracle Architectural Components - مكونات قاعدة البيانات أوركل
Installing Oracle Database - تثبيت الأوركل
Creating and Configuring Database - إنشاء قاعدة البيانات
Controlling The Database -التحكم في قاعدة البيانات
Administrating Users - إدارة المستخدمين
Database Security & Monitoring - تأمين ومراقبة قاعدة البيانات
Oracle Net Services & Database Link & Metrlized Viewِ
Undo Management & Flashback Technology
Managing Shared Servers
Using Globalization Support
Logical Backup & Recovery
Physical Backup & Recovery
Recovery Manager (RMAN)
Managing Resources
Automating Tasks with the Scheduler
Dealing with Locking
Diagnostic Sources
Dealing With Database Corruption
Managing & Monitoring Memory
Performance Tunning
Automating Tasks with the Scheduler
Jobs
ﻓﻲ ﺍلJob ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﻤﺎ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﻋﻤﻠﻪ ﻭﺍﻴﻀﺎﹰ ﻤﺘﻲ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫﻩ، ﺃﻤﺎ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺴﺅﺍل ﻤﺎ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﻋﻤﻠﻪ فهو إما:
SQl Statements or PL/SQL Block or PL/SQL Stored Procedure or Java Procedure or Shell Script or Executable File or External Procedure.
ﺃﻤﺎ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺴﺅﺍل ﻤﺘﻲ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫ ﺍﻟﻤﻬﻤﺔ، ﻓﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺯﻤﻥ ﺘﻨﻔﻴﺫ ﺍلJob ﻭﺃﻴﻀﺎﹰ ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺍﻟﺯﻤﻥ ﺍﻟﺩﻭﺭﻱ ﺃﻱ ﺯﻤﻥ ﺘﻜﺭﺍﺭ ﺍﻟﺘﻨﻔﻴﺫ،
ﻋﻤﻭﻤﹰﺎ ﻫﻨﺎﻙ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻟﺨﻴﺎﺭﺍﺕ ﻹﻨﺸﺎﺀ ﺍلJob ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ CREATE_JOB ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﺤﺯﻤﺔ DBMS_SCHEDULER.
JOB_NAME: ﻟﺘﺤﺩﻴﺩ ﺇﺴﻡ ﺍلJob ﻭﻴﺠﺏ ﺃﻥ ﻴﻜﻭﻥ ﻫﺫﺍ ﺍﻹﺴﻡ ﻓﺭﻴﺩﺍﹰ ﺩﺍﺨل ﺍلSchema.
JOB_TYPE: ﻭﻫﻭ ﺇﻤﺎ ﺃﻥ ﻴﻜﻭﻥ PLSQL_BLOCK ﺃﻭ STORED_PROCEDURE ﺃﻭ EXECUTABLE.
JOB_ACTION: ﻴﺤﺘﻭﻱ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻋﻠﻲ Block PL/SQL or statement SQL ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺘﻐﻴﺭ JOB_TYPE ﻴﺤﺘﻭﻱ ﻋﻠﻲ ﺍﻟﻘﻴﻤﺔ PLSQL_BLOCK،
ﺃﻤﺎ ﺇﺫﺍ ﺍﺤﺘﻭﻱ ﺍﻟﻤﺘﻐﻴﺭ JOB_TYPE ﻋﻠﻲ ﺍﻟﻘﻴﻤﺔ STORED_PROCEDURE ﻓﻴﺠﺏ ﻫﻨﺎ ﺃﻥ ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺇﺴﻡ ﺍﻹﺠﺭﺍﺀ،
ﺃﻤﺎ ﺇﺫﺍ ﺃﺨﺫ ﺍﻟﻤﺘﻐﻴﺭ JOB_TYPE ﺍﻟﻘﻴﻤﺔ EXECUTABLE ﻓﻴﻤﻜﻥ ﺃﻥ ﻴﺄﺨﺫ ﺍﻟﻤﺘﻐﻴﺭ JOB_ACTION ﺍﻱ ﺸﺊ ﻴﻤﻜﻥ ﺃﻥ ﻴﺘﻡ ﺘﻨﻔﻴﺫﻩ ﻋﻥ ﻁﺭﻴﻕ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل
ﻜﺄﻥ ﻴﻜﻭﻥ ﻤﺜﻼﹰ ﻤﻠﻔﺎﹰ ﻴﻘﻭﻡ ﺒﻌﻤل ﺒﻌﺽ ﺍﻟﻤﻬﺎﻡ ﻋﻠﻲ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل.
NUMBER_OF_ARGUMENTS: ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﺘﺤﺩﻴﺩ ﻋﺩﺩ ﺍلArgument ﺍﻟﺘﻲ ﻴﺠﺏ ﺃﻥ ﺘﻀﻊ ﻓﻲ الJob_Action.
START_DATE: ﻟﺘﺤﺩﻴﺩ ﺒﺩﺍﻴﺔ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍلJob.
REPEAT_INTERVAL: ﻟﺘﺤﺩﻴﺩ ﻜﻴﻑ ﻴﺘﻡ ﺘﻜﺭﺍﺭ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍلJob.
END_DATE: ﻟﺘﺤﺩﻴﺩ ﺯﻤﻥ ﻨﻬﺎﻴﺔ ﺘﻨﻔﻴﺫ ﺍلJob.
JOB_CLASS: ﻟﺘﺤﺩﻴﺩ ﺍلCLASS ﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﻌﻤل ﺘﻜﺎﻤل ﺒﻴﻥ Resource & Scheduler Manager.
ENABLED: ﻟﺘﺤﺩﻴﺩ ﻫل ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍلJob ﺃﻤﺎ ﺘﻅل ﻋﺎﻁﻠﺔ ﺤﺘﻲ ﻴﺘﻡ ﺘﻐﻴﻴﺭ ﻗﻴﻤﺔ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻟﻴﺄﺨﺫ ﺍﻟﻘﻴﻤﺔ TRUE ﻓﻲ الوضع الإفتراضي ﻴﺄﺨﺫ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ FALSE.
AUTO_DROP: ﻟﺘﺤﺩﻴﺩ ﻫل ﻴﺘﻡ ﺤﺫﻑ ﺍلJob ﺒﻌﺩ ﺇﻨﺘﻬﺎﺀ ﻓﺘﺭﺓ ﺯﻤﻥ ﺘﻨﻔﻴﺫﻫﺎ (END_DATE) ﺃﻤﺎ ﻻ، ﻓﻲ الوضع الإفتراضي ﺘﻅل ﺍلJob ﻤﻭﺠﻭﺩﺓ ﻋﻥ ﻁﺭﻴﻕ ﺍﺨﺫ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﻘﻴﻤﺔ TRUE.
COMMENTS: ﻟﻜﺘﺎﺒﺔ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﺍﻟﺘﻲ ﺘﺭﻴﺩ.
begin dbms_scheduler.create_job( job_name=>'insertserial', job_type=>'plsql_block', job_action=>'insert into tserial values(sysdate);', start_date=>sysdate, repeat_interval=>'sysdate+1', end_date=>sysdate+30, enabled=>true, auto_drop=>true); commit; end; |
ﻫﻜﺫﺍ ﻗﻤﻨﺎ ﺒﻌﻤل Job ﺘﺴﻤﻲ INSERTSERIAL ﻫﺫﻩ ﺍلJob ﺘﻘﻭﻡ ﺒﺈﻀﺎﻓﺔ ﺭﻗﻡ ﻤﺘﺴﻠﺴل ﻓﻲ ﺍﻟﺠﺩﻭل Tserial ﻴﻭﻤﻴﺎﹰ ﺇﺒﺘﺩﺍﺀً ﻤﻥ ﺍﻟﻴﻭﻡ ﻭﻟﻤﺩﺓ ﺸﻬﺭ ﻜﺎﻤل،
ﻫﺫﻩ ﺍلJob ﺘﻌﻤل ﻤﺒﺎﺸﺭﺓ ﺒﻌﺩ ﺇﻨﺸﺎﺌﻬﺎ ﻭﻴﺘﻡ ﺤﺫﻓﻬﺎ ﺒﻌﺩ ﺍﺨﺭ ﺘﻨﻔﻴﺫ ﻟﻬﺎ؛ ﺃﻱ ﺒﻌﺩ ﻤﺭﻭﺭ ﺸﻬﺭ. ﻋﻤﻭﻤﹰﺎ ﺍلJob ﻋﺒﺎﺭﺓ ﻋﻥ ﻜﺎﺌﻥ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﻘﻭﻡ ﺒﺘﻨﻔﻴﺫ ﺒﻌﺽ ﺍﻟﻤﻬﻤﺎﻡ.
ﻫﺫﻩ ﺍﻟﻤﻬﺎﻡ ﻴﻤﻜﻥ ﺃﻥ ﺘﻜﻭﻥ ﻋﺒﺎﺭﺓ ﻋﻥ ﺇﺠﺭﺍﺀ Stored_procedure ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺃﻭ ﻋﺒﺎﺭﺓ ﻋﻥ PLSQL_PLOCK ﻴﻜﺘﺏ ﺩﺍﺨل ﺍلJob ﺃﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﻠﻑ ﻤﺨﺯﻥ ﻋﻥ ﻁﺭﻴﻕ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل.
ﻫﺫﻩ ﺍﻟﻤﻬﻤﺎﻡ ﻴﺘﻡ ﺘﻨﻔﻴﺫﻫﺎ ﺒﺸﻜل ﺃﻟﻲ ﻋﻥ ﻁﺭﻴﻕ ﺘﺤﺩﻴﺩ ﺯﻤﻥ ﺍﻟﺘﻨﻔﻴﺫ ﻭﺯﻤﻥ ﺘﻜﺭﺍﺭ ﺍﻟﺘﻨﻔﻴﺫ.
ﻻﺤﻅ ﻤﻌﻲ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﻗﺎﻡ ﺒﺈﻨﺸﺎﺀ Job ﻤﻜﺘﻔﻴﺔ ﺒﺫﺍﺘﻬﺎ ﺃﻱ ﻟﻡ ﺘﺘﺼل ﺏScheduler ﺃﻭ Program،
ﻋﻤﻭﻤﹰﺎ ﺍﻟﺤﺯﻤﺔ DBMS_SCHEDULER ﺘﺤﺘﻭﻱ ﻋﻠﻲ ﺃﺭﺒﻌﺔ ﺇﺠﺭﺍﺀﺍﺕ Procedures ﺘﺴﻤﻲ CREATE_JOB، ﻜل ﻭﺍﺤﺩ ﻟﻪ ﺨﺼﺎﺌﺹ ﻤﺨﺘﻠﻔﺔ ﻋﻥ ﺍﻻﺨﺭ.
ﻴﻤﻜﻨﻙ ﺍﻹﺴﺘﻌﻼﻡ ﻋﻥ ﺍلJobs ﺍﻟﺘﻲ ﺘﻌﻤل ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺠﺩﻭل DBA_SCHEDULER_JOBS.
ﻤﻥ ﻫﻨﺎ ﺘﺴﺘﻁﻴﻊ ﻤﻌﺭﻓﺔ ﺘﻔﺎﺼﻴل ﺍلJobs ﺍﻟﺘﻲ ﺘﻌﻤل ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻴﻤﻜﻥ ﺘﻔﻌﻴل ﺍلJobs ﺍﻟﻌﺎﻁﻠﺔ ﻋﻥ ﺍﻟﻌﻤل Disabled ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ ENABLE ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﺤﺯﻤﺔ DBMS_SCHEDULER.
BEGIN DBMS_SCHEDULER.ENABLE('INSERTSERIAL'); END; / |
ﺘﺴﺘﻁﻴﻊ ﻜﺫﻟﻙ ﺘﻌﻁﻴﻠﻪ ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ DISABLE.
BEGIN DBMS_SCHEDULER.DISABLE('INSERTSERIAL'); END; / |
ﻴﺴﺘﻁﻴﻊ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺤﺫﻑ ﺍلJobs ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ DROP_JOB.
BEGIN DBMS_SCHEDULER.DROP_JOB('INSERTSERIAL',TRUE); END; / |
ﻜﻤﺎ ﻴﻤﻜﻥ ﺇﻴﻘﺎﻑ ﺍلJob ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ STOP ﻭﺘﻨﻔﻴﺫ ﺍلJob ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ RUN.
ﻤﻼﺤﻅﺔ: ﻋﻨﺩ ﺇﻨﺸﺎﺀ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ DBCA ﻴﺘﻡ ﺇﻨﺸﺎﺀ ﺍﺜﻨﻴﻥ ﻤﻥ ﺍلJobs، ﺍﻷﻭﻟﻲ PURGE_LOG ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﺘﻨﻅﻴﻑ ﺍلlog Scheduler،
ﻭﺍﻟﺜﺎﻨﻴﺔ GATHER_STATS_JOB ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﻌﻤل ﺍﺤﺼﺎﺌﻴﺎﺕ ﻟﺘﺤﻠﻴل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
---------------------------------------------------