Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

ORACLE ORDBMS adminisztrációs feladatok 7. rész dr. Kovács László 2004.

Hasonló előadás


Az előadások a következő témára: "ORACLE ORDBMS adminisztrációs feladatok 7. rész dr. Kovács László 2004."— Előadás másolata:

1 ORACLE ORDBMS adminisztrációs feladatok 7. rész dr. Kovács László 2004

2 további csomagok DBMS_PIPE Kommunikációs csatorna egy instance processzei között Pipe store sessionbuffer CREATE_PIPEcsatorna létrehozása PACK_MESSAGEüzenet létrehozása SEND_MESSAGEüzenet küldése RECEIVE_MESSAGEüzenet fogadása UNPACK_MESSAGEüzenet kibontása RESET_BUFFERbuffer törlése PURGEcsatorna tisztítása REMOVE_PIPE csatorna megszüntetése

3 timeout INTEGER DEFAULT MAXWAIT; meret INTEGER DEFAULT 8092; priv BOOLEAN DEFAULT TRUE; DBMS_PIPE.RESET_BUFFER; proba := DBMS_PIPE.UNIQUE_SESSION_NAME; szoveg := ‘UZEN’; DBMS_PIPE.CREATE_PIPE(proba,merert,priv); DBMS_PIPE.PACK_MESSAGE(szoveg); DBMS_PIPE.SEND_MESSAGE(proba,timeout); DBMS_PIPE.RECEIVE_MESSAGE(proba, timeout); DBMS_PIPE.UNPACK_MESSAGE(szoveg2); DBMS_PIPE.REMOVE_PIPE(proba);

4 DBMS_LOCK felhasználó vezérelt zárolás (user lock oracle lock) kompatibilitási mátrix meglévő mód igényelt mód NL SS SX S SSX X NLSS SX S SSXX I I I I I I IIIII IIII II II I N N N N N N NNN N N N NN N N

5 DBMS_LOCK ALLOCATE_UNIQUEid generálása REQUESTzárolás elhelyezés CONVERTzárolás átminősítés RELEASEzárolás felengedés SLEEPsession felfüggesztés zárolási mód kódok: NL1 SS2 SX3 S4 SSX5 X6

6 minta

7 DBMS_RANDOM INITIALIZEinicializálás SEEDgenerálási érték beállítás RANDOMszám előállítás TERMINATEcsomag bezárás Véletlenszám generálás CREATE PROCEDURE G1 (DB IN NUMBER, SS IN NUMBER) AS BEGIN DBMS_RANDOM. INITIALIZE(SS); FOR I=1..DB LOOP DBMS_OUTPUT.PUT_LINE(TO_CHAR(DBMS_RANDOM.RANDOM)) END LOOP; END; SET SERVEROUTPUT ON EXECUTE G1(5,23);

8 Levélküldés Jserver, TCP modulokra épül fő struktúrák: connection(host, port) reply(code, text) open_connectionkapcsolat felvétel heloszinkronizálás maillevél kezdet rcptcimzett megadása dataüzenet törzs quitkapcsolat zárás

9 CREATE PROCEDURE LEVELEZ (KULDO IN VARCHAR2, CIMZETT IN VARCHAR2, UZENET IN VARCHAR2) AS MAILHOST VARCHAR2(30) := ‘mail.ab.dom’; MAIL_CONN UTL_SMTP.CONNECTION; VALA UTL_SMTP.REPLAY; BEGIN MAIL_CONN := UTL_SMTP.OPEN_CONNECTION(MAILHOST,25); VALA := UTL_SMTP.HELO(MAIL_CONN, MAILHOST); DBMS_OUTPUT.PUT_LINE(VALA.TEXT); UTL_SMTP.MAIL(MAIL_CONN,KULDO); UTL_SMTP.RCPT(MAIL_CONN,CIMZETT); UTL_SMTP.DATA(MAIL_CONN,UZENET); UTL_SMTP.QUIT(MAIL_CONN); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUTLINE(SQLERRM); END execute levelez (‘ ’,…);

10 Particionált táblák a tábla / index rekordjainak szétbontása csoportokra típusai: Tartomány alapú (range) : a rekordokat a kulcs alapján ossza szét. Az egyes kulcs érték tartományok külön partícióba kerülnek Hash alapú: egy egyenletesebb elosztást biztosító hash függvény alapján rendel a különböző kulcs értékekhez egy partíciót Vegyes módszer (composite partitioning) : előbb tartomány alapú szétválogatás, majd egy hash alapú finomabb szétbontás A különböző partíciók különböző szegmensekben, tablespace-ben helyezkednek el

11 Előnyök hatékonyság: - az egyes partíciók bizonyos esetekben kihagyhatók - párhuzamosítás - gyorsabb hozzáférés karbantartás - önálló adminisztráció - egyedi tárolási paraméterek adatvédelem - önálló állományszintű védelmi lehetőség nem lehet CLUSTER-ben nem lehet LONG mező saját zárolási szint

