Adatbázis Rendszerek II. 7. PLSQL JOB-ok 25/1B IT MAN

Hasonló dokumentumok
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

B I T M A N B I v: T M A N

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Tranzakciókezelés PL/SQL-ben

Adatbázis Rendszerek II. 2. Gyakorló környezet

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Haladó DBMS ismeretek 1

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

B I T M A N B I v: T M A N

SQL DDL-2 (aktív elemek) triggerek

Adatbázis Rendszerek II. 8. Gyakorló környezet

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A 1-1

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis Rendszerek II. 3. SQL alapok

Bevezetés: az SQL-be

PL/SQL blokk. [címke] [DECLARE deklarációs utasítás(ok)] BEGIN végrehajtható utasítás(ok) [EXCEPTION kivételkezelő] END [név];

Az SQL*Plus használata

SQLServer. Particionálás

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

PL/SQL (folytatás) Kurzorok, függvények, eljárások

Adatbázisok elmélete 9. előadás

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

DebitTray program Leírás

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Kalmár György Adatbázis alapú rendszerek

SQL DDL-1: táblák és megszorítások

A ChipScope logikai analizátor

INFORMATIKAI ALAPISMERETEK

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Concurrency in Swing

ContractTray program Leírás

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

B I T M A N B I v: T M A N

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Thermo1 Graph. Felhasználói segédlet

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

ServiceTray program Leírás

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Operációs rendszerek 1.

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

LBRA6i integrált rendszer

Adatbázis rendszerek SQL nyomkövetés

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Virtuális Obszervatórium. Gombos Gergő

INFORMATIKAI ALAPISMERETEK

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázisok elmélete 9. előadás

Összefoglaló. <variable_name> [IN OUT IN OUT] <data_type> [:=<default_value>] ... <label_name>: <statements>... GOTO <label_name>;...

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Webprogramozás szakkör

SQLServer. SQLServer konfigurációk

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Felhasználó által definiált adattípus

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

- Kurt.exe a windows-os felület, amelyen keresztül a lejátszás konfigurálható.

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

AWK programozás, minták, vezérlési szerkezetek

FELHASZNÁLÓI DOKUMENTÁCIÓ ÜZEMBEHELYEZÉSI KÉZIKÖNYV

INFORMATIKAI ALAPISMERETEK

Adatbázis-kezelés. Harmadik előadás

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Oracle Enterprise Manager 12c Cloud Control és 11g Grid Control összehasonlítás

Szoftvertechnolo gia gyakorlat

Adatbázisok* tulajdonságai

Eseményvezérelt és objektumorientált programozás

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Együttes hozzárendelés

SQLServer. Védelmi struktúra

Adatbázis Rendszerek II. 3. PLSQL alapok 92/1B IT MAN

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

TÁJÉKOZTATÓ A CCN V VERZIÓHOZ. Változások a V verzió kiadása után. CobraConto.Net alkalmazás. Számlakészítés

Viczián István IP Systems JUM XIX szeptember 18.

Operációs rendszerek. Az NT folyamatok kezelése

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

MÉRY Android Alkalmazás

Adatbázisok webalkalmazásokban

Átírás:

Adatbázis Rendszerek II. 7. PLSQL JOB-ok 25/1B IT MAN B IT v: 2016.03.04 MAN

Témakörök A PL/SQL alapjai Alprogramok Csomagok Triggerek Job-ok 25/2 B IT MAN

ECA (Event, Condition, Action) modell E Szabály A Kiváltó esemény C Feltétel Válasz tevékenység JOB Tárolt eljárás Időpont 25/3 B IT MAN

Munkakötegek A Job-ok feladatok ütemezésére és az ütemezett feladatok adminisztrációjára használhatók. Feladatként egy PL/SQL eljárás ütemezhető. A feladat lefuthat egyszer, de rendszeresen ismétlődés is előírható. A feladat végrehajtása lehet sikeres és sikertelen. A sikertelen feladatok végrehajtását az adatbázis-kezelő újra megpróbálja, majd többszöri sikertelen próbálkozás után a feladatot felfüggeszti. A feladatokat magunk is felfüggeszthetjük, vagy törölhetjük. Az ütemezett feladatok végrehajtásáról egy folyamatosan a háttérben futó folyamat (SNP) gondoskodik. A szükséges függvények és eljárások a DBMS_JOB csomagban találhatók. 25/4 B IT MAN

Munkakötegek Feladatokat bárki ütemezhet, aki jogosult a DBMS_JOB csomag használatára. A már ütemezett feladatok paramétereit csak a feladat tulajdonosa módosíthatja. A feladat tulajdonosa az a felhasználó, aki a feladatot ütemezte. Jogosultság adása a Job használatára: GRANT EXECUTE ON dbms_job TO username; 25/5 B IT MAN

