l11

21
Baze de date Oracle LUCRAREA nr. 11 IMPORTUL ŞI EXPORTUL DATELOR DIN BAZA DE DATE ORACLE 1. Scopul lucrării Lucrarea are drept scop însuşirea deprinderilor încărcarea, exportul şi importul datelor din baza de date Oracle. 2. Încărcarea datelor din surse externe Se poate face cu ENTERPRISE MANAGER sau cu utilitarul SQLLoader. 2.1. SQLLoader SQLLoader este un utilitar (SQLLDR.EXE în <Oracle home>\bin) care încarcă date din fişiere externe în baza de date. Realizează următoarele operaţii: Încarcă date prin reţea, adică se poate lansa de pe orice calculator client, diferit de serverul Oracle. Poate încărca date din mai multe fişiere în aceeaşi sesiune. Poate încărca date în mai multe tabele în aceeaşi sesiune. Se specifică caracteristicile datelor. Se pot filtra datele preluate. Se pot modifica datele preluate utilizând funcţiile SQL. Se pot genera chei unice în coloane specificate. Se utilizează fişiere ale sistemului de operare ca sursă ale datelor. Se pot prelua date de pe diferiţi suporţi (disc, bandă magnetică, etc) Se pot prelua date relaţionate (cu restricţii) Se pot prelua date pe calea convenţională (prin insert – cu mai mute facilităţi) sau direct (variantă mai rapidă dar cu limitări). Schema de funcţionare este dată în figura 1: Figura 1 Schema de funcţionare SQLLoader Lucrarea de laborator nr. 10 - 2 -

