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
Programs
ﻟﻨﻔﺘﺭﺽ ﺃﻨﻨﺎ ﻨﺭﻴﺩ ﺇﻨﺸﺎﺀ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍلJobs ﺠﻤﻴﻊ ﻫﺫﻩ ﺍلJobs ﺘﻘﻭﻡ ﺒﺘﻨﻔﻴﺫ Stored_Procedure ﻤﺨﺯﻥ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺃﻭﻗﺎﺕ ﻤﺨﺘﻠﻔﺔ،
ﻓﻲ ﻤﺜل ﻫﺫﺍ ﺍﻟﺴﻨﺎﺭﻴﻭ ﺃﻨﺕ ﺘﺴﺘﻁﻴﻊ ﺇﻨﺸﺎﺀ ﺠﻤﻴﻊ ﻫﺫﻩ ﺍلJobs ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ CREATE_JOB ﺍﻷﻭل ﺒﺤﻴﺙ ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺍلJOB_TYPE ﻟﻴﺄﺨﺫ ﺍﻟﻘﻴﻤﺔ STORED_PROCEDURE
ﻭﺍلJOB_ACTION ﻟﻴﺄﺨﺫ ﺍﺴﻡ ﺍﻹﺠﺭﺍﺀ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫﻩ، ﺴﻨﻜﺭﺭ ﻫﺫﺍ ﺍﻟﻌﻤل ﻓﻲ ﺠﻤﻴﻊ ﺍلJobs ﺍﻟﺘﻲ ﻨﺭﻴﺩ ﺇﻨﺸﺎﺅﻫﺎ ﻭﻟﻬﺎ ﺇﺭﺘﺒﺎﻁ ﺒﻨﻔﺱ ﺍلStored_Procedure،
ﻫﺫﺍ ﺍﻷﻤﺭ ﻗﺩ ﻴﻜﻭﻥ ﻤﺘﻌﺒﺎﹰ ﻭﻓﻴﻪ ﻨﻭﻉ ﻤﻥ ﺍﻟﺘﻜﺭﺍﺭ، ﺇﺫﺍﹰ ﻤﺎ ﺍﻟﺤل؟
ﺍﻟﺤل ﻫﻭ ﺇﻨﺸﺎﺀ ﺍلProgram، ﺒﺤﻴﺙ ﻴﺤﺘﻭﻱ ﻫﺫﺍ ﺍلProgram ﻋﻠﻲ ﻤﻌﻠﻭﻤﺎﺕ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫﻩ ﻭﻤﻥ ﺜﻡ ﻨﻘﻭﻡ ﻓﻘﻁ ﺒﻤﻨﺎﺩﺍﺘﻪ ﻤﻥ ﺨﻼل ﺍلJob.
ﺴﻨﺴﺘﺨﺩﻡ ﻫﻨﺎ ﺇﺠﺭﺍﺀ ﻴﺴﻤﻲ CREATE_PROGRAM ﻴﻨﺘﻤﻲ ﻟﻠﺤﺯﻤﺔ DBMS_SCHEDULER، ﻭﻻﺤﻅ ﺃﻥ ﻤﺘﻐﻴﺭﺍﺘﻪ ﻟﻴﺴﺕ ﻜﺜﻴﺭﺓ ﻓﻘﻁ ﻨﺤﺘﺎﺝ ﻟﺘﺤﺩﻴﺩ ﺍلPROGRAM_NAME
ﻭﻫﻲ ﺃﺴﻡ ﻴﺠﺏ ﺃﻥ ﻴﻜﻭﻥ ﻭﺤﻴﺩﺍﹰ ﻓﻲ ﻫﺫﻩ ﺍلSchema، ﻜﺫﻟﻙ ﻨﺤﺘﺎﺝ ﻟﺘﺤﺩﻴﺩ ﺍلPROGRAM_TYPE ﻭﻫﻭ ﻴﺴﺎﻭﻱ ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﺍﻟﻤﺘﻐﻴﺭ JOB_TYPE
ﻭﺃﻴﻀﺎﹰ ﺍﻟﻤﺘﻐﻴﺭ PROGRAM_ACTION ﻫﻭ ﻴﺴﺎﻭﻱ ﺍﻟﻤﺘﻐﻴﺭ JOB_ACTION ﺃﻤﺎ ﺒﺎﻗﻲ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ (NUMBER_OF_ARGUMENTS & ENABLED & comments) ﻓﻘﺩ ﺘﻡ ﺸﺭﺤﻬﺎ ﺴﺎﺒﻘﺎﹰ.
begin dbms_scheduler.create_program( program_name=>'prog_account', program_type=>'stored_procedure', program_action=>'account', enabled=>true); end; |
ﻗﻤﻨﺎ ﺒﺈﻨﺸﺎﺀ Program ﻴﺴﻤﻲ prog_program ﻫﺫﺍ ﺍلProgram ﻴﻘﻭﻡ ﺒﺘﺤﺩﻴﺩ ﻨﻭﻉ ﺍﻟﻤﻬﻤﺔ ﺍﻟﺘﻲ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫﻫﺎ ﻻﺤﻘﺎﹰ ﻋﻨﺩ ﺇﻨﺸﺎﺀ ﺍلJob ﻫﺫﻩ ﺍﻟﻤﻬﻤﺔ ﻫﻲ Stored_Procedure
ﻤﺨﺯﻥ ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻫﺫﺍ ﺍلProcedure ﻴﺴﻤﻲ account.
ﻨﺴﺘﻁﻴﻊ ﻤﺘﺎﺒﻌﺔ ﺠﻤﻴﻊ ﺍلPrograms ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍﺴﺘﻌﻼﻡ الفيو DBA_SCHEDULER_PROGRAMS.
ﺇﺫﺍ ﻟﻡ ﺘﺤﺩﺩ ﺍﻟﻤﺘﻐﻴﺭ Enabled ﻟﻴﺄﺨﺫ ﺍﻟﻘﻴﻤﺔ True ﻓﺈﻥ ﺍﻷﺼل ﺃﻥ ﻴﺄﺨﺫ ﺍﻟﻘﻴﻤﺔ False ﺃﻱ ﺃﻨﻪ ﻴﻜﻭﻥ ﻋﺎﻁﻼﹰ.
ﻴﻤﻜﻨﻙ ﺃﻥ ﺘﻘﻭﻡ ﺒﺘﻔﻌﻴﻠﻪ ﻓﻴﻤﺎ ﺒﻌﺩ ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ ENABLE ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﺤﺯﻤﺔ DBMS_SCHEDULER ، ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﻟﻴﺱ ﻓﻘﻁ ﻟلProgram
ﻭﻟﻜﻥ ﻴﻤﻜﻥ ﺇﺴﺘﺨﺩﺍﻤﻪ ﻜﺫﻟﻙ ﻟﺘﻔﻌﻴل ﺒﺎﻗﻲ ﻜﺎﺌﻨﺎﺕ ﺍﻟﺠﺩﻭﻟﺔ.
ﻨﺴﺘﻁﻴﻊ ﻜﺫﻟﻙ ﻓﻴﻤﺎ ﺒﻌﺩ ﺤﺫﻑ ﺍلProgram ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍﻹﺠﺭﺍﺀ DROP_PROGRAM.
BEGIN DBMS_SCHEDULER.DROP_PROGRAM( PROGRAM_NAME=>'PROG_ACCOUNT',FORCE=>TRUE); END; / |
ﻫﻜﺫﺍ ﻗﻤﻨﺎ ﺒﺤﺫﻑ ﺍلProgram ﺍﻟﺫﻱ ﻗﻤﻨﺎ ﺒﺈﻨﺸﺎﺌﻪ ﺴﺎﺒﻘﺎﹰ.
-------------------------------------------