Munkakötegek működése JOB7 14:05 14:25 JOB11 14:25 JOB2 15:00 JOB25 15:05... JOB7 JOB2 14:05 16:00 JOB11 16:25 JOB11 JOB11 16:25 15:00 JOB2 JOB2 16:00 JOB73 16:30 25/6 B IT MAN

Munkakötegek működése A munkakötegek egy várakozó sorban foglalnak helyet. Minden munkaköteghez hozzá van rendelve a következő futtatási idő. A DBMS folyamatosan figyeli, hogy van-e indítandó munkaköteg. Ha igen, elindítja. A lefutott munkakötegeknél a DBMS meghatározza a következő futás időpontját. Így egy új munkaköteg kerül be a várakozó sorba. 25/7 B IT MAN

A DBMS_JOB csomag utasításai SUBMIT: új feladat behelyezése a várakozó sorba REMOVE: ütemezett feladat ütemezésének megszüntetése CHANGE: ütemezett feladat ütemezési paramétereinek módosítása WHAT: ütemezett feladat által végrehajtandó utasítás módosítása NEXT_DATE: ütemezett feladat átütemezése más időpontra INSTANCE: ütemezett feladat RAC példányhoz rendelése INTERVAL: ütemezett feladat ismétlési gyakoriságának módosítása BROKEN: ütemezett feladat végrehajtásának felfüggesztése RUN: ütemezett feladat manuális végrehajtása USER_EXPORT: feladat ütemezését eredményező utasítás visszafejtése 25/8 B IT MAN

Munkaköteg létrehozása DBMS_JOB.SUBMIT( job OUT binary_integer, what IN varchar2, next_date IN date default sysdate, interval IN varchar2 default 'null', no_parse IN boolean default false ); A default értékek miatt elmaradhatnak! job új munkaköteg száma, what végrehajtandó PL/SQL kód (alprogram), next_date a következő végrehajtás időpontja, interval a végrehajtási időpont növekménye, no_parse a what objektum szintaktikai helyességének ellenőrzése 25/9 B IT MAN

Job példa declare jobno number; begin dbms_job.submit(jobno, 'alp1;', (sysdate+1/24), 'sysdate+1'); commit; dbms_output.put_line('a job száma: ' jobno); end; 25/10 B IT MAN

Példák Időpontok megadása Azonnali indulás, naponkénti végrehajtás: dbms_job.submit (jobno, 'prg1;', sysdate, 'sysdate+1' ); Azonnali indulás, futás óránként: Indulás: alapértelmezett! dbms_job.submit (jobno, 'p1; ', interval => 'sysdate+(1/24)'); Indulás következő egész órakor, futás 10 percenként: dbms_job.submit(jobno, 'prg1;', trunc(sysdate+(1/24), 'HH'), 'trunc(sysdate+(10/24/60),''mi'')'); Indulás holnap reggel 6-kor, futás minden hétfőn 15-kor: dbms_job.submit(jobno, 'prg1;', trunc(sysdate+1)+6/24, 'next_day(trunc(sysdate), ''monday'')+15/24' ); 25/11 B IT MAN

Job-ok kezelése Job-ok kiíratása: select * from user_jobs; Job eltávolítása: begin dbms_job.remove(job_szama); end; 25/12 B IT MAN

Autós példa 33. Készítsünk olyan JOB-ot, mely 1 órával a JOB-sorba kerülés után elindul, ezután 24 óránként lefut, és végrehajtja az auto_m1 nevű tárolt eljárást. declare JobNo number; begin DBMS_JOB.SUBMIT(JobNo, 'auto_m1;', (SYSDATE+1/24), 'SYSDATE+1'); Commit; end; 25/13 B IT MAN

Job-ok kezelése Job-ok kiíratása: select * from user_jobs; select job, what, next_date, next_sec FROM user_jobs; > Select job,what,next_date,next_sec JOB WHAT NEXT_DATE NEXT_SEC 21 auto_m1; 11-ÁPR.-17 09:21:27 Job törlése: Exec dbms_job.remove(job_szama); > begin dbms_job.remove(21); end; 25/14 B IT MAN

Indítási időpontok Azonnali indulás: sysdate Következő egész órakor: trunc(sysdate+(1/24), 'HH') Holnap reggel 6-kor: trunc(sysdate+1)+6/24 Egy konkrét időpontban: trunc(to_date('03-mar-2011 13:00:00')) 25/15 B IT MAN

Ismétlődési periódus Naponként: 'sysdate+1' Minden nap nulla órakor: 'trunc(sysdate + 1)' Óránként: 'sysdate+(1/24)' Egész órakor, óránként: 'trunc(sysdate + 1/24)' 10 percenként: 'trunc(sysdate+(10/24/60),''mi'')' Fél percenként: 'sysdate + 30/86400' Hetente: 'sysdate + 7' Hétfőnként 15-kor: 'next_day(trunc(sysdate), ''MONDAY'') + 15/24' Minden negyedév első csütörtöki napján: 'next_day(add_months(trunc(sysdate, ''Q''), 3), ''THURSDAY'')' 25/16 Nincs ismétlődés: null B IT MAN