Transcript of l11

  • Baze de date Oracle

    LUCRAREA nr. 11

    IMPORTUL I EXPORTUL DATELOR DIN BAZA DE DATE ORACLE

    1. Scopul lucrrii Lucrarea are drept scop nsuirea deprinderilor ncrcarea, exportul i importul datelor din baza de date Oracle. 2. ncrcarea datelor din surse externe Se poate face cu ENTERPRISE MANAGER sau cu utilitarul SQLLoader. 2.1. SQLLoader SQLLoader este un utilitar (SQLLDR.EXE n \bin) care ncarc date din fiiere externe n baza de date. Realizeaz urmtoarele operaii:

    ncarc date prin reea, adic se poate lansa de pe orice calculator client, diferit de serverul Oracle.

    Poate ncrca date din mai multe fiiere n aceeai sesiune. Poate ncrca date n mai multe tabele n aceeai sesiune. Se specific caracteristicile datelor. Se pot filtra datele preluate. Se pot modifica datele preluate utiliznd funciile SQL. Se pot genera chei unice n coloane specificate. Se utilizeaz fiiere ale sistemului de operare ca surs ale datelor. Se pot prelua date de pe diferii supori (disc, band magnetic, etc) Se pot prelua date relaionate (cu restricii) Se pot prelua date pe calea convenional (prin insert cu mai mute faciliti) sau

    direct (variant mai rapid dar cu limitri). Schema de funcionare este dat n figura 1:

    Figura 1 Schema de funcionare

    SQLLoader

    Lucrarea de laborator nr. 10 - 2 -

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 3 -

    Datele sunt ncrcate dintr-un fiier de intrare de tip text. Specificaii privind ncrcarea datelor se gsesc n fiierul de control (de obicei extensia CTL). Informaii privind nregistrrile respinse datorit verificrilor fcute de SQLLoader i de baza de date sunt trecute ntr-un fiier text (de obicei cu extensia BAD). nregistrrile nescrise n baza de date datorit filtrelor sunt trecute ntr-un fiier text separat. De asemenea se genereaz un raport al ncrcrii ntr-un fiier jurnal (extensia LOG). Fiierul de control (de tip text) conine instruciuni specifice. Exist mai multe seciuni:

    Seciunea I-a conine informaii despre sesiune cum ar fi: dimensiunea datelor de intrare, nregistrri srite, fiierul de intrare prin clauza INFILE.

    Seciunea II-a conine una sau mai multe clauze INTO TABLE. n fiecare din acestea se precizeaz informaii despre tabelele n care se ncarc date (nume, coloane)

    Seciunea III-a conine datele de intrare. Sintaxa n fiierul de control este liber (instruciunile se pot ntinde pe mai multe

    linii). Pot fi utilizate litere mari sau mici, cu excepia irurilor incluse ntre ghilimele duble (). Exemplu 1 de fiier de control: -- Comentariu LOAD DATA INFILE 'exemplu.dat' BADFILE 'exemplu.bad' DISCARDFILE 'exemplu.dsc' REPLACE INTO TABLE emp WHEN (17) = '.' TRAILING NULLCOLS (hiredate SYSDATE, deptno POSITION(1:2) INTEGER EXTERNAL(2) NULLIF deptno=BLANKS, job POSITION(7:14) CHAR TERMINATED BY WHITESPACE NULLIF job=BLANKS "UPPER(:job)", mgr POSITION(28:31) INTEGER EXTERNAL TERMINATED BY WHITESPACE NULLIF mgr=BLANKS, ename POSITION(34:41) CHAR TERMINATED BY WHITESPACE "UPPER(:ename)", empno POSITION(45) INTEGER EXTERNAL TERMINATED BY WHITESPACE, sal POSITION(51) CHAR TERMINATED BY WHITESPACE "TO_NUMBER(:sal,'$99,999.99')", comm INTEGER EXTERNAL (3) ":comm / 100" ) n exemplul de mai sus facem urmtoarele precizri:

    Prin clauza BADFILE se specific fiierul n care sunt scrise nregistrrile respinse

    Prin clauza DISCARDFILE se specific fiierul n care sunt scrise nregistrrile nepreluate datorit filtrelor impuse

    Clauza APPEND precizeaz c nregistrrile se adaug la cele existente n tabel. Pentru adugarea de nregistrri n tabele goale se utilizeaz clauza INSERT. Cu clauza REPLACE nregistrrile existente sunt terse i apoi sunt adugate nregistrrile noi.

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 4 -

    Clauza WHEN permite filtrarea nregistrrilor preluate. n acest caz, se preiau numai rndurile care au . n coloana 57.

    Clauza TRAILING NULLCOLS permite tratarea coloanelor lips (dup poziia relativ) ca NULL.

    Urmtoarele rnduri descriu structura datelor de intrare. Clauza TERMINATED BY WHITESPACE delimiteaz cmpul cu orice character invizibil (spaiu, LF, CR, FF, TAB).

    Dac fiierul de date cu numele exemplu.dat are coninutul: 30 CLERK . 100 POPESCU 101 $1,600.00 6 20 SEF . 103 IONESCU 105 $5,600.00 13 21 ING . 100 MIRCEA 101 $6,600.00 15 24 ING 107 ADRIAN 104 $3,600.00 10 21 ING . 100 ASTEFANII 101 6,600.00 15 Atunci c-da de lansare este: D:\>sqlldr test/test@hazi control = exemplu.ctl

    Fiierul jurnal obinut (exemplu.log): SQL*Loader: Release 10.2.0.1.0 - Production on V Mai 9 19:20:46 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. Fiier de Control: exemplu.ctl Fiier de Date: exemplu.dat Fiier de nregistrri invalide: exemplu.bad Fiier de nregistrri ignorate: exemplu.dsc (Permite oricte nregistrri nefiltrate) Numr pentru ncrcare: ALL Numr pentru omitere: 0 Erori permise: 50 Vector de legtur: 64 linii, maximum 256000 octei Continuare: nimic specificat ncrcarea utilizat: Convenional Tabela EMP, ncrcat cnd 17:17 = 0X2e(caracter '.') Opiune activ de inserare pentru aceast tabel: REPLACE opiunea TRAILING NULLCOLS activ Nume Coloan Poziie Len Term Incl Tip de date ------------------------------ ---------- ----- ---- ---- -------------- HIREDATE SYSDATE DEPTNO 1:2 2 CHARACTER NULL dac DEPTNO = BLANKS JOB 7:14 8 WHT CHARACTER NULL dac JOB = BLANKS irul SQL pt. coloan : "UPPER(:job)" MGR 28:31 4 WHT CHARACTER NULL dac MGR = BLANKS ENAME 34:41 8 WHT CHARACTER irul SQL pt. coloan : "UPPER(:ename)" EMPNO 45 * WHT CHARACTER SAL 51 * WHT CHARACTER irul SQL pt. coloan : "TO_NUMBER(:sal,'$99,999.99')" COMM NEXT 3 CHARACTER irul SQL pt. coloan : ":comm / 100"

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 5 -

    nregistrarea 4: Nefiltrat - au euat toate clauzele WHEN. nregistrarea 5: Invalid - Eroare n tabela EMP, coloana SAL. ORA-01722: numr nevalid Tabela EMP: 3 Rnduri ncrcate cu succes. 1 Rnd nencrcat datorit datelor eronate. 1 Rnd nencrcat deoarece toate clauzele WHEN au euat. 0 Rnduri nencrcat deoarece toate cmpurile au fost nule. Spaiu alocat pentru vectorul de legtur: 35328 octei (64

    linii) Nr. de octei citii din buffer: 1048576 Total nregistrri logice omise: 0 Total nregistrri logice citite: 5 Total nregistrri logice invalide: 1 Total nregistrri logice nefiltrate: 1 Execuia a nceput la V Mai 09 19:20:46 2008 Execuia s-a terminat la V Mai 09 19:20:47 2008 Timpul trecut a fost: 00:00:00.16 Timpul UC a fost: 00:00:00.09

    Fiierul exemplu.bad are coninutul: 21 ING . 100 ASTEFANII 101 6,600.00 15 iar fiierul exemplu.dsc 24 ING 107 ADRIAN 104 $3,600.00 10 n baza de date s-a scris: SQL> select * from emp; Tastati HIREDATE DEPTNO JOB MGR ENAME EMPNO SAL COMM ---------- -------- -------- ---------- -------- ---------- ---------- ------- 09-05-2008 30 CLERK 100 POPESCU 101 1600 ,06 09-05-2008 20 SEF 103 IONESCU 105 5600 ,13 09-05-2008 21 ING 100 MIRCEA 101 6600 ,15 Exemplu 2 de fiier de control (ex.ctl):

    LOAD DATA INFILE 'ex.dat' BADFILE 'ex.bad' DISCARDFILE 'ex.dsc' REPLACE INTO TABLE PERS FIELDS TERMINATED BY ',' (marca, nume, salariu)

    cu fiierul de date (ex.dat): 100, Popescu Ioan, 600 101, Mircea Octavian, 1700 100, Mihaila Ion, 600 106, Petrescu Andrei, 400

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 6 -

    Fiierul jurnal (ex.log) are coninutul: SQL*Loader: Release 10.2.0.1.0 - Production on V Mai 9 19:58:17

    2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. Fiier de Control: ex.ctl Fiier de Date: ex.dat Fiier de nregistrri invalide: ex.bad Fiier de nregistrri ignorate: ex.dsc (Permite oricte nregistrri nefiltrate) Numr pentru ncrcare: ALL Numr pentru omitere: 0 Erori permise: 50 Vector de legtur: 64 linii, maximum 256000 octei Continuare: nimic specificat ncrcarea utilizat: Convenional Tabela PERS, ncrcat din fiecare nregistrare logic. Opiune activ de inserare pentru aceast tabel: REPLACE Nume Coloan Poziie Len Term Incl Tip de date ------------------------ ---------- ----- ---- ---- ------------ MARCA FIRST * , CHARACTER NUME NEXT * , CHARACTER SALARIU NEXT * , CHARACTER nregistrarea 3: Invalid - Eroare n tabela PERS. ORA-00001: restricia unic (TEST.SYS_C006560) nu este

    respectat nregistrarea 4: Invalid - Eroare n tabela PERS. ORA-02290: regul de constrngere (TEST.SAL_LIM) violat Tabela PERS: 2 Rnduri ncrcate cu succes. 2 Rnduri nencrcat datorit datelor eronate. 0 Rnduri nencrcat deoarece toate clauzele WHEN au euat. 0 Rnduri nencrcat deoarece toate cmpurile au fost nule. Spaiu alocat pentru vectorul de legtur: 49536 octei

    (64 linii) Nr. de octei citii din buffer: 1048576 Total nregistrri logice omise: 0 Total nregistrri logice citite: 4 Total nregistrri logice invalide: 2 Total nregistrri logice nefiltrate: 0 Execuia a nceput la V Mai 09 19:58:17 2008 Execuia s-a terminat la V Mai 09 19:58:17 2008

  • Baze de date Oracle Timpul trecut a fost: 00:00:00.18 Timpul UC a fost: 00:00:00.07 Fiierul cu nregistrri respinse (ex.bad) are coninutul:

    100, Mihaila Ion, 600 106, Petrescu Andrei, 400

    2.2. ncrcarea datelor cu EM Permite ncrcarea datelor folosind fiiere de control create potrivit exemplelor

    de mai sus sau prin generarea automat a fiierului de control. Exemplificm utilizarea ultimei variante, pentru exemplul 2 de mai sus (folosim numai fiierul de date ex.dat) ale crui date vrem s le nserm n tabela pers creat n schema utilizatorului test cu scriptul:

    CREATE TABLE pers (marca number(4) primary key, nume varchar2(40) not null, salariu number(10,2) constraint sal_lim CHECK (salariu >= 500)); Figura 2

    Lansare procedur ncrcare date cu EM

    Lansarea se face din EM, tabul Maintenance, Load Data from User Files. Dup selectarea opiunii, se afieaz ecranul din figura 3 n care se bifeaz

    opiunea Automatically Generate Control File (n cazul nostru). Dac vrem s utilizm un fiier de control existent se selecteaz Use Existing Control File. De asemenea se introduce un user i o parol cu drepturi de administrare pe serverul Oracle. De precizat c utilizatorul trebuie s aib setat opiunea Log on as a batch job n Adminstrative Tools> Local security settings.

    Lucrarea de laborator nr. 10 - 7 -

  • Baze de date Oracle

    Figura 3 Stabilirea

    modului de utilizare a

    fiierului de control

    Se apas .

    Figura 4 Stabilirea fiierului de date (pas 1/7)

    Pasul 1/7 - Se stabilete locaia i numele fiierului de date (poate fi pe server

    sau local). De obicei fiierul de date este situat pe calculatorul local. Se modific sau se las locul de stocare a fiierului de manevr (implicit n folderul bazei de date de pe server). Se apas .

    Pasul 2/7 Se stabilete tabela n care se nsereaz datele n cazul nostru test.pers. Se bifeaz formatul datelor de intrare (Data File Format): cmpuri delimitate prin virgul sau cmpuri de lungime fix. n cazul cmpurile dintr-o nregistrare sunt separate prin virgul.

    n partea de jos a ecranului (figura 5) se afieaz (Preview Contents) coninutul fiierului text cu date de intrare.

    Se apas .

    Lucrarea de laborator nr. 10

    - 8 -

  • Baze de date Oracle Figura 5

    Stabilirea tabelei destinaie (pas 2/7)

    Figura 6

    Stabilirea caracter delimitare i restricii pentru cmpuri (pas 3/7)

    Pas 3/7 Se stabilete caracterul de delimitare ntre cmpuri (n cazul nostru ,)

    i opional ncadrarea individual a cmpurilor n fiierul text de intrare. Chiar dac Field Enclosure este completat cmpurile pot sau nu s fie ncadrate de acel simbol. n dreptul cmpurilor pot fi stabilite condiii NULLIF sau DEFAULTIF (de exemplu NUME=BLANKS). n partea de jos a ecranului sunt afiate nregistrrile ca i cum ar fi

    Lucrarea de laborator nr. 10 - 9 -

  • Baze de date Oracle nserate (fr verificarea restriciilor).

    Se apas . Figura 7

    Stabilirea metodei de ncrcare (pas 4/7) Pas 4/7 Se stabilete metoda de ncrcare. Metoda convenional folosete

    instruciunea INSERT. Metoda direct (eventual cu opiunea Paralell) este mai rapid ns are anumite restricii (de exemplu nu se admit filtre prin clauza WHEN). Se recomand metoda convenional. Metoda direct se va utiliza dup o analiz a funcionrii n cazul concret.

    Se apas . Figura 8

    Stabilirea opiuni pentru ncrcare (pas 5/7) Pas 5/7 Se stabilesc opiunile pentru ncrcare, dup cum urmeaz: - numrul maxim de nregistrri ce vor fi ncrcate (opional)

    Lucrarea de laborator nr. 10 - 10 -

  • Baze de date Oracle - numrul de nregistrri ignorate de la nceputul datelor de intrare (opional) - dac ncrcarea se oprete la numai la erori fatale (nu i la cele de

    atenionare) - opional - numrul maxim de erori la care se oprete ncrcarea implicit 50 - limita maxim (la care procesul se oprete) de nregistrri ignorate (datorit

    filtrelor) - opional - generarea sau nu a fiierului cu nregistrri respinse dac da i numele

    acestuia n cazul nostru ex.bad - generarea sau nu a fiierului cu nregistrri ignorate dac da i numele

    acestuia n cazul nostru ex.dsc - generarea sau nu a fiierului jurnal dac da i numele acestuia n cazul

    nostru ex.log Se apas . Figura 9

    Stabilire nume job i programare or (pas 6/7)

    Pas 6/7 Se completeaz (opional) numele job-ului n baza de date i ora de execuie: imediat sau la data i ora stabilit. Se apas .

    Pas 7/7 Se apas . Pentru verificare se citesc fiierul jurnal pentru a verifica modul n care s-a

    executat lucrarea. Eventual se citesc fiierele cu nregistrri respinse i ignorate.

    Lucrarea de laborator nr. 10 - 11 -

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 12 -

    3. Exportul datelor din baza de date Oracle Se realizeaz cu utilitarul EXPDP sau cu EM. 3.1. Utilizarea EXPDP (Data Pump EXPORT) Exist mai multe tipuri de export, n funcie de volumul de date exportat:

    FULL se export ntreaga baz de date. Utilizatorul trebuie s aib privilegiul EXP_FULL_DATABASE.

    SCHEMAS se export datele din schema unui utilizator. Administratorii pot preciza mai multe scheme ntr-o sesiune.

    TABLES se export una sau mai multe tabele TABLESPACE se export numai tabelele care sunt coninute (integral) n lista

    de tablespace exportat TRANSPORT_TABLESPACES permite transportul unui tablespace de la o

    baz de date la alta. Se recomand ca exportul s fie fcut numai de administratorii bazei de date, de

    regul utilizatorul SYSTEM. Exemple: a) Exportul tabelelor employees i regions din schema hr: D:\>EXPDP system/george@hazi tables=hr.employees,hr.regions

    DUMPFILE=hr_emp.dmp DIRECTORY=DATA_PUMP_DIR Export: Release 10.2.0.1.0 - Production on Vineri, 09 Mai, 2008

    22:39:15 Copyright (c) 2003, 2005, Oracle. All rights reserved. Conectat la: Oracle Database 10g Enterprise Edition Release

    10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Pornire "SYSTEM"."SYS_EXPORT_TABLE_01": system/********@hazi

    tables=hr.employees,hr.regions DUMPFILE=hr_emp.dmp DIRECTORY=DATA_PUMP_DIR

    Estimare n curs, utiliznd metoda BLOCKS... Procesare a tipului de obiect TABLE_EXPORT/TABLE/TABLE_DATA Estimare total prin utilizarea metodei BLOCKS: 128 KB Procesare a tipului de obiect TABLE_EXPORT/TABLE/TABLE Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Procesare a tipului de obiect TABLE_EXPORT/TABLE/INDEX/INDEX Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Procesare a tipului de obiect TABLE_EXPORT/TABLE/COMMENT Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 13 -

    Procesare a tipului de obiect TABLE_EXPORT/TABLE/TRIGGER Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . "HR"."EMPLOYEES" 15.76 KB 107

    linii exportate . . "HR"."REGIONS" 5.296 KB 4

    linii exportate Tabelul principal "SYSTEM"."SYS_EXPORT_TABLE_01" a fost

    ncrcat/descrcat cu succes **************************************************************** Setul de fiiere de stocare pentru SYSTEM.SYS_EXPORT_TABLE_01

    este: D:\ORACLE\PRODUCT\10.2.0\ADMIN\HAZI\DPDUMP\HR_EMP.DMP Job-ul "SYSTEM"."SYS_EXPORT_TABLE_01" a fost finalizat cu succes

    la 22:39:34 D:\> n comanda de mai sus apar doi parametri specifici: - DUMPFILE care reprezint numele fiierului de export, cu extensia

    (uzual) dmp. - DIRECTORY reprezint obiectul bazei de date care se refer la o cale

    unde vor fi stocate fiierele de export. Implicit se utilizeaz directoarea DATA_PUMP_DIR.

    Vizualizarea cii care corespunde cu directoarele poate fi fcut cu c-da SQL: SQL> select * from all_directories; Tastati OWNER DIRECTORY_NAME ------------------------------ ------------------------------ DIRECTORY_PATH --------------------------------------------------------------- SYS SUBDIR D:\oracle\product\10.2.0\db_1\demo\schema\order_entry\/2002/Sep SYS XMLDIR D:\oracle\product\10.2.0\db_1\demo\schema\order_entry\ SYS MEDIA_DIR D:\oracle\product\10.2.0\db_1\demo\schema\product_media\ SYS LOG_FILE_DIR D:\oracle\product\10.2.0\db_1\demo\schema\log\ SYS WORK_DIR C:\ADE\aime_10.2_nt_push\oracle/work SYS DATA_FILE_DIR D:\oracle\product\10.2.0\db_1\demo\schema\sales_history\ SYS DATA_PUMP_DIR D:\oracle\product\10.2.0\admin\hazi\dpdump\ SYS ADMIN_DIR C:\ADE\aime_10.2_nt_push\oracle/md/admin

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 14 -

    b) Exportul tuturor datelor din schema hr: D:\>EXPDP system/george@hazi schemas=hr DUMPFILE=hr.dmp

    DIRECTORY=DATA_PUMP_DIR Export: Release 10.2.0.1.0 - Production on Vineri, 09 Mai, 2008 22:52:04 Copyright (c) 2003, 2005, Oracle. All rights reserved. Conectat la: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -

    Production With the Partitioning, OLAP and Data Mining options Pornire "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/********@hazi

    schemas=hr DUMPFILE=hr.dmp DIRECTORY=DATA_PUMP_DIR Estimare n curs, utiliznd metoda BLOCKS... Procesare a tipului de obiect SCHEMA_EXPORT/TABLE/TABLE_DATA Estimare total prin utilizarea metodei BLOCKS: 448 KB Procesare a tipului de obiect SCHEMA_EXPORT/USER Procesare a tipului de obiect SCHEMA_EXPORT/SYSTEM_GRANT Procesare a tipului de obiect SCHEMA_EXPORT/ROLE_GRANT Procesare a tipului de obiect SCHEMA_EXPORT/DEFAULT_ROLE Procesare a tipului de obiect SCHEMA_EXPORT/TABLESPACE_QUOTA Procesare a tipului de obiect SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Procesare a tipului de obiect SCHEMA_EXPORT/TYPE/TYPE_SPEC Procesare a tipului de obiect SCHEMA_EXPORT/SEQUENCE/SEQUENCE Procesare a tipului de obiect SCHEMA_EXPORT/TABLE/TABLE Procesare a tipului de obiect

    SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Procesare a tipului de obiect SCHEMA_EXPORT/TABLE/INDEX/INDEX Procesare a tipului de obiect SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Procesare a tipului de obiect

    SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Procesare a tipului de obiect SCHEMA_EXPORT/TABLE/COMMENT Procesare a tipului de obiect SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC Procesare a tipului de obiect SCHEMA_EXPORT/PROCEDURE/PROCEDURE Procesare a tipului de obiect

    SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC Procesare a tipului de obiect SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Procesare a tipului de obiect SCHEMA_EXPORT/VIEW/VIEW Procesare a tipului de obiect SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY Procesare a tipului de obiect

    SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Procesare a tipului de obiect SCHEMA_EXPORT/TABLE/TRIGGER Procesare a tipului de obiect

    SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . "HR"."COUNTRIES" 6.085 KB 25 linii

    exportate . . "HR"."DEPARTMENTS" 6.632 KB 27 linii

    exportate . . "HR"."EMPLOYEES" 15.76 KB 107 linii

    exportate . . "HR"."JOB_HISTORY" 6.585 KB 10 linii

    exportate . . "HR"."JOBS" 6.609 KB 19 linii

    exportate . . "HR"."LOCATIONS" 7.710 KB 23 linii

    exportate . . "HR"."REGIONS" 5.296 KB 4 linii

    exportate Tabelul principal "SYSTEM"."SYS_EXPORT_SCHEMA_01" a fost

    ncrcat/descrcat cu succes ************************************************************************

  • Baze de date Oracle Setul de fiiere de stocare pentru SYSTEM.SYS_EXPORT_SCHEMA_01 este: D:\ORACLE\PRODUCT\10.2.0\ADMIN\HAZI\DPDUMP\HR.DMP Job-ul "SYSTEM"."SYS_EXPORT_SCHEMA_01" a fost finalizat cu succes la

    22:52:33 Se poate utiliza i un fiier cu parametri sub forma: D:> EXPDP system/george@ubc PARFILE=hr.par

    unde hr.par este un fiier text cu coninutul (de exemplu): QUERY=employees:'"WHERE department_id > 10 AND salary > 10000"' NOLOGFILE=y DIRECTORY=DATA_PUMP_DIR DUMPFILE=HR.DMP n exemplul de mai sus s-a utilizat i parametrul QUERY care permite filtrarea

    datelor exportate. 3.2. Exportul datelor cu EM Se activeaz din EM, tab-ul Maintenance, Export to Export Files.

    Figura 10 Exportul datelor cu EM. Stabilirea tipului de export

    Dup activare se alege tipul de export i se introduce userul i parola unui

    administrator al sistemului de operare de pe server. Se apas . Paii pentru export sunt: Pas 1/5 - alegerea schemelor (n cazul nostru numai HR) sau a tabelelor sau a

    tablespace salvate. Pas 2/5 Stabilirea opiunilor: numr procese n paralel (implicit 1), estimarea

    opional a spaiului necesar pentru fiierul de export, fiierul jurnal al exportului. Pas 3/5 Stabilirea DIRECTORY (DATA_PUMP_DIR), a numelui fiierului

    de export (EXP_HR.DMP) i, eventual, a dimensiunii maxime a fiierului de export (n

    Lucrarea de laborator nr. 10 - 15 -

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 16 -

    MB). Pas 4/5 Stabilirea numelui pentru job-ul de salvare, a orei i datei de execuie.

    Job-ul se poate executa i imediat. Pas 5/5 Lansarea n execuie prin apsarea butonului . 4. Importul datelor n baza de date Oracle n acest paragraf ne referim la importul datelor din fiiere (tip DMP) create cu

    EXPDP sau cu EM. 4.1. Importul datelor cu IMPDP (Data Pump IMPORT) Este perechea aplicaiei EXPDP, care permite importul datelor exportate cu

    acest program. Din acest motiv parametrii de funcionare sunt similari. De exemplu importul tabelei hr.employees n schema utilizatorului test. D:\>IMPDP system/george@hazi DUMPFILE=HR_EMP.DMP REMAP_SCHEMA=hr:test Import: Release 10.2.0.1.0 - Production on Vineri, 09 Mai, 2008 23:54:28 Copyright (c) 2003, 2005, Oracle. All rights reserved. Conectat la: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -

    Production With the Partitioning, OLAP and Data Mining options Tabelul principal "SYSTEM"."SYS_IMPORT_FULL_01" a fost

    ncrcat/descrcat cu succes Pornire "SYSTEM"."SYS_IMPORT_FULL_01": system/********@hazi

    DUMPFILE=HR_EMP.DMP REMAP_SCHEMA=hr:test Procesare a tipului de obiect TABLE_EXPORT/TABLE/TABLE Procesare a tipului de obiect TABLE_EXPORT/TABLE/TABLE_DATA . . "TEST"."EMPLOYEES" 15.76 KB 107 linii

    importate Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Procesare a tipului de obiect TABLE_EXPORT/TABLE/INDEX/INDEX Procesare a tipului de obiect TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Procesare a tipului de obiect TABLE_EXPORT/TABLE/COMMENT Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT ORA-39083: Crearea tipului de obiect REF_CONSTRAINT a euat cu eroare: ORA-00942: tabelul sau vizualizarea nu exist Instruciunea SQL euat este: ALTER TABLE "TEST"."EMPLOYEES" ADD CONSTRAINT "EMP_JOB_FK" FOREIGN KEY

    ("JOB_ID") REFERENCES "TEST"."JOBS" ("JOB_ID") ENABLE ORA-39083: Crearea tipului de obiect REF_CONSTRAINT a euat cu eroare: ORA-00942: tabelul sau vizualizarea nu exist Instruciunea SQL euat este: ALTER TABLE "TEST"."EMPLOYEES" ADD CONSTRAINT "EMP_DEPT_FK" FOREIGN KEY

    ("DEPARTMENT_ID") REFERENCES "TEST"."DEPARTMENTS" ("DEPARTMENT_ID") ENABLE

  • Baze de date Oracle Procesare a tipului de obiect TABLE_EXPORT/TABLE/TRIGGER ORA-39082: Tipul de obiect TRIGGER:"TEST"."SECURE_EMPLOYEES" a fost

    creat cu avertismente la compilare ORA-39082: Tipul de obiect TRIGGER:"TEST"."SECURE_EMPLOYEES" a fost

    creat cu avertismente la compilare ORA-39082: Tipul de obiect TRIGGER:"TEST"."UPDATE_JOB_HISTORY" a fost

    creat cu avertismente la compilare ORA-39082: Tipul de obiect TRIGGER:"TEST"."UPDATE_JOB_HISTORY" a fost

    creat cu avertismente la compilare Procesare a tipului de obiect

    TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Job-ul "SYSTEM"."SYS_IMPORT_FULL_01" a fost finalizat cu 6 erori la

    23:54:36 Se observ aici opiunea REMAP_SCHEMA=hr:test prin care s-a importat

    tabela employees n schema test. Se observ c la importul n schema test s-au generat erori ntruct nu a putut

    realiza relaiile dintre tabela employees i celelalte tabele (care nu mai exist n schema test).

    De precizat c la importul unei tabele n alt schem, utilizatorul nou (n cazul nostru test) trebuie s aib cot alocat pe tablespace din care provine tabela (n cazul nostru EXAMPLES).

    4.2. Importul datelor cu EM Lansarea importului se face din tab-ul Maintenance, Import from Export Files.

    Figura 11 Importul datelor cu EM. Stabilirea tipului de import

    Lucrarea de laborator nr. 10 - 17 -

  • Baze de date Oracle Dup lansare se alege directoarea n care se gsete fiierul de export (n cazul

    nostru DATA_PUMP_DIR) i numele fiierului de export (EXP_HR.DMP). Se stabilete tipul de import: tot fiierul, schema, tabele sau tablespace. De asemenea se introduce userul i parola unui administrator al serverului. n cazul nostru importm tabela employees din exportul integral HR n schema test.

    Se apas . Se citete fiierul de import.

    Figura 12 Selecia tabelei importate din fiierul de export

    Pas 1- Se alege fiierul care se import din fiierul de export. Se apas

    i apoi . Pas 2 Se face remaparea tabelei din schema surs HR n schema destinaie test

    (figura 13). Se apas . Pas 3 Se stabliesc opiunile de import. Numrul de procese n paralel (implicit

    1) i fiierul jurnal al importului (figura 14). Se apas . Pas 4 - Se stabilete numele job-ului (opional) i programarea execuiei (figura

    15). Pas 5 Se apas . Dup import se verific fiierul jurnal pentru a vedea dac nu sunt erori. n

    fiierul jurnal vom gsi erori legate de relaiile tabelei employees care nu au putut s fie restabilite.

    Lucrarea de laborator nr. 10 - 18 -

  • Baze de date Oracle Figura 13

    Remaparea tabelei din schema hr n schema test Figura 14

    Stabilire opiuni iomport

    Lucrarea de laborator nr. 10 - 19 -

  • Baze de date Oracle Figura 15

    Stabilire nume job i planul de execuie a importului 5. Lucrri de efectuat 5.1. Se lanseaz n execuie scriptul lab_11_01.sql. Execuia se face n

    iSQL*Plus (http://192.168.4.45:5560/isqlplus ). Scriptul creeaz un utilizator nume_student i, n schema acestuia, o tabela

    materiale cu structura: cod number(6) constraint mat_pk primary key, denumire varchar2(40) not null, um char(3) not null, pret number(8,2) not null, stoc number(7,2) 5.2. Se va ncrca n tabela materiale din schema nume_student datele din

    fiierul text materiale.dat, cu urmtoarele precizri: - se va utiliza Oracle EM conectat ca system/george normal - se va genera automat fiierul de control - se va utiliza nume/parol administrator sever: george/george - fiierul materiale.dat va fi ncrcat de pe calculatorul local - se verific cu atenie fiierul de intrare pentru a preciza delimitatorii potrivii - se va utiliza calea convenional de nccare - nregistrrile refuzate vor fi scrise n fiierul materiale.bad - nregistrrile filtrate vor fi scrise n fiierul materiale.dsc - fiierul jurnal va fi materiale.log - toate fiierele de mai sus vor fi generate n aceeai locaie cu fiierul de

    intrare materiale.dat - numele job-ului va fi nume_student_mat

    Lucrarea de laborator nr. 10 Se va analiza dac sunt nregistrri respinse i se va relua procesul pentru a fi

    - 20 -

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 21 -

    ncrcate i eventuale nregistrri rejectate. Dup fiecare execuie se va terge job-ul activat.

    Se verific nregistrrile scrise cu SQL Plus sau cu iSQL Plus. 5.3. Se vor exporta toate obiectele utilizatorului nume_student, n urmtoarele

    condiii: - se va utiliza Oracle EM user: system, parol: george, normal. - se va utiliza nume/parol administrator host: george/george - se va depune fiierul de export n directoarea DATA_PUMP_DIR - se va crea fiierul log cu numele: nume_student.log n folderul de mai sus - numele fiierului de export va fi nume_student.dmp - se va atribui numele job-ului n baza de date exp_nume_student - jobul va fi pornit imediat - dup execuie se citete fiierul jurnal pentru a vedea modul n care a fost

    realizat exportul - se terge job-ul care a realizat exportul 5.4. Din iSQL Plus se terge tabela materiale cu c-da SQL: DROP TABLE materiale CASCADE CONSTRAINTS PURGE; Se execut importul tabelei din exportul realizat la pct. 5.3, cu precizrile de mai

    jos: - se va utiliza Oracle EM user: system, parol: george, normal. - se va utiliza nume/parol administrator host: george/george - la Import Type se va selecta Tables - se va crea fiierul log cu numele: imp_nume_student.log n folderul

    DATA_PUMP_DIR - se va atribui numele job-ului n baza de date imp_nume_student - jobul va fi pornit imediat - dup execuie se citete fiierul jurnal pentru a vedea modul n care a fost

    realizat exportul - se verific din iSQL Plus c tabelul materiale a fost restaurat cu acelai

    coninut - se terge job-ul care a realizat importul - se terge fiierul de export i fiierele jurnal

    5.5. Cu EM se terge utilizatorul nume_student i toate obiectele care i aparin.

  • Baze de date Oracle

    Lucrarea de laborator nr. 10 - 22 -