12 CREATE TABLE sales ( invoice_no NUMBER, sale_year INT NOT NULL, sale_month INT NOT NULL, sale_day INT NOT NULL ) PARTITION BY RANGE (sale_year, sale_month, sale_day) ( PARTITION sales_q1 VALUES LESS THAN (1997, 04, 01) TABLESPACE tsa, PARTITION sales_q2 VALUES LESS THAN (1997, 07, 01) TABLESPACE tsb, PARTITION sales_q3 VALUES LESS THAN (1997, 10, 01) TABLESPACE tsc, PARTITION sales_q4 VALUES LESS THAN (1998, 01, 01) TABLESPACE tsd );

13 CREATE TABLE product(... ) STORAGE (INITIAL 10M) PARTITION BY HASH(column_list) ( PARTITION p1 TABLESPACE h1, PARTITION p2 TABLESPACE h2 ); CREATE TABLE orders( ordid NUMBER, orderdate DATE, productid NUMBER, quantity NUMBER) PARTITION BY RANGE(orderdate) SUBPARTITION BY HASH(productid) SUBPARTITIONS 8 STORE IN(ts1,ts2,ts3,ts4,ts5,ts6,ts7,ts8) ( PARTITION q1 VALUES LESS THAN('01-APR-1998'), PARTITION q2 VALUES LESS THAN('01-JUL-1998'), PARTITION q3 VALUES LESS THAN('01-OCT-1998'), PARTITION q4 VALUES LESS THAN(MAXVALUE) );

14 ALTER TABLE admin.patient_visits DROP PARTITION pv_dec92; SELECT * FROM sales PARTITION (s_nov97) s WHERE s.amount_of_sale > 1000; leírók:DBA_TAB_PARTITIONS DBA_TAB_SUBPARTITIONS DBA_IND_PARTITIONS DBA_IND_SUBPARTITIONS DBA_PART_COL_STATISTICS

15 LOB objektumok kezelése típusai: - DB-ben tárolt - táblában - külön TABLESPACE - külön állományban (BFILE) egy táblában több LOB mező is lehet - BLOB - CLOB - NCLOB - LOB locator

16 LOB kezelő csomag DBMS_LOB OPENLOB megnyitása CLOSE LOB lezárása GETLENGTHLOB elem hossza READLOB elem olvasása WRITE LOB elem irása FILEOPENBLOB nyitása FILECLOSEBLOB zárás LOADFROMFILE BLOB betöltése SUBSTRLOB részlet INSTRLOB részlet keresése APPENDhozzáfűzés ERASEtartalom törlés

17 CREATE OR REPLACE PROCEDURE Example_l2f IS lobd BLOB; fils BFILE := BFILENAME('SOME_DIR_OBJ','file specifikáció'); amt INTEGER := 4000; BEGIN SELECT b_lob INTO lobd FROM lob_table WHERE key_value = 42 FOR UPDATE; dbms_lob.fileopen(fils, dbms_lob.file_readonly); dbms_lob.loadfromfile(lobd, fils, amt); COMMIT; dbms_lob.fileclose(fils); END;

18 CREATE OR REPLACE PROCEDURE Example2a IS lob_1, lob_2 BLOB; retval INTEGER; BEGIN SELECT b_col INTO lob_1 FROM lob_table WHERE key_value = 45; SELECT b_col INTO lob_2 FROM lob_table WHERE key_value = 54; retval := dbms_lob.compare(lob_1, lob_2, 5600, 33482, 128); IF retval = 0 THEN …. ELSE … END IF; END;

19 CREATE OR REPLACE PROCEDURE Example_13a IS src_lob BLOB; buffer RAW(32767); amt BINARY_INTEGER := 32767; pos INTEGER := ; BEGIN SELECT b_col INTO src_lob FROM lob_table WHERE key_value = 21; LOOP dbms_lob.read (src_lob, amt, pos, buffer); … pos := pos + amt; END LOOP; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('End of data'); END;

20 Hibakezelő csomag DBMS_DEBUG DBMS_DEBUG.INITIALIZE regisztrálás DBMS_DEBUG.DEBUG_ONelindítás DBMS_DEBUG.DEBUG_OFFleállítás debug session target session ALTER SESSION SET PLSQL_DEBUG = true; ALTER [PROCEDURE | FUNCTION | PACKAGE | TRIGGER | TYPE] COMPILE DEBUG; debug információk beépítése: Target session

21 Debug session DBMS_DEBUG.ATTACH_SESSION kapcsolódás DBMS_DEBUG.DETACH_SESSION leválás DBMS_DEBUG.SET_BREAKPOINTtöréspont DBMS_DEBUG.DELETE_BREAKPOINT DBMS_DEBUG.SHOW_BREAKPOINTS DBMS_DEBUG.SYNCHRONIZEelső esemény DBMS_DEBUG.CONTINUEfolytatás DBMS_DEBUG.GET_VALUEváltozó kezelés DBMS_DEBUG.SET_VALUE DBMS_DEBUG.SHOW_SOURCE DBMS_DEBUG.EXECUTEvégrehajtás a targetben

22 minta


Letölteni ppt "ORACLE ORDBMS adminisztrációs feladatok 7. rész dr. Kovács László 2004."

Hasonló előadás


Google Hirdetések