Job változások Az előbbiekben ismertetett csomag már elavult, és időközben leváltotta az újabb, DBMS_SCHEDULER csomag. A régi módszerrel létrehozott csomagok még működnek az Oracle rendszerekben, de ha megvonják az execution privilege jogot erről a csomagról, akkor már nem használhatók. Az új csomag használata egyszerűbb, az egyes paraméterek könnyebben beállíthatók, sokkal több szolgáltatása van, mint az előzőnek. 25/17 B IT MAN

A DBMS_SCHEDULER csomag Nem csak cron-szerűen (óra alapján) lehet vele job-okat elindítani, hanem események (event-ek) is képesek elsütni a végrehajtandó tárolt eljárásokat. A tárolt eljárásokat láncokba (chain) tudja fűzni, nem csak egyenként tudja az eljárásokat indítani. A csomag segítségével időablakokat (window) lehet definiálni a SYS sémában, és az adott időablakhoz erőforrásprofilokat (resource plan) lehet rendelni. Az adott ablakban indított job-ok az előre adott erőforrásokhoz fognak hozzáférni. 25/18 B IT MAN

A csomag használata DBMS_SCHEDULER.CREATE_JOB létrehoz egy elemi job-ot DBMS_SCHEDULER.COPY_JOB lemásol egy már létező elemi job-ot egy másik példányban DBMS_SCHEDULER.CREATE_CHAIN létrehoz egy láncot, azaz tárolt eljárások egy végrehajtási sorozatát valamilyen cél elérése érdekében DBMS_SCHEDULER.ALTER_CHAIN megváltoztatja egy már létrehozott lánc valamely lépését DBMS_SCHEDULER.ALTER_RUNNING_CHAIN megváltoztatja egy éppen futó lánc valamely lépését DBMS_SCHEDULER.CREATE_EVENT_SCHEDULE létrehoz egy esemény-ütemezést (event schedule), ami majd elindít egy job-ot az esemény bekövetkeztekor 25/19 B IT MAN

A csomag használata DBMS_SCHEDULER.ENABLE futtatásra engedélyez egy elemi jobot, vagy láncot (chain), vagy időablakot (window), vagy ablakcsoportot (window group) DBMS_SCHEDULER.DISABLE megtiltja egy elemi job, vagy lánc (chain), vagy időablak (window), vagy ablakcsoport (window group) futtatását DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE job paraméterének beállítása, megváltztatása DBMS_SCHEDULER.RUN_CHAIN azonnali hatállyal elindít egy végrehajtási láncot (chain) DBMS_SCHEDULER.RUN_JOB azonnali hatállyal elindít egy job-ot DBMS_SCHEDULER.STOP_JOB leállít egy éppen futó job-ot vagy egy job class valamennyi job-ját DBMS_SCHEDULER.DROP_JOB töröl egy job-ot 25/20 B IT MAN

Job indítása declare Régi módszer: jobno number; begin dbms_job.submit(jobno, 'alp1;', (sysdate+1/24), 'sysdate+1'); commit; dbms_output.put_line('a job száma: ' jobno); end; begin dbms_scheduler.create_job( job_name => 'job_1', job_type => 'stored_procedure', job_action => 'alp1', start_date => sysdate, repeat_interval => 'freq=daily; interval=1', end_date => sysdate + interval '30' day, comments => 'Napi ellenőrzés 30 napig' ); end; 25/21 B IT MAN

Felhasználható kifejezések job_type => Plsql_block Stored_procedure Executable Chain repeat_interval => Freq = Yearly Monthly Weekly Daily Hourly Minutely Secondly repeat_interval => Bymonth Bymonthday Byweekno Byyearday Bydate Byday Byhour Byminute bysecond repeat_interval => freq=daily; byhour=9; byminute=30; byday=mon,tue,wed,thu,fri freq=monthly; interval=2; bymonthday=15; byhour=9,17 freq=yearly; bydate=0301,0601,0901,1201; 25/22 B IT MAN

Job-ok kezelése Job-ok kiíratása: select * from user_jobs; Job eltávolítása: begin dbms_scheduler.drop_job ('job_neve'); end; 25/23 B IT MAN

Órai feladatok 1. Készítsen egy tárolt eljárást (VDbKiir), mely kiírja a Vasarlas tábla rekordjainak számát. Készítsen egy JOB-ot, mely azonnal elindul, 1 percenként ismétlődik, és végrehajtja a DbKiir eljárást. Írassa ki a futó JOB-ok listáját. Törölje le a JOB-ot. Készítsen egy tárolt eljárást (BevJ), mely kiírja az aznapi bevételt. Készítsen egy JOB-ot, mely minden egész órakor lefut. Írassa ki a futó JOB-ok listáját. Törölje le a JOB-ot. 25/24 B IT MAN

VÉGE VÉGE 25/25 B IT MAN