utilitaru export oracle

59
Cap. 1 EXPORT Acest capitol descrie cum sa folositi utilitarul EXPORT pentru a scrie date dintr-o baza de date Oracle intr-un fisier in format binar, specific unui sistem de operare. Acest fisier este salvat in exteriorul bazei de date, si poate fi citit intr-o alta baza de date Oracle prin folosirea utilitarului IMPORT. Acest capitol acopera urmatoarele subiecte: Ce este utilitarul EXPORT Modele de export Folosirea exportului Parametrii export Exemple de sesiuni export Folosirea metodei interactive Mesaje de atentionare, eroare si incheiere Exportul direct (prin metoda directa) Exporturi incrementale, cumulative si complete Consideratii asupra retelei Consideratii asupra setului de caractere si NLS (National Language Support) Consideratii asupra exportului obiectelor bazei de date Folosirea diferitelor versiuni de export Crearea unui fisier export Oracle7 dintr-un server Oracle8 CE ESTE UTILITARUL EXPORT Exportul asigura o cale simpla de a transfera obiecte intre baze de date Oracle. Exportul extrage definitiile de obiecte si datele din tabele dintr-o baza de date Oracle si le salveaza intr-un format binar Oracle - fisier dump, localizat de obicei pe disc sau banda. 1

Upload: bogdansb

Post on 30-Jul-2015

211 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Utilitaru Export ORACLE

Cap. 1 EXPORT

Acest capitol descrie cum sa folositi utilitarul EXPORT pentru a scrie date dintr-

o baza de date Oracle intr-un fisier in format binar, specific unui sistem de operare.

Acest fisier este salvat in exteriorul bazei de date, si poate fi citit intr-o alta baza de

date Oracle prin folosirea utilitarului IMPORT. Acest capitol acopera urmatoarele

subiecte:

Ce este utilitarul EXPORT

Modele de export

Folosirea exportului

Parametrii export

Exemple de sesiuni export

Folosirea metodei interactive

Mesaje de atentionare, eroare si incheiere

Exportul direct (prin metoda directa)

Exporturi incrementale, cumulative si complete

Consideratii asupra retelei

Consideratii asupra setului de caractere si NLS (National Language Support)

Consideratii asupra exportului obiectelor bazei de date

Folosirea diferitelor versiuni de export

Crearea unui fisier export Oracle7 dintr-un server Oracle8

CE ESTE UTILITARUL EXPORT

Exportul asigura o cale simpla de a transfera obiecte intre baze de date Oracle.

Exportul extrage definitiile de obiecte si datele din tabele dintr-o baza de date

Oracle si le salveaza intr-un format binar Oracle - fisier dump, localizat de obicei pe

disc sau banda.

Aceste fisiere pot fi transferate prin FTP sau fizic (in cazul benzilor) pe un sistem

diferit, si folosite cu utilitarul Import pentru a transfera date intre baze de date

situate pe masini neconectate printr-o retea.

Retineti ca fisierele dump Export pot fi citite doar de utilitarul Oracle Import. Daca

doriti sa incarcati date dintr-un fisier format ASCII vezi cap. 3 SQL*Loader.

1

Page 2: Utilitaru Export ORACLE

Atunci cand rulati Export, obiectele (ex. tabele) sunt extrase, urmate de obiectele in

relatie cu ele (indecsi, comentarii, granturi), daca exista, si apoi scrise in fisierul de

export. Vezi fig. 1-1

fig 1-1 Exportul unei baze de date

CITIREA CONTINUTULUI UNUI FISIER EXPORT

Fisierele export sunt salvate in format Oracle binar. Fisierul de export generat de

Export Oracle8 nu poate fi citit de alte utilitare decat cele ale lui Oracle8. Nu pot fi

citite de versiuni precedente de Import. Similar Import poate citi fisiere scrise de

Export dar nu poate citi fisiere scrise in alt format. Pentru a incarca date din fisiere

ASCII vezi SQL*Loader.

Pentru a afisa continutul unui fisier Export folositi parametrul SHOW al utilitarului

Import.

PRIVILEGII DE ACCES

Pentru a folosi utilitarul Export trebuie sa aveti privilegiul CREATE SESSION pe o baza

de date Oracle. Pentru a exporta tabele detinute de alt utilizator trebuie sa aveti

activat rolul EXP_FULL_DATABASE. Acest rol este atribuit tuturor DBA.

Daca nu aveti privilegiul EXP_FULL_DATABASE, nu puteti exporta obiecte continute in

schema altui utilizator. De ex. nu puteti exporta o tabela din schema altui utilizator,

chiar daca aveti creat un sinonim pentru aceasta.

MODELE DE EXPORT

2

Page 3: Utilitaru Export ORACLE

Utilitarul Export asigura trei modele de export. Toti utilizatorii pot exporta in mod

tabela si mod utilizator. Un utilizator cu rolul EXP_FULL_DATABASE (un utilizator

privilegiat), poate exporta in mod tabela, mod utilizator si mod complet baza de

date (full database). Obiectele bazei de date exportate depind de modul de export

pe care l-ati ales.

Se poate folosi Exportul prin metoda conventionala sau prin metoda directa pentru a

exporta in oricare din cele trei moduri. Diferenta intre metoda conventionala si

metoda directa este descrisa in “Exportul prin metoda directa” pag. 1-25.

Tabelul 1-1 arata obiectele care sunt exportate si importate in fiecare mod.

Tabelul 1-1 Obiecte exportate si importate in fiecare mod

(N.T. am sistematizat aranjarea elementelor in tabela, pentru a marca elementele comune si diferentele intre cele trei moduri de export)

MOD TABELA MOD USER MOD FULL DATABASE

Pentru fiecare tabela din lista utilizatorii pot exporta si importa

Pentru fiecare utilizator din lista se pot exporta si importa

Utilizatorii privilegiati pot exporta si importa toate obiectele bazei de date cu exceptia celor detinute de SYSdefinitii de tablespace-uriprofiledefinitii de userirolurigranturi (privilegii) systemgranturi pe roluriroluri implicitecote pe tablespace-uripretul resurselordefinitiile segmentelor de rollback

legaturi intre baze de date (database links)

legaturi intre baze de date (database links)

numere de secventa numere de secventatoate aliasurile

librarii de functii externe toate librariile de functii externe

tipuri de obiectedefinitii de clustere

toate tipurile de obiectetoate definitiile de clustereistoria parolelorauditarea implicita si a sistemului

Pentru fiecare tabela userul specificat, poate exp. Si imp.

Pentru fiecare tabela, userul privilegiat poate exp. si imp.

3

Page 4: Utilitaru Export ORACLE

definitiile de obiecte, folosite de tabele

definitiile obiectelor folosite de tabele

definitia obiectelor folosite de tabele

definitii de tabele definitiile de tabele definitiile de tabeleactiuni pre-tabele actiuni pre-tabele actiunile pre-tabeledate din tabele, pe partitii date din tabele, pe partitii datele din tabele, pe

partitiidate din tabele imbricate date din tabele imbricate datele din tabele

imbricateindecsii proprietarului tabelei

indecsii proprietarului tabelei1

indecsii tabelelor

constrangerile pe tabele (primary, unique, check)

constrangerile pe tabele (primary, unique, check)

constrangerile pe tabele (primary, unique, check)

granturile proprietarului tabelei

granturile proprietarului tabelei

granturile pe tabele

analiza tabelelor analiza tabelelor analiza tabelelorComentariile de tabele si coloane

comentariile de tabele si coloane

comentariile de tabele si coloane

Informatiile de auditare informatii de auditare informatiile de auditareConstrangeri referentiale pe tabele

constrangerile referentiale de integritate

constrangerile referentiale de integritate

sinonimele private toate sinonimelevederile userului toate vederileprocedurile, package-urile si functiile userului

toate procedurile stocate, package-urile si functiile

Trigerele proprietarului tabelei

trigerele2 toate trigerele

Actiuni post-tabela actiunile post-tabela actiunile post-tabelaSuplimentar, utilizatoriiPrivilegiati pot exportasi importa

analizele de clustere analizele de clustersnapshot-urile toate snapshots-urilelogurile de snapshot toate log-urile

desnapshotTrigerele detinute de alti useri

cozile de lucru (job queues)

toate cozile de lucru

Indecsii detinuti de alti useri

grupurile refresh toate grupurile refresh si copil

1. Utilizatorii neprivilegiati pot exporta si importa numai indecsii pe care-i detin, pe tabelele pe care le detin. Ei nu pot exporta indecsii pe care-i detin pe tabelele detinute de alti useri, nici nu pot exporta indecsi detinuti de alti useri pe tabelele detinute de ei. Userii privilegiati pot exporta si importa indecsii pe tabelele userului specificat, chiar daca sunt detinuti de alti useri. Indecsii detinuti de userul specificat, pe tabelele altui user nu sunt inclusi, cata vreme acesti alti useri nu sunt inclusi in lista de useri de exportat2. Userii neprivilegiati si userii privilegiati pot exporta si importa toti trigerii detinuti de useri, chiar daca ei sunt in tabelele detinute de alti useri

INTELEGEREA EXPORTULUI LA NIVEL TABELA SI NIVEL PARTITIE

In exportul la nivel tabela o intreaga tabela partitionata sau nepartitionata,

impreuna cu indecsii si alte obiecte dependente de tabela sunt exportate. Sunt

exportate toate partitiile unei tabele partitionate. Acesta se aplica atat la exportul

4

Page 5: Utilitaru Export ORACLE

prin metoda directa cat si la exportul prin metoda conventionala. Toate modurile de

export (full, user si tabela) suporta exportul la nivel tabela.

In exportul la nivel partitie, utilizatorul poate exporta una sau mai multe partitii

specificate a unei tabele. Modul full si modul user nu suporta exportul la nivel

partitie. Acesta este suportat doar de modul tabela. Pentru ca exporturile

incrementale (incremental, cumulativ si complet) pot fi realizate numai in modul full

database. Din aceasta cauza exportul la nivel partitie nu poate fi specificat pentru

exporturi incrementale.

In toate modurile, datele partitionate sunt exportate intr-un format in care partitiile

pot fi importate selectiv.

FOLOSIREA EXPORTULUI

Aceasta sectiune descrie cum sa folositi utilitarul export, inclusiv ce trebuie sa faceti

inainte de a incepe exportul si cum sa apelati exportul.

Inainte de a folosi exportul

Pentru a folosi exportul trebuie sa rulati scriptul CATEXP.SQL sau CATALOG.SQL (care

ruleaza CATEXP.SQL), dupa crearea bazei de date.

Nota: Numele actual al acestor scripturi depinde de sistemul de operare. Numele lor

si metoda de rulare este descrisa in documentatia Oracle specifica sistemului de

operare.

CATEXP.SQL sau CATALOG.SQL trebuie sa fie rulate doar o singura data pe o baza de

date Oracle. Acest script realizeaza urmatoarele:

creaza toate vederile necesare exportului

asigneaza toate privilegiile necesare la rolul EXP_FULL_DATABASE

asigneaza rolul EXP_FULL_DATABASE la rolul DBA

Inainte de a rula exportul asigurati-va ca este spatiu suficient pe disc sau banda

pentru scrierea fisierului de export. Daca nu este spatiu suficient Exportul se termina

cu o eroare de scriere.

Se poate folosi marimea tabelelor pentru a estima necesarul maxim de spatiu.

Marimea tabeleor poate fi gasita in vederea USER_SEGMENTS din dictionarul datelor

Oracle. Urmatoarea selectie afiseaza spatiul folosit de toate tabelele.

select sum(bytes) from user_segments where segment_type=‘TABLE’;Rezultatul interogarii nu include spatiul disc necesar pentru memorarea datelor din

coloanele LOB (obiecte mari).

5

Page 6: Utilitaru Export ORACLE

Apelarea exportului

Se poate apela exportul prin una din caile:

Introduceti comanda:

exp username/password PARFILE=filenameNota: Pe platforme NT exportul se apeleaza cu: exp80 ...

PARFILE este fisierul continand parametri export pe care ii folositi de obicei.

Daca folositi parametri diferiti pentru baze de date diferite puteti avea mai

multe fisiere de parametri. Aceasta este metoda recomandata.

Introduceti comanda:

exp username/passwordurmata de parametri de care aveti nevoie

Nota: Prin specificarea parametrilor nu puteti depasi lungimea maxima a liniei

de comanda a sistemului de operare.

Introduceti numai comanda exp username/pasword pentru a incepe o sesiune

interactiva si a lasa ca Export sa ceara informatiile de care are nevoie. Aceasta

metoda asigura mai putina functionalitate decat metoda cu parametri. Ea exista

doar din considerente de compatibilitate.

Puteti folosi o combinatie a primelor doua variante de apelare. Adica, puteti lista

parametri fie in fisierul de parametri, fie in linia de comanda. De fapt, puteti specifica

acelasi parametru in ambele locuri. Pozitia parametrului PARFILE si a altor parametri

pe linia de comanda determina care parametri devin preponderenti (functie de unde

sunt specificati). De ex. sa presupunem ca fisierul de parametri params.dat contine

parametrul INDEXES=Y si exportul este apelat prin urmatoarea linie:

exp system/manager PARFILE=params.dat INDEXES=NIn acest caz, pentru ca INDEXES=N apare dupa PARFILE=params.dat, INDEXES=N

suprascrie valoarea parametrului INDEXES din PARFILE.

Se poate specifica numele utilizatorului si parola in fisierul de parametri, dar totusi,

din considerente de securitate aceasta nu este recomandata. Daca omiteti

combinatia username/password, Export le solicita.

Pentru a vedea cum sa specificati un export dintr-o baza de date care nu e

baza de date implicita, vedeti “Exportul si Importul cu Net8” pag . 1-34.

Apelarea exportului ca SYSDBA

In mod normal nu aveti nevoie sa apelati exportul ca SYSDBA. Totusi, daca folositi

Tablespace Point-In_time Recovery (TSPITR) care va permite sa refaceti rapid una

6

Page 7: Utilitaru Export ORACLE

sau mai multe tablespace-uri, la un punct in timp diferit de cel al restului bazei de

date, trebuie sa folositi exportul ca SYSDBA.

Atentie: Este recomandabil sa cititi informatii despre TSPITR in “Ghidul Oracle

Backup si Recovery” pag. 2-26 si “RECOVERY_TABLESPACES” la pag. 1-14 inainte de

a continua cu aceasta sectiune.

Pentru a apela Export ca SYSDBA folositi urmatoarea sintaxa:

exp username/password AS SYSDBAsau, optional

exp username/passwordainstance AS SYSDBANota: Intrucat sirul “AS SYSDBA” contine un blank, cele mai multe sisteme de

operare necesita ca intregul sir ‘username/password AS SYSDBA’ sa fie plasat intre

ghilimele sau marcat ca un literal, printr-o metoda oarecare. Notati ca unele sisteme

de operare necesita ca ghilimelele din linia de comanda sa fie prefixate cu secvente

escape. Vedeti documentatia Oracle specifica sistemului de operare asupra

caracterelor speciale si rezervate ale sistemului de operare.

Notati ca daca fie numele utilizatorului fie parola sunt omise, Export solicita aceste

informatii.

Obtinerea help-ului online

Exportul asigura help online. Introduceti exp help=y pe linia de comanda pentru a

vedea ecranul de help, ca in ecranul de mai jos:

> exp help=y

Export: Release 8.0.4.0.0 - Product on Fri Nov 03 9:26:39 1997

(c) Copyright 1997 Oracle Corporation. All rights reserved.

You can let Export prompt you for parameters by entering the EXPcommand followed by your username/pasword:

Example: EXP SCOTT/TIGER

Or, you can control how Export runs by entering the EXP command followedby various arguments. To specify parameters, you use keywords:

Format: EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be first parameter on the command line.(USERID trebuie sa fie primul parametru in linia de comanda)

Keyword Description (default) Keyword Description (default)7

Page 8: Utilitaru Export ORACLE

USERID username/password FULL export entire file (N)BUFFER size of data buffer OWNER list of owner usernamesFILE output file (EXPDAT.DMP) TABLES list of table namesCOMMPRESS import into one extent(Y)RECORDLENGTH length of IO recordGRANTS export grants (Y) INCTYPE incremental export (Y)INDEXES export indexes (Y) RECORD track incr. export (Y)ROWS export data rows (Y) PARFILE parameter filenameCONSTRAINTS export constraints (Y) CONSISTENT cross-table consistencyLOG log file of screen outp. STATISTICS analyze objects (ESTIMATE)DIRECT direct path (N)FEEDBACK display progress every x rows (0)POINT_IN_TIME_RECOVER Tablespace Point-in-time Recovery (N)RECOVERY_TABLESPACES List of tablespace names to recoverVOLSIZE number of bytes to write to each tape volume

Export terminated succesfully without warnings.

FISIERUL DE PARAMETRI

Fisierul de parametri va permite sa specificati parametri de Export intr-un fisier unde

pot fi usor modificati sau reutilizati. Creati fisierul de parametri folosind orice editor

de text (Notepad, Edit). Optiunea linie de comanda PARFILE=filename spune lui

Export sa citeasca parametri din fisierul specificat, in loc sa-i citeasca din linia de

comanda. De ex:

exp PARFILE=filenameexp username/password PARFILE=filenameSintaxa pentru specificatia fisierului de parametri este una din urmatoarele:

KEYWORD=valueKEYWORD=(value)KEYWORD=(value1, value2, ....)Urmatorul exemplu arata o portiune din fisierul de parametri:

FULL=YFILE=DBA.DMPGRANTS=YINDEXES=YCONSISTENT=YInformatie suplimentara: Dimensiunea maxima a fisierului de parametri poate fi

limitata de sistemul de operare. Numele fisierului de parametri este subiect al

conventiei de numire proprii sistemului de operare. Vezi documentatia Oracle

specifica sistemului de operare pentru mai multa informatie.

Se pot adauga comentarii la fisierul de parametri prin precedarea lor cu semnul

pound (#). Export ignora toate caracterele de la dreapta semnului pound (#).

PARAMETRI DE EXPORT

8

Page 9: Utilitaru Export ORACLE

Urmatoarea diagrama arata sintaxa pentru parametri care pot fi specificati in fisierul

de parametri sau in linia de comanda.

Continuarea sectiunii descrie fiecare parametru:

9

Page 10: Utilitaru Export ORACLE

BUFFER

Implicit: dependent de sistemul de operare. Vezi documentatia Oracle specifica

sistemului de operare pentru a determina valoarea implicita pentru acest parametru.

Specifica marimea, in octeti, a bufferului folosit pentru a extrage randurile. Ca un

rezultat, acest parametru determina numarul maxim de randuri intr-o zona extrasa

de Export. Folositi urmatoarea formula pentru a calcula marimea bufferului:

marimea bufferului = randuri_in_zona*marimea_maxima_a_randurilorDaca specificati zero, utilitarul Export extrage un rand o data.

Tabelele cu coloane LONG, LOB, BFILE, REF, ROWID sunt extrase un rand o data.

Nota: Parametrul BUFFER se aplica doar Exportului prin metoda conventionala. Nu

are nici un efect la Exportul prin metoda directa.

COMPRESS

Implicit: Y

Specifica modul in care Export si Import administreaza extentul initial al tabelei.

Valoarea implicita, COMPRESS=Y, determina ca Export sa marcheze tabela pentru

consolidare intr-un extent initial inainte de Import. Daca marimea extenturilor este

mare (de ex. datorita parametrului PCTINCREASE) spatiul alocat va fi mai mare

decat spatiul necesar pentru a pastra datele atunci cand specificati COMPRESS=Y.

Daca specificati COMPRESS=N, Export foloseste parametrii de memorare curenti,

inclusiv valorile pentru extentul initial, marime, si marimea extentului urmator

(initial extent, size, next extent size). Valorile acestor parametri pot fi valorile

specificate in declaratiile CREATE TABLE sau ALTER TABLE sau valorile modificate de

baza de date Oracle. De ex. marimea NEXT a extentului poate fi modificata daca

tabela creste si daca parametrul PCTINCREASE este diferit de zero.

Nota: Cu toate ca consolidarea este realizata dupa import, puteti specifica

parametrul COMPRESS numai atunci cand exportati, nu atunci cand importati.

Utilitarul Export , nu si Import, genereaza definitii de date, inclusiv definitiile

parametrilor de memorare. De aceea, daca specificati COMPRESS=Y atunci cand

exportati, puteti importa numai date in forma consolidata.

Nota: Datele LOB (obiecte mari - Large Obiect Block) nu sunt comprimabile. Pentru

date LOB, vor fi folosite valorile originale ale extentului initial, marimii si marimii

urmatorului extent.

CONSISTENT (N.T. Dati atente acestei sectiuni!)

Implicit: N

10

Page 11: Utilitaru Export ORACLE

Specifca daca Export sa foloseasca sau nu declaratia SET TRANSACTION READ ONLY

pentru a se asigura ca datele “vazute” de Export sunt consistente la un singur

moment de timp, si nu au fost schimbate in timpul executiei comenzii export.

Trebuie sa specificati CONSISTENT=Y atunci cand anticipati ca alte aplicatii ar putea

actualiza baza de date dupa ce exportul a inceput.

Daca specificati CONSISTENT=N (valoarea implicita), tabelele sunt exportate de

obicei intr-o singura tranzactie. Daca o tabela cuprinde tabele imbricate, tabela

exterioara si fiecare din tabelele interioare sunt exportate in tranzactii separate.

Daca o tabela este partitionata, fiecare partitie este exportata intr-o tranzactie

separata.

De aceea, daca tabelele imbricate sau partitionate ar fi actualizate de alte aplicatii,

datele care s-ar exporta ar fi inconsistente. Pentru a minimiza aceasta posibilitate,

exportati aceste tabele la momente de timp cand nu se fac actualizari asupra lor (in

cazul CONSISTENT=N).

Urmatorul tabel arata o secventa de evenimente generate de doi utilizatori: USER1

exporta partitii dintr-o tabela si USER2 actualizeaza date in acea tabela.

Secventa de

timp

USER1 USER2

1 Incepe exportul lui TAB:P1

2 Actualizeaza TAB:P2

Actualizeaza TAB:P1

Da commit pe tranzactie

3 Termina exportul lui TAB:P1

4 Exporta TAB:P2

Daca exportul foloseste CONSISTENT=Y, nici una din actualizarile lui USER2 nu va fi

scrisa in fisierul de export.

Daca export foloseste CONSISTENT=N, actualizarile asupra lui TAB:P1 nu sunt scrise

in fisierul de export. Dar, actualizarile asupra lui TAB:P2 sunt scrise in fisierul de

export pentru ca tranzactia de actualizare este commit inainte de a incepe exportul.

Ca rezultat, tranzactia lui USER2 este doar partial inregistrata in fisierul de export,

facandu-l inconsistent.

Daca folositi CONSISTENT=Y si volumul de actualizari este mare, segmentele de

rollback vor trebui sa fie mari. Suplimentar, exportul fiecarei tabele va fi incetinit

11

Page 12: Utilitaru Export ORACLE

pentru ca segmentul de rollback va trebui sa fie scanat petrn a depista tranzactii

neincheiate.

Retineti urmatoarele referitor la utilizarea lui CONSISTENT=Y:

Pentru a minimiza timpul si spatiul cerut de un astfel de export, ar trebui sa

exportati tabelele care trebuie sa ramana consistente separat de celelalte tabele.

De ex: exportati tabelele EMP si DEPT impreuna, intr-un export consistent, si apoi

exportati restul de tabele la o a doua trecere.

Pentru a reduce sansa aparitiei unei erori “snapshot too old”, exportati numarul

minim de obiecte care trebuie sa fie garantat consistent.

Eroarea “snapshot too old” apare atunci cand spatiul de rollback a fost

consumat, si spatiul cerut de tranzactiile incheiate este reutilizat pentru noi

tranzactii. Reutilizarea spatiului in segmentul de rollback asigura pastrarea

integritatii bazei de date cu cerinte minime de spatiu, dar impune o limita

asupra timpului cat poate fi pastrata o imagine consistent citita (read-

consistent).

Daca o tranzactie incheiata a fost suprascrisa si acea informatie este necesara

pentru o imagine consistent citita a bazei de date, apare eroarea “snapshoot

too old”.

Pentru a evita aceasta eroare, ar trebui sa minimizati timpul luat de un export

consistent. (Faceti asta prin limitarea numarului de obiecte exportate, si, daca

e posibil, prin reducerea tranzactiilor in baza de date). De asemenea, faceti

segmentul de rollback cat mai mare posibil.

NOTA: Nu puteti specifica, pentru un export incremental, CONSISTENT=Y

CONSTRAINTS

Implicit: Y

Specifica daca utilitarul Export sa exporte constrangerile pe tabele sau nu.

DIRECT

Implicit: N

Specifica daca Export foloseste calea directa sau conventionala

Specificand DIRECT=Y Export extrage datele prin citirea lor direct, trecand peste

interfata de procesarea a comenzilor SQL (bufferul de evaluare). Aceasta metoda

poate fi mult mai rapida decat exportul prim metoda conventionala.

Se pot imbunatatii in continuare performantele prin folosirea metodei directe de

export impreuna cu baza de date in mod citire directa (direct read mode).

12

Page 13: Utilitaru Export ORACLE

Competitia pe resurse cu alti utilizatori este eliminata pentru ca blocurile de date

sunt citite intr-un buffer cache propriu, in loc sa fie citite in buffer cache-ul public.

Modul direct de citire este activat pentru versiunile de baze de date 7.1.5 sau mai

mari. Pentru mai multe informatii despre modul citire directa vezi “Oracle8 Ghidul

administratorului.

Exportul direct nu poate fi folosit pentru a exporta date din tabele care contin tipuri

de coloane care au fost introduse in Oracle8. Aceste tipuri de coloane sunt: REF,

LOB, BFILE, sau coloane tip obiect (care includ VARRAY-uri sau tabele imbricate).

Daca o tabela contine oricare din aceste obiecte, este exportata doar definitia de

tabela, nu si datele, si este emis un mesaj de atentionare.

Pentru mai multe informatii despre exportul direct vezi: “Export prin metoda directa”

pag. 1-25.

FEEDBACK

Implicit: 0

Specifica daca exportul sa afiseze un indicator de progres, de forma unui punct

pentru n randuri exportate. De ex. daca specificati FEEDBACK=10, Export va afisa

un punct de fiecare data cand mai exporta 10 randuri. Valoarea lui FEEDBACK se

aplica tuturor tabelelor exportate, nu poate fi setat la nivel de tabele separate.

FILE

Implicit: expdat.dmp

Specifica numele fisierului de export. Extensia implicita este .dmp , dar se poate

specifica orice extensie.

FULL

Implicit: N

Specifica daca exportul este in mod full-database (adica exporta intreaga baza de

date). Specificati FULL=Y pentru a exporta intreaga baza de date. Aveti nevoie de

rolul EXP_FULL_DATABASE pentru a realiza un astfel de export.

GRANTS

Implicit: Y

Specifica daca sa se exporte si granturile sau nu. Granturile care se exporta depind

de modul de export (daca faceti export full sau export de user) In modul full

database se exporta toate granturile pe tabele. In modul user sunt exportate numai

acele granturi acordate de proprietarul tabelei.

HELP

Implicit: N

13

Page 14: Utilitaru Export ORACLE

Afiseaza un mesaj de help, care descrie parametri de export.

INCTYPE

Implicit: none (nici unul)

Specifica tipul de export incremental. Optiunile sunt: COMPLETE, CUMULATIVE si

INCREMENTAL. Vezi” Exporturi incrementale, cumulative si complete” pag. 1-29

pentru mai multe informatii.

Pentru mai multe informatii asupra tabelelor sistem care suporta export incremental

si pentru definitiile ITIME, EXPID si CTIME vezi “tabele sistem” pag. 1-33.

INDEXES

Implicit: Y

Specifica daca se exporta sau nu indecsii.

LOG

Implicit: none (nici unul)

Specifica numele fisierului care preia mesajele de informare si eroare. De ex:

exp system/manager LOG=export.log

Daca specificati acest parametru, mesajele sunt dirijate in fisierul de log si afisate la

terminal.

OWNER

Implicit: nedefinit

Indica daca exportul este in mod user si listeaza userii ale caror obiecte vor fi

exportate.

PARFILE

Implicit: nedefinit

Specifica un nume pentru fisierul de parametri Export. Pentru mai multe informatii

asupra folosirii fisierului de parametri, vezi “Fisierul de parametri” pag. 1-7.

POINT_IN_TIME_RECOVERY

Implicit: N

Specifica daca se exporta una sau mai multe tablespace-uri intr-o baza de date

Oracle. La import, se poate reface tablespace-ul la un moment precedent de timp,

fara a afecta restul bazei de date. Pentru mai multe informatii vezi: “Oracle8: Ghidul

Backup si Recovery”

RECORD

Implicit: Y

14

Page 15: Utilitaru Export ORACLE

Specifica daca sa se inregistreze, sau nu, un export incremental sau cumulativ in

tabelele sistem SYS.INCEXP, SYS.INCFIL, si SYS.INCVID. Pentru informatii asupra

acestor tabele vezi “Tabele sistem” pag. 1-33.

RECORDLENGHT

Implicit: dependent de sistemul de operare

Specifica lungimea, in octeti a inregistrarii in fisier. Parametrul RECORDLENGHT este

necesar atunci cand trebuie sa transferati fisierul de export pe alt sistem de operare

care foloseste o alta vaoloare implicita.

Daca nu definiti acest parametru, el devine cel implicit, functie de platforma, pentru

BUFSIZ. Pentru mai multe informatii asupra valorii implicite a lui BUFSIZ vezi

documentatia specifica sistemului de operare.

Se poate seta RECORDLENGTH la orice valoare egala sau mai mare decat BUFSIZ-ul

sistemului dvs. de operare (cea mai mare valoare este 64K). Schimbarea

parametrului RECORDLENGTH afecteaza numai marimea datelor acumulate inainte

de scrierea pe disc. Nu afecteaza marimea blocurilor de fisiere ale sistemului de

operare.

Nota: Se poate specifica acest parametru pentru a specifica marimea bufferului I/O

de export.

Informatie suplimentara: Vezi documentatia specifica sistemului de operare pentru a

determina valoarea corespunzatoare sau pantru a crea un fisier cu o lungime diferita

a inregistrarii.

RECOVERY_TABLESPACES

Implicit: nedefinit

Specifica tablespace-urile care vor fi refacute folosind refacerea point_in_time.

Pentru mai multe informatii vezi: Oracle8: Ghidul Backup si Recovery.

ROWS

Implicit: Y

Specifica daca randurile de date vor fi exportate sau nu.

STATISTICS

Implicit: ESTIMATE

Specifica ce tip de statistica va genera optimizatorul bazei de date atunci cand

datele exportate sunt importate. Optiunile sunt: ESTIMATE, COMPUTE, si NONE. Vezi

manualul Concepte Oracle8 pentru informatii asupra optimizatorului.

TABLES

Implicit: nedefinit

15

Page 16: Utilitaru Export ORACLE

Specifica daca exportul este un export mod tabela si listeaza numele de tabele si

partitii pentru export. Se pot specifica urmatoarele atunci cand specificati numele

tabelei:

schema specifica numele schemei utilizatorilor pentru care se exporta tabele sau

partitii.

numele tabelei arata ca exportul este la nivel tabela. Exportul la nivel tabela va

lasa sa exportati tabele intregi, partitionate sau nu. Daca o tabela din lista este

partitionata si nu specificati un nume de partitie, sunt exportate toate partitiile.

Numele de partitii arata ca exportul este un export la nivel partitii. Exportul la

nivel de partitii va permita sa exportati una sau mai multe partitii specificate ale

unei tabele.

Daca folositi tabela:nume_partitie, tabela specificata trebuie sa fie partitionata, si

nume_partitie trebuie sa fie numele unei partitii ale tabelei.

Urmatoarea linie arata un exemplu de export la nivel partitie:

exp system/manager FILE=export.dmp TABLES=(scott.b:px, scott.b:py, mary.c, d:qb)In acest exemplu, scott.b trebuie sa fie o tabela partitionata si px si py trebuie sa

fie doua din partitiile ei. Tabela mary.c poate fi partitionata sau nu. Tabela d trebuie

sa fie partitionata, si qb trebuie sa fie una din partitiile ei.

Daca numele tabelei sau numele partitiei este folosit redundant pentru aceeasi

tabela (partitie) Export recunoaste intrarile duplicate si exporta tabela sau partitia

doar o data. De ex. urmatoarea:

exp system/manager FILE=export.dmp TABLES=(sc, sc:px, sc)cauzeaza doar un singur export pentru tabela sc.

Informatie suplimentara: Anumite sisteme de operare (ex. UNIX), solicita folosirea

unui caracter escape inaintea caracterelor speciale, ca de ex. paranteze, in asa fel

incat caracterul sa nu fie tratat ca si caracter special. Pe UNIX folositi un backslash

(i) drept caracter escape, cum se arata in exemplul de mai jos:

TABLES=i(EMP,DEPTi)RESTRICTII ASUPRA NUMELUI TABELELOR

Numele de tabele din linia de comanda nu pot contine semnul pound (#), numai

daca numele este inclus intre ghilimele duble. La fel, in fisierul de parametri, daca un

nume de tabela contine semnul (#), utilitarul Export interpreteaza restul liniei ca un

comentariu, daca nu ati inclus numele tabelei intre ghilimele duble.

16

Page 17: Utilitaru Export ORACLE

De ex. daca fisierul de parametri contine linia urmatoare, Export interpreteaza tot de

pe linie de dupa EMP# ca un comentariu, si de aceea nu exporta tabelele DEPT si

MYDATA:

TABLES=(EMP#, DEPT, MYDATA)Totusi, daca scrieti ca mai jos, utilitarul Export exporta toate cele trei tabele:

TABLES=(“EMP#”, DEPT, MYDATA)Atentie Atunci cand specificati numele tabelei utilizand ghilimele duble, numele este

case senzitiv. Numele trebuie sa se potriveasca exact cu numele tabelei memorat in

baza de date. Implicit, numele tabelelor sunt memorate in baza de date cu litere

mari.

In exemplul precedent, este exportata tabela EMP#, nu o eventuala tabela emp#.

Pentru ca tabelele DEPT si MYDATA nu sunt specificate intre ghilimele, numele lor nu

este case senzitiv.

Informatie suplimentara. Anumite sisteme de operare necesita ghilimele simple in

loc de ghilimele duble, sau invers. Vezi documentatia Oracle specifica sistemului de

operare. Diferite sisteme de operare pot avea restrictii diferite cu privire la numele

de fisiere. De exemplu, shell-ul UNIX c nu trateaza semnul dollar, ($) sau semnul

pound (#) (si cateva alte caractere speciale).

Trebuie sa folositi caractere escape pentru a avea aceste caractere in numele trecut

shell-ului si in Export.

USERID

Implicit: nici unul

Specifica nume_utilizator/parola (si optional stringul de conectare) al userului care

initiaza exportul. Daca omiteti parola Export o va cere pentru dvs.

Atunci cand folositi refacerea tablespace-ului la un anumit moment de timp

(Tablespace point in time recovery), USERID poate fi:

username/password AS SYSDBAsau

username/passwordainstance AS SYSDBAVezi “Apelarea exportului ca SYSDBA) pag. 1-6 pentru mai multe informatii.

Observati ca anumite sisteme de operare ar putea solicita sa tratati AS SYSDBA ca

un sir special cerandu-va sa includeti intregul sir in ghilimele, dupa cum e descris la

pag. 1-6.

Optional puteti specifica o clauza aconnect_string pentru NET8. Vezi ghidul

utilizatorului pentru protocolul Net8 pentru sintaxa exacta a lui aconnect_string.

Vezi, in plus, “Oracle8: Sisteme de baze de date distribuite”.

17

Page 18: Utilitaru Export ORACLE

INTERACTIUNEA PARAMETRILOR

Anumiti parametri pot intra in conflict unii cu altii. De ex. pentru ca specificand

TABLES se poate intra in conflict cu specificatia OWNERS, urmatoarea comanda se

poate termina cu o eroare:

exp system/manager OWNER=jones TABLES=scott.empLa fel, OWNER intra in conflict cu FULL=Y, si TABLE intra in conflict cu FULL=Y.

Totusi, ROWS=N si INCTYPE=INCREMENTAL pot fi folositi impreuna, fara a intra in

conflict. ROWS=N (no data, - fara date) “invinge” scopul exportului incremental, care

este sa faca o copie de siguranta a tabelelor care au fost modificate.

EXEMPLE DE SESIUNI DE EXPORT

Urmatoarele exemple va arata cum sa folositi metoda linie de comanda si metoda

fisier de parametri in exporturi mod full-database, user si tabela

EXEMPLE DE SESIUNI IN MOD FULL DATABASE

Numai utilizatorul cu rol DBA sau EXP_FULL_DATABASE poate exporta in mod full

database. In acest exemplu, o baza de date completa este exportata intr-un fisier

dba.dmp, cu toate granturile si toate datele dint tabele.

Metoda fisier de parametri

exp system/managerastring_conectare parfile=params.datFisierul params contine urmatoarele informatii:

FILE=dba.dmpGRANTS=yFULL=yROWS=y

Metoda linie de comanda

exp system/managerastring_conectare full=y file=dba.dmp grants=y rows=yMesaje export

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997(c) Copyright 1997 Oracle Corporation. All rights reserved.Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set

About to export the entire database .... exporting tablespace definitions. exporting profiles. exporting user definitions. exporting roles18

Page 19: Utilitaru Export ORACLE

. exporting resource costs

. exporting rollback segment definitions

. exporting database links

. exporting sequence numbers

. exporting directory aliases

. exporting foreign function library names

. exporting object type definitions

. exporting cluster definitions

. about to export SYSTEM’s tables via Conventional Path ...

.. exporting table DEF$_AQCALL 0 rows exported

.. exporting table DEF$_AQERROR 0 rows exported

.. exporting table DEF$_CALLDEST 0 rows exported

.. exporting table DEF$_DEFAULTDEST 0 rows exported

.. exporting table DEF$_DESTINATION 0 rows exported

.. exporting table DEF$_ERROR 0 rows exported

.. exporting table DEF$_LOB 0 rows exported

.. exporting table DEF$_ORIGIN 0 rows exported

.. exporting table DEF$_PROPAGATOR 0 rows exported

.. exporting table DEF$_TEMP$LOB 0 rows exported

. about to export SCOTT’s tables via Conventional Path ...

.. exporting table BONUS 0 rows exported

.. exporting table DEPT 4 rows exported

.. exporting table EMP 14 rows exported

.. exporting table SALGRADE 5 rows exported

. about to export ADAMS’s tables via Conventional Path ...

. about to export JONES’s tables via Conventional Path ...

. about to export CLARK’s tables via Conventional Path ...

. about to export BLAKE’s tables via Conventional Path ...

.. exporting table DEPT 8 rows exported

.. exporting table MANAGER 4 rows exported

. exporting referential integrity constraints

. exporting posttables actions

. exporting synonyms

. exporting views

. exporting stored procedures

. exporting triggers

. exporting snapshots

. exporting job queues

. exporting refresh groups and children

. exporting user history table

. exporting default and system auditing optionsExport terminated successfully without warnings.

EXEMPLU DE SESIUNE DE EXPORT IN MOD USER

Exporturile in mod user pot salva unul sau mai multi utilizatori ai bazei de date. De

ex., un DBA poate sa vrea sa salveze, pentru o perioada de timp, tabelele

utilizatorilor stersi. Modul user este, de asemenea, potrivit pentru utilizatorii care vor

sa-si salveze propriile lor date, sau care vor sa-si mute obiecte de la un utilizator la

altul. In acest exemplu, userul SCOTT isi exporta propriile sale tabele

19

Page 20: Utilitaru Export ORACLE

Metoda fisier de parametri

exp scott/tigerastring_conectare parfile=params.datFisierul params.dat contine urmatoarele informatii:

FILE=scott.dmpOWNER=scottGRANTS=yROWS=yCOMPRESS=y

Metoda linie de comanda

exp scott/tigerastring_conectare file=scott.dmp owner=scott grants=y rows=y compress=y

Mesaje export

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997

(c) Copyright 1997 Oracle Corporation. All rights reserved.

Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set. exporting foreign function library names for user SCOTT. exporting object type definitions for user SCOTT

About to export SCOTT’s objects .... exporting database links. exporting sequence numbers. exporting cluster definitions. about to export SCOTT’s tables via Conventional Path ... .. exporting table BONUS 0 rows exported.. exporting table DEPT 4 rows exported.. exporting table EMP 14 rows exported.. exporting table SALGRADE 5 rows exported. exporting synonyms. exporting views. exporting stored procedures. exporting referential integrity constraints. exporting triggers. exporting posttables actions. exporting snapshots. exporting snapshot logs. exporting job queues. exporting refresh groups and childrenExport terminated successfully without warnings.

EXEMPLU DE SESIUNE DE EXPORT IN MOD TABELA

In mod tabela, se pot exporta tabele cu date sau definitii de tabele (Daca nu se

exporta randuri, declaratia CREATE TABLE este plasata in fisierul de export, cu

granturi si indecsi, daca acestia sunt specificati.

20

Page 21: Utilitaru Export ORACLE

Un utilizator cu rolul EXP_FULL_DATABASE poate folosi modul tabela pentru a

exporta tabele din schema oricarui user, prin specificarea TABLES=schema.table.

Daca schema nu este specificata, export ia ca implicita schema precedenta din care

un obiect a fost exportata. Daca nu este un obiect precedent, Export ia ca implicita

schema exportatorului. In exemplul urmator, Export ia implicita schema lui SYSTEM

pentru tabela a si schema lui SCOTT pentru tabela c.

exp system/managerastring_conectare tables=(a, scott.b, c, mary.d)Un utilizator fara rolul EXP_FULL_DATABASE poate exporta numai tabele pe care le

detine. Un utilizator cu rolul EXP_FULL_DATABASE poate exporta obiecte dependente

care sunt detinute de alti utilizatori. Un utilizator neprivilegiat poate exporta numai

obiecte dependente pe care el le detine.

Exportul in mod tabela nu include definitiile de clustere. Ca o consecinta, datele sunt

importate in tabele neclusterate. De aceea, se poate folosi exportul tabela pentru a

“declustera” tabele.

EXEMPLUL 1

In acest exemplu, un DBA exporta tabele specificate pentru doi utilizatori.

Metoda fisierului de parametri

exp system/managerastring_conectare parfile=params.datFisierul params.dat contine urmatoarele informatii:

FILE=expdat.dmpTABLES=(scott.emp, blake.dept)GRANTS=yINDEXES=y

Metoda liniei de comanda

exp system/managerastring_conectare tables=(scott.emp, blake.dept) grants=y indexes=y

Mesaje export

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997

(c) Copyright 1997 Oracle Corporation. All rights reserved.

Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set

About to export specified tables via Conventional Path ...Current user changed to SCOTT.. exporting table EMP 14 rows exportedCurrent user changed to BLAKE.. exporting table DEPT 4 rows exportedExport terminated successfully without warnings.

EXEMPLUL 2

21

Page 22: Utilitaru Export ORACLE

In acest exemplu, utilizatorul Blake exporta tabelele selectate pe care le detine.

Metoda fisierului de parametri

exp blake/paperastring_conectare parfile=params.datFisierul params.dat contine urmatoarele informatii

FILE=blake.dmpTABLES=(dept, manager)ROWS=yCOMPRESS=y

Metoda linie de comanda

exp blake/paperastring_conectare file=blake.dmp tables=(dept, manager) rows=y compress=y

Mesaje export

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997

(c) Copyright 1997 Oracle Corporation. All rights reserved.

Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set

About to export specified tables via Conventional Path ..... exporting table DEPT 8 rows exported.. exporting table EMP 4 rows exportedExport terminated successfully without warnings.

EXEMPLU DE SESIUNE EXPORT FOLOSIND NIVELUL PARTITIE

In exportul la nivel partitie se pot specifica partitiile unei tabele pe care vreti sa le

exportati.

EXEMPLUL 1

Sa presupunem ca EMP este o tabela partitionata, cu doua partitii, M si Z

(partitionate dupa numele angajatilor). Dupa cum arata exemplul, daca exportati

tabela fara a specifica o partitie, toate partitiile vor fi exportate.

Metoda fisierului de parametri

exp scott/tigerastring_conectare parfile=params.datFisierul params contine urmatoarele:

TABLES=(emp)ROWS=y

Metoda linie de comanda

exp scott/tigerastring_conectare tables=emp rows=yMesaje export

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997

22

Page 23: Utilitaru Export ORACLE

(c) Copyright 1997 Oracle Corporation. All rights reserved.

Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set

About to export specified tables via Conventional Path ..... exporting table EMP .. exporting partition M 8 rows exported.. exporting partition Z 6 rows exportedExport terminated successfully without warnings.

EXEMPLUL 2

Sa presupunem ca EMP este o tabela partitionata cu doua partitii M si Z (partitionata

dupa numele angajatilor). Dupa cum arata exemplul, daca exportati o tabela si

specificati o partitie, doar partitia specificata este exportata.

Metoda fisierului de parametri

exp scott/tigerastring_conectare parfile=params.datFisierul params contine urmatoarele:

TABLES=(emp:m)ROWS=y

Metoda linie de comanda

exp scott/tigerastring_conectare tables=emp:m rows=yMesaje export

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997

(c) Copyright 1997 Oracle Corporation. All rights reserved.

Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set

About to export specified tables via Conventional Path ..... exporting table EMP .. exporting partition M 8 rows exportedExport terminated successfully without warnings.

FOLOSIREA METODEI INTERACTIVE

Pornirea exportului din linia de comanda fara nici un parametru initiaza metoda

interactiva. Metoda interactiva nu asigura intrebari pentru toate functionalitatile

Export. Metoda interactiva este asigurata doar din ratiuni de compatibilitate cu

versiunile precedente.

Daca nu specificati o combinatie usename/password in linia de comanda, utilitarul

Export cere aceasta informatie.

23

Page 24: Utilitaru Export ORACLE

Apelarea exportului interactiv ca SYSDBA

In mod normal nu aveti nevoie sa apelati Export ca SYSDBA. Totusi, daca folositi

refacerea tablespace-urilor la momente de timp (TSPITR), care va permit sa refaceti

rapid una sau mai multe tablespace-uri, la momente de timp diferite de restul bazei

de date, trebuie sa stiti cum sa o faceti.

Atente: Este recomandabil sa cititi informatii despre TSPITR in “ghidul Oracle Backup

si Recovery” capitolele “POINT_IN_TIME_RECOVER” si “RECOVERY_TABLESPACES”

inainte de a continua aceasta sectiune.

Daca folositi exportul in mod interactiv, nu veti fi intrebat (de utilitar) daca vreti sa

va conectati ca SYSDBA sau ainstance. Trebuie sa specificati “AS SYSDBA” sau/si

“ainstance” cu numele utilizatorului.

Astfel, raspunsul in mod interactiv al lui Export ar putea fi:

username/passwordainstance as sysdbausername/passwordainstanceusername/password as sysdbausername/passwordusernameainstance as sysdba (cere parola)usernameainstance (cere parola)username (cere parola)username AS sysdba (cere parola)/ As sysdba (nu cere parola, folosita autentificare la nivel OS)/ (nu cere parola, folosita autentificare la nivel OS)/ainstance as sysdba(nu cere parola, folosita autentificare la nivel OS)/ainstance (nu cere parola, folosita autentificare la nivel OS)Nota: Daca omiteti parola si permiteti lui Export sa o ceara, nu mai puteti specifica

sirul ainstance. Puteti specifica sirul ainstance doar cu un nume de utilizator.

Apoi Export afiseaza urmatoarele:

Enter array fetch buffer size: 4096 > 30720Export file: expdat.dmp >(1) E(ntire database), (2)U(sers), or (3)T(ables): (2)U > EExport grants (yes/no): yes >Export table data (yes/no): yes >Compress extents (yes/no): yes >

Export done in US7ASCII character set and WE8DEC NCHAR character set

About to export the entire database .... exporting tablespace definitions. exporting profiles. exporting user definitions. exporting roles. exporting resource costs. exporting rollback segment definitions. exporting database links

24

Page 25: Utilitaru Export ORACLE

. exporting sequence numbers

. exporting directory aliases

. exporting foreign function library names

. exporting object type definitions

. exporting cluster definitions

. about to export SYSTEM’s tables via Conventional Path ...

.. exporting table DEF$_AQCALL 0 rows exported

.. exporting table DEF$_AQERROR 0 rows exported

.. exporting table DEF$_CALLDEST 0 rows exported

.. exporting table DEF$_DEFAULTDEST 0 rows exported

.. exporting table DEF$_DESTINATION 0 rows exported

.. exporting table DEF$_ERROR 0 rows exported

.. exporting table DEF$_LOB 0 rows exported

.. exporting table DEF$_ORIGIN 0 rows exported

.. exporting table DEF$_PROPAGATOR 0 rows exported

.. exporting table DEF$_TEMP$LOB 0 rows exported

. about to export SCOTT’s tables via Conventional Path ...

.. exporting table BONUS 0 rows exported

.. exporting table DEPT 4 rows exported

.. exporting table EMP 14 rows exported

.. exporting table SALGRADE 5 rows exported

. about to export ADAMS’s tables via Conventional Path ...

. about to export JONES’s tables via Conventional Path ...

. about to export CLARK’s tables via Conventional Path ...

. about to export BLAKE’s tables via Conventional Path ...

.. exporting table DEPT 8 rows exported

.. exporting table MANAGER 4 rows exported

. exporting referential integrity constraints

. exporting posttables actions

. exporting synonyms

. exporting views

. exporting stored procedures

. exporting triggers

. exporting snapshots

. exporting snapshot logs

. exporting job queues

. exporting refresh groups and children

. exporting user history table

. exporting default and system auditing optionsExport terminated successfully without warnings.Se poate sa nu vedeti toate intrebarile intr-o sesiune data Export, pentru ca anumite

intrebari depind de raspunsul dvs. la alte intrebari. Anumite intrebari ofera un

raspuns implicit. Daca este acceptabil raspunsul implicit apasati <RETURN>.

Restrictii

Retineti urmatoarele atunci cand folositi metoda interactiva:

In mod user, export intreaba de numele tuturor utilizatorilor de inclus in export

inainte de a exporta orice date. Pentru a indica sfarsitul listei utilizatorilor si a

incepe exportul curent apasati <RETURN>

25

Page 26: Utilitaru Export ORACLE

In mod tabela, daca nu specificati un prefix schema, exportul ia ca implicita

schema exportatorului sau schema continand ultima tabela exportata in sesiunea

curenta. De ex. daca BETH este un utilizator privilegiat exportand in mod tabela,

Export presupune ca toate tabelele sunt in schema lui BETH, pana cand o alta

schema este specificata. Numai un utilizator privilegiat (cineva cu rolul

EXP_FULL_DATABASE) poate exporta tabele din schema altui utilizator.

Daca specificati o lista nula de tabele de exportat, utilitarul export isi termina

misiunea.

MESAJE DE ATENTIONARE, DE EROARE SI DE TERMINARE

Utilitarul Export incearca sa salveze cat mai mult posibil dintr-o baza de date, chiar

daca parti din ea au devenit corupte, dar in acest caz apar erori. Aceasta sectiune

descrie cum trateaza utilitarul Export erorile care apar.

FISIERUL DE LOG

Se pot captura toate mesajele exportului intr-un fisier de log, fie prin folosirea

parametrului LOG (vezi “LOG” pag. 1-13) sau, pentru acele sisteme care o permit,

prin redirectarea iesirii export intr-un fisier. Utilitarul Export scrie un fisier de log cu

informatii detaliate despre descarcarile cu succes si despre orice eroare care ar

putea apare. Vedeti documentatia Oracle specifica sistemului de operare pentru

informatii asupra redirectarii iesirii.

MESAJE DE ATENTIONARE

Exportul nu se termina la aparitia unor erori care nu sunt fatale. De ex. daca apare o

eroare in timpul exportului unei tabele, Export afiseaza (sau scrie in log) un mesaj de

eroare, sare la tabela urmatoare, si continua prelucrarea. Aceste erori ne-fatale sunt

cunoscute ca atentionari.

Export emite o atentionare de fiecare data cand intalneste un obiect invalid. De ex.

daca o tabela inexistenta este specificata ca o parte a unui export mod tabela,

utilitarul export exporta toate celelalte tabele. Apoi emite o atentionare si termina

cu succes, ca in exemplul urmator:

exp scott/tigerastring_conectare tables=xxx,emp....About to export specified tables via Conventional Path ...EXP-00011: SCOTT.XXX does not exist (nu exista).. exporting table EMP 14 rows exportedExport terminated succesfully with warnings.

MESAJE FATALE DE EROARE

26

Page 27: Utilitaru Export ORACLE

Anumite erori sunt fatale si termina sesiunea Export. Acestre erori apar, de obicei,

datorita unor probleme interne, sau datorita unor resurse, ca de ex. memoria nu

este disponibila. De ex. daca scriptul CATEXP.SQL nu este executat, Export trimite

urmatorul mesaj fatal de eroare:

EXP-00024: Export views not installed, please notify your DBAInformatie suplimentara: Mesajele sunt documentate in manualul “Mesaje Oracle8”

si in documentatia Oracle specifica sistemului de operare.

MESAJE DE TERMINARE

Daca exportul se termina fara erori, Export afiseaza mesajul: “Export terminated

succesfully without warnings” (Export terminat cu succes, fara avertizari). Daca apar

una sau mai multe erori care nu sunt fatale, si Export poate sa continue, genereaza

urmatorul mesaj: “Export terminated succesfully with warnings”. Daca apare o

eroare fatala Export se termina imediat cu mesajul: “Export terminated

unsuccesfully” (Export esuat).

METODA DIRECTA DE EXPORT

Utilitarul Export asigura doua metode de a exporta datele din tabele:

calea conventionala de export

calea directa de export

Calea conventionala utilizeaza declaratii SQL pentru a extrage datele din tabele.

Datele sunt citite de pe disc in buffer-cache, si randurile sunt transferate bufferului

de evaluare. Datele, dupa analiza, sunt transferate clientului Export, care scrie

datele in fisierul de export.

Calea directa de export extrage datele mult mai rapid decat metoda conventionala.

Metoda directa atinge aceste performante prin citirea directa a datelor,

“scurtcircuitand” stratul de procesare a comenzilor SQL.

Pentru performanta suplimentara, se poate seta baza de date pe mod direct de

citire. Aceasta elimina competitia cu alti utilzatori, pentru resursele bazei de date,

pentru ca blocurile bazei de date sunt citite in bufferul privat (de sesiune) al Export,

in loc de bufer-ul cache public. Pentru mai multa informatie despre modul direct de

citire, vezi: “Ghidul administratorului Oracle8”.

Figura 1-2 la pag. 1-26 arata cum difera extragerea datelor intre metoda directa si

metoda conventionala de export.

27

Page 28: Utilitaru Export ORACLE

In metoda directa de export, datele sunt citite de pe disc in buffer cache si randurile

sunt transferate direct clientului Export. Bufferul de evaluare este evitat. Datele sunt

deja in formatul pe care Export il asteapta, aceasta eliminand conversiile inutile de

date. Datele sunt transferate clientului Export, care scrie ulterior datele in fisierul de

export.

APELAREA CAII DIRECTE DE EXPORT

Pentru a folosi metoda directa de export, specificati parametrul DIRECT=Y pe linia

de comanda, sau in fisierul de parametri. Implicit este DIRECT=N, care extrage

datele din tabele folosind metoda conventionala.

Nota: Parametrul BUFFER se aplica doar metodei conventionale de export. Pentru

metoda directa folositi parametrul RECORDLENGTH pentru a specifica marimea

bufferului pe care Export il foloseste pentru a scrie fisierul de export.

CONVERSIA SETULUI DE CARACTERE

Metoda directa exporta doar in setul de caractere al serverului. Daca setul de

caractere al sesiunii de export nu este identic cu setul de caractere al bazei de date

atunci cand Export incepe sa ruleze, se genereaza un mesaj de eroare si se incheie

executia. Urmariti ca setul de caractere al sesiunii sa fie acelasi cu setul de caractere

al bazei de date inainte de a repeta exportul.

Fig 1-2 Citirea bazei de date prin metoda conventionala si metoda directa

28

Page 29: Utilitaru Export ORACLE

REZULTATE ASUPRA PERFORMANTELOR

Pentru a reduce competitia cu alti utilizatori asupra resurselor, in timpul exportului

prin metoda directa, se poate folosi modul direct de citire al bazei de date. Pentru a

activa modul direct de citire introduceti urmatoarea in fisierul INIT.ORA:

compatible = <db_version_number>,

Db_version_number trebuie sa fie 7.1.5 sau mai mare. Pentru mai multe informatii

despre modul direct de citire vezi “Ghidul administratorului Oracle8”

29

Page 30: Utilitaru Export ORACLE

Puteti creste performantele prin cresterea valorii parametrului RECORDLENGTH

atunci cand apelati metoda directa de export. Cresterea performantelor depinde de

urmatorii factori:

DB_BLOCK_SIZE

tipul coloanelor din tabele

Configuratia I/O (drive-ul care primeste fisierul de export ar trebui sa fie separat

de drive-ul de disk unde se afla fisierele bazei de date)

Atunci cand folositi metoda directa, setati parametrul RECORDLENGTH egal cu

parametrul bazei de date: DB_BLOCK_SIZE, astfel incat fiecare scanare a unei tabele

sa intoarca un bloc complet al bazei de date. Daca datele nu se potrivesc in bufferul

I/O utilitarul Export realizeaza mai multe scrieri pe disc pentru fiecare bloc al bazei

de date.

Urmatoarele valori sunt in general recomandabile pentru RECORDLENGTH:

multipli ai marimii blocului sistem I/O

multipli ai DB_BLOCK_SIZE

Nota: Alti factori pot afecta folosirea metodei directe de export. Vezi “Ghidul

administratorului Oracle8” pentru mai multe informatii.

RESTRICTII

Urmatoarele restrictii se aplica atunci cand se executa un export prin metoda

directa:

Nu se poate folosi metoda directa pentru a exporta randuri care contin LOB,

BFILE, REF, sau obiecte tip coloana, inclusiv coloane VARRAY si tabele imbricate.

Sunt exportate doar definitiile pentru a crea tabelele nu si datele.

Nu se poate folosi metoda interactiva pentru a invoca un export direct

EXPORTURI INCREMENTALE, CUMULATIVE SI COMPLETE

Exporturile incrementale cumulative si complete asigura strategii complete de

salvare. Aceasta sectiune arata cum sa acordati si sa folositi aceste strategii de

export.

RESTRICTII

Se pot face exporturi incrementale, cumulative si complete numai in mod full

database (FULL=Y). Numai utilizatorii care au rolul EXP_FULL_DATABASE pot rula

exporturi incrementale, cumulative si complete. Acest rol contine privilegiile

necesare pentru a modifica tabelele sistem care urmaresc exporturile incrementale.

“Tabele sistem” pag 1-33 descrie aceste tabele.

30

Page 31: Utilitaru Export ORACLE

Nu puteti specifica exporturi incrementale drept consistente la citire.

SALVARI DE BAZA

Daca folositi exporturi cumulative si incrementale ar trebui ca periodic sa faceti un

export complet, pentru a crea o salvare de baza (base backup). Urmand exportului

complet, realizati frecvent exporturi incrementale, si ocazional exporturi cumulative.

Dupa o perioada data de timp, ar trebui sa reluati ciclul, cu un alt export complet.

EXPORTURI INCREMENTALE

Un export incremental salveaza numai tabelele care au fost modificate de la ultimul

export incremental, cumulativ sau complet. Un export incremental exporta definitia

tabelei si toate datele continute, nu doar randurile modificate. De obicei realizati

exporturi incrementale mai des decat cele cumulative sau complete.

Sa presupunem ca un export complet a fost realizat la momentul T1. Fig 1-3 arata

un export incremental la momentul T2, dupa ce trei tabele au fost modificate. Numai

tabelele modificate si indecsii asociati vor fi exportati.

Fig. 1-3 Export incremental la momentul T2

Figura 1-4 arata un alt export incremental, la momentul T3, dupa ce au fost

modificate alte doua tabele, de la momentul T2. Pentru ca Tabela Table 3 a fost

modificata a doua oara, ea este exportata si la momentul T3, la fel ca si la T2.

Fig. 1-4 Export incremental la momentul T3.

31

Page 32: Utilitaru Export ORACLE

EXPORTURI CUMULATIVE

Un export cumulativ exporta tabele care au fost modificate de la ultimul export

cumulativ sau complet. Un export cumulativ comprima un numar de exporturi

incrementale intr-un singur fisier de export cumulativ. Nu este necesar sa salvati

exporturi incrementale facute inaintea unui export cumulativ, pentru ca exportul

cumulativ le cuprinde.

Figura 1-5 arata un export cumulativ la momentul T4. Tabelele table 1 si 6 au fost

modificate de la momentul T3. Toate tabelele modificate de la ultimul export

complet (momentul T1) vor fi exportate.

Fig. 1-5 Export cumulativ la momentul T4

Acest export cumulativ include schimbarile din exporturile incrementale din

momentele T2 si T3. Tabela Table 3, care a fost modificata de fiecare data, va apare

doar o data in fisierul de export. In acest caz exporturile cumulative economisesc

spatiu, fata de exporturile incrementale multiple.

EXPORTURI COMPLETE

Un export complet stabileste o baza pentru exporturi incrementale si cumulative.

Este echivalent unui export full database, cu exceptia faptului ca actualizeaza si

tabelele care monitorizeaza exporturile cumulative si incrementale.

Fig. 1-6 arata un export complet la momentul T5. La un export complet sunt

exportate toate obiectele bazei de date, indiferent daca (sau cand) ele au fost

modificate.

32

Page 33: Utilitaru Export ORACLE

Fig. 1-6 Export complet la momentul T5

BENEFICII

Exporturile cumulative si incrementale ajuta sa rezolvati problemele pe care le

intalneste un administrator care lucreaza intr-un mediu unde multi utilizatori isi

creaza propriile lor tabele. De ex. administratorii pot sa refaca tabele sterse (drop)

accidental de catre utilizatori.

Beneficiile exporturilor incrementale si cumulative includ:

fisiere export mai mici

mai putin timp necesar exportului

Aceste beneficii apar pentru ca nu sunt salvate toate tabelele. Ca rezultat, timpul si

spatiul necesar unui export incremental sau cumulativ este mai redus decat pentru

un export full database.

UN SCENARIU

Scenariul descris in aceasta sectiune arata cum sa folositi exporturi cumulative si

incrementale. Sa presupunem ca, in calitate de administrator efectuati urmatoarele

sarcini:

un export complet (X) la fiecare trei saptamani

un export cumulativ (C) in fiecare duminica

un export incremental (I) in fiecare noapte.

Sarcina de export ar fi reprezentata astfel:

Ziua: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 X I I I I I I C I I I I I I C I I I I I I X

33

Page 34: Utilitaru Export ORACLE

Dum Dum Dum DumPentru a restaura situatia din ziua 18, prima data importati informatiile sistem din

exportul incremental din ziua 18. Apoi importati datele din:

1. exportul complet din ziua 1

2. exportul cumulativ din ziua 8

3. exportul cumulativ din ziua 15

4. cele trei exporturi incrementale din zilele 16, 17, 18

Exporturile incrementale din zilele 2 la 7 pot fi sterse in ziua 8, dupa ce s-a facut

exportul cumulativ, pentru ca exportul cumulativ incorporeaza toate exporturile

incrementale. La fel, exporturile incrementale din zilele 9 la 14 pot fi sterse dupa

exportul cumulativ din ziua 15.

Nota: Sectiunea “INCTYPE” pag. 1-12 explica sintaxa pentru specificarea exporturilor

incrementale cumulative si complete.

CE DATE SUNT EXPORTATE

Scopul unui export cumulativ sau incremental este de a indentifica si exporta doar

acele obiecte ale bazei de date (ex. clustere, tabele, vederi si sinonime) care s-au

modificat de la ultimul export. Fiecare tabela este asociata cu alte obiecte, ca de ex.

indexuri, granturi, audituri trigere si comentarii.

Intreaga structura de granturi pentru tabela sau vedere este exportata impreuna cu

structura tabelei de baza. Indecsii sunt exportati impreuna cu tabela lor de baza,

functie de cine i-a creat. Daca vederea de baza este inclusa se exporta si trigerii pe

vedere.

Orice modificare, (UPDATE, INSERT sau DELETE) pe o tabela califica in mod automat

acea tabela pentru export incremental. Cand o tabela este exportata toate tabelele

imbricate, interioare, si coloanele LOB sunt exportate. Modificand o coloana a unei

tabele imbricate determina ca toate tabelele exterioare tabelei modificate sa fie

exportate. Modificarea unei coloane LOB (Large Obiect Block) determina ca intreaga

tabela ce contine date LOB sa fie exportata.

De asemenea structura de baza a tabelei si datele sunt exportate daca structura

tabelei s-a modificat in urmatoarele moduri:

o tabela este creata

o definitie de tabela este schimbata de o declaratie ALTER TABLE

sunt adaugate sau editate comentarii

optiuni de audit sunt actualizate

sunt alterate granturi, indiferent de nivel

34

Page 35: Utilitaru Export ORACLE

indecsi sunt adaugati sau stersi

parametrii de memorare indecsi sunt schimbati printr-o declaratie ALTER INDEX

Pe langa structura tabelei si datele din tabela mai sunt exportate si:

toate obiectele sistem (inclusiv definitiile de tablespace-uri, definitiile de

segmente rollback, si privilegiile utilizatorilor, dar neincluzand segmentele

temporare)

informatii despre obiectele droped (sterse)

clusterele, tabelele, vederile, procedurile, functiile, si sinonimele create de la

ultimul export

toate definitiile de tipuri

Nota: Exportul nu exporta granturi pe vederile dictionarului de date, din motive de

securitate, care ar afecta importul. Daca aceste granturi ar fi exportate, privilegiile

de acces s-ar modifica, fara ca utilizatorul sa fie avertizat de aceasta. Altfel,

nefortand granturi la import, se permite utilizatorului mai multa flexibilitate pentru a

stabili granturile potrivite la import.

EXEMPLUL UNEI SESIUNI DE EXPORT INCREMENTAL

Urmatorul exemplu arata o sesiune de export incremental dupa modificarea

tabelelor SCOTT.EMP si SCOTT.DEPT

exp system/managerastring_conectare full=y inctype=incremental

Export: Release 8.0.4.0.0 - Production on Fri Nov 7 8:23:12 1997

(c) Copyright 1997 Oracle Corporation. All rights reserved.

Connected to: Oracle8 Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionExport done in US7ASCII character set and WE8DEC NCHAR character set

About to export the entire database .... exporting tablespace definitions. exporting profiles. exporting user definitions. exporting roles. exporting resource costs. exporting rollback segment definitions. exporting database links. exporting sequence numbers. exporting directory aliases. exporting foreign function library names. exporting object type definitions. exporting cluster definitions. about to export SYSTEM’s tables via Conventional Path .... about to export SCOTT’s tables via Conventional Path ...

35

Page 36: Utilitaru Export ORACLE

.. exporting table DEPT 8 rows exported

.. exporting table EMP 23 rows exported

. about to export ADAMS’s tables via Conventional Path ...

. about to export JONES’s tables via Conventional Path ...

. about to export CLARK’s tables via Conventional Path ...

. about to export BLAKE’s tables via Conventional Path ...

. exporting referential integrity constraints

. exporting posttables actions

. exporting synonyms

. exporting views

. exporting stored procedures

. exporting triggers

. exporting snapshots

. exporting snapshots logs

. exporting job queues

. exporting refresh groups and children

. exporting default and system auditing options

. exporting information about dropped objectsExport terminated successfully without warnings.

TABELE SISTEM

Utilizatorul SYS detine trei tabele (INCEXP, INCFIL, si INCVID) care sunt intretinute de

export. Aceste tabele sunt actualizate atunci cand specificati RECORD=Y (valoarea

implicita). Trebuie sa nu alterati aceste tabele in nici un fel.

SYS.INCEXP

Tabela SYS.INCEXP urmareste ce obiecte au fost exportate prin exporturi specifice.

Contine urmatoarele coloane:

Name Null? Type ------------------------------- -------- ---- OWNER# NOT NULL NUMBER NAME NOT NULL VARCHAR2(30) TYPE# NOT NULL NUMBER CTIME DATE ITIME NOT NULL DATE EXPID NOT NULL NUMBER(3)Se poate folosi aceasta informatie in cateva feluri. De ex. ati putea genera un raport

din SYS.INCEXP dupa fiecare export pentru a documenta fisierul de export. Se pot

folosi vederile DBA_EXP_OBJECTS, DBA_EXP_VERSION, si DBA_EXP_FILES pentru a

afisa informatii despre exporturile incrementale.

SYS.INCFIL

Tabela SYS.INCFIL urmareste exporturile cumulative si incrementale si asigneaza un

identificator unic pentru fiecare din ele. Aceasta tabela contine urmatoarele coloane:

Name Null? Type ------------------------------- -------- ---- EXPID NOT NULL NUMBER(3)

36

Page 37: Utilitaru Export ORACLE

EXPTYPE NOT NULL VARCHAR2(1) EXPFILE NOT NULL VARCHAR2(100) EXPDATE NOT NULL DATE EXPUSER NOT NULL VARCHAR2(30)Atunci cand exportati cu parametrul INCTYPE=COMPLETE, toate intrarile precedente

sunt eliminate din SYS.INCFIL si este adaugat un rand nou specificand un ‘x’ in

coloana EXPTYPE.

SYS.INCVID

Tabela SYS.INCVID contine o coloana pentru EXPID al ultimului export valid. Aceasta

informatie determina EXPID-ul urmatorului export.

Name Null? Type ------------------------------- -------- ---- EXPID NOT NULL NUMBER(3)

37

Page 38: Utilitaru Export ORACLE

CONSIDERATII IN RETEA

Aceasta sectiune descrie factorii de luat in consideratie atunci cand folositi Export si

Import intr-o retea.

TRANSPORTUL FISIERELOR DE EXPORT DE-A LUNGUL UNEI RETELE

Pentru ca fisierul export este in format binar, folositi un protocol care suporta

transferuri binare pentru a preveni coruperea fisierelor de export cand sunt

transferate printr-o retea. De ex. folositi FTP sau un protocol similar de transfer

fisiere pentru a le transmite in format binar. Transmiterea fisierului de export in mod

caracter va cauza erori in momentul folosirii fisierului, in operatiunea de import.

EXPORT SI IMPORT CU NET8

Prin depasirea granitelor dintre diferite masini si sisteme de operare intr-o retea,

NET8 (versiunile precedente erau numite SQL*Net) asigura un mediu distribuit de

procesare pentru produsele Oracle8. Cu NET8 puteti realiza export si import intr-o

retea. De ex. daca rulati local un Export, puteti scrie datele dintr-o baza Oracle la

distanta, intr-un fisier de export local. Daca rulati local un Import, puteti scrie date

intr-o baza Oracle la distanta.

Pentru a folosi Export cu Net8, includeti astring_conectare dupa

username/password atunci cand apelati comanda exp, cum se arata in exemplul

urmator:

exp scott/tigerasun2 FILE=export.dmp FULL=YPentru mai multe informatii vezi “Net8 Ghidul administratorului”.

CONSIDERATII ASUPRA SETULUI DE CARACTERE SI ASUPRA NLS

Aceasta sectiune descrie comportarea utilitarelor Export si Import functie de

suportul de limba nationala (NLS).

CONVERSIA SETULUI DE CARACTERE

Utilitarul export scrie in fisierul de export folosind setul de caractere specificat

pentru sesiunea utilizatorului. Daca este necesar, Import converteste datele in setul

de caractere al sistemului gazda (pe care ruleaza Import). Import face conversia

38

Page 39: Utilitaru Export ORACLE

caracterelor daca setul de caractere al sesiunii utilizator este diferit de setul de

caractere al sesiunii de Export.

Fisierul de export identifica schema de codare a caracterelor folosita. Daca setul de

caractere este unul pe un singur octet (ex. EBCDIC sau USASCII7), si daca setul de

caractere folosit de baza de date tinta este tot un set de caractere pe un octet,

datele sunt convertite in mod automat la schema de codare specifica sesiunii

utilizator in timpul Importului, dupa cum este specificat prin variabila de mediu

NLS_LANG. Dupa ce datele sunt convertite la setul de caractere al sesiunii, acestea

sunt ulterior convertite la setul de caractere al bazei de date. Vezi “Seturi de

caractere pe un octet in timpul Exportului si Importului” pag. 1-35.

In timpul conversiei, orice caracter din fisierul de export care nu are echivalent in

setul de caractere tinta, este inlocuit cu un caracter implicit. Caracterul implicit este

definit de setul de caractere tinta). Pentru a garanta o conversie 100% reusita, setul

de caractere tinta trebuie sa fie un superset sau echivalent al setului de caractere

sursa.

Pentru seturi de caractere multi-octet, conversia este realizata numai daca lungimea

sirului de caractere nu se poate modifica drept rezultat al conversiei.

Atunci cand folositi Exportul prin metoda directa, setul de caractere al sesiunii

utilizator trebuie sa fie identic cu setul de caractere al bazei de date.

Atentie: Atunci cand marimea setului de caractere difera intre clientul export si

serverul de export, pot apare trunchieri ale datelor, daca prin conversie apare

expansiune a datelor. Daca apar trunchieri utilitarul Export afiseaza un mesaj de

avertizare.

Pentru mai multe informatii vezi sectiunea “National Language Support” in Oracle 8

Reference.

CONVERSIA NCHAR LA EXPORT SI IMPORT

Utilitarul Export exporta intotdeauna datele NCHAR in setul national de caractere al

serverului. (Setul national de caractere se specifica prin declaratia NATIONAL (setul

de caractere national) la crearea bazei de date.

Utilitarul Import nu face nici o conversie a datelor NCHAR, dar daca e necesar, OCI

converteste automat datele la setul national de caractere al serverului.

SETURI DE CARACTERE PE UN OCTET LA EXPORT SI IMPORT

39

Page 40: Utilitaru Export ORACLE

Anumite caractere pe 8 biti pot fi pierdute (prin conversie la echivalent 7 biti) atunci

cand importati un fisier de export pe set de caractere pe 8 biti. Aceasta apare atunci

cand masina client are un set de caractere nativ pe 7 biti, sau daca variabila de

mediu NLS_LANG este setata la un set de caractere pe 7 biti. Cel mai des veti

observa ca se pierd accentele la caracterele cu accent.

Aceasta situatie apare deoarece caracterele pe 8 biti din fisierul de export sunt

convertite la set de caractere pe 7 biti prin aplicatia client. Atunci cand sunt trimise

spre baza de date, caracterele pe 7 biti sunt convertite de catre server in caractere

pe 8 biti. Pentru a evita o astfel de situatie, trebuie oprita una din conversii. O cale

de realizare este de a seta NLS_LANG la setul de caractere al fisierului de export.

SETURI DE CARACTERE MULTI-OCTET LA EXPORT SI IMPORT

Un fisier de export care este produs cu un set de caractere multi-octet (ex. chinezesc

sau japonez) trebuie sa fie importat pe un sistem care are exact acelasi set de

caractere, sau unde raportul lungimilor celui mai extins caracter / cel mai restrans

caracter = 1 . Daca acest raport nu este 1 Import nu poate converti datele la setul

de caractere al sesiunii import.

CONSIDERATII ASUPRA EXPORTULUI OBIECTELOR BAZEI DE DATE

Urmatoarea sectiune descrie punctele de care trebuie sa tineti cont atunci cand

exportati obiecte particulare ale bazei de date.

EXPORTUL SECVENTELOR

Daca tranzactiile contuinua sa acceseze numerele de secventa in timpul exportului,

numere de secventa pot fi sarite. Cea mai buna cale de a va asigura ca numerele de

secventa nu sunt sarite este sa va asigurati ca secventele nu vor fi accesate in

timpul exportului.

Numere de secventa pot fi sarite doar atunci cand numere de secventa sunt in use.

Atunci cand un depozit de secvente de numere a fost alocat acestea sunt disponibile

pentru a fi folosite in baza de date curenta. Valoarea exportata este urmatorul

numar de secventa (dupa ultimul alocat, chiar daca nefolosit). Numerele de secventa

care sunt in depozit, dar nefolosite, sunt pierdute atunci cand sunt importate

secventele.

40

Page 41: Utilitaru Export ORACLE

EXPORTUL TIPURILOR DE DATE LONG

La export datele LONG pot fi extrase in sectiuni si nu necesita zone contigue de

memorie. Totusi, trebuie sa fie disponibila suficienta memorie pentru a contine

fiecare rand, inclusiv data LONG

Coloanele LONG pot avea pana la 2G.

Nota: Nu este necesar ca toate datele din coloanele LOB (Large Object) sa fie

pastrate in memorie la acelasi moment de timp. Datele LOB sunt incarcate si

descarcate in sectiuni.

EXPORTUL LIBRaRIILOR DE FUNCTII EXTERNE

Continutul librariilor de functii externe nu este inclus in fisierul de export. In loc, este

inclusa in exportul full si mod user doar specificatia librariei (nume, locatie).

Administratorul bazei de date trebuie sa mute libraria si sa actualizeze specificatia

de librarie daca aceasta este mutata la o noua locatie.

EXPORTUL ALIASURILOR DE DIRECTOARE

Definitiile de alias de directoare sunt incluse numai in modul full-database. Pentru a

muta o baza de date la o noua locatie, administratorul bazei de date trebuie sa

actualizeze aliasul directoarelor pentru a indica noua locatie.

Aliasul directoarelor nu este inclus in exporul mod user. De aceea trebuie sa va

asigurati ca aliasul directoarelor a fost creat pe sistemul tinta inainte ca aliasul de

directoare sa fie folosit.

EXPORTUL ATRIBUTELOR SI COLOANELOR BFILE

Fisierul de export nu retine continutul fisierelor externe referite de artibutele sau

coloanele BFILE. In loc, doar numele si aliasul directoarelor sunt copiate la export si

restaurate la import. Daca mutati baza de date intr-o locatie unde vechile directoare

nu pot fi utilizate pentru a accesa fisierele incluse, administratorul bazei de date

trebuie sa mute directoarele continand fisierele externe la o locatie unde ele pot fi

accesate.

EXPORTUL DATELOR ARRAY

Atunci cand utilitarul Export prelucreaza coloane array si atribute, el aloca un buffer

pentru a potrivi o tabela de cele mai mari dimensiuni care pot fi asteptate pentru

41

Page 42: Utilitaru Export ORACLE

coloana sau atribut. Daca dimensiunile maxime depasesc cu mult memoria folosita

in fiecare instanta a tabelei, Exportul poate ajunge la epuizarea memoriei.

De ex., daca o tabela are in mod normal 10 elemente, dar a fost dimensionata

pentru un milion de elemente, utilitarul Export va dimensiona bufferele pentru a

primi instante de un milion de elemente.

EXPORTUL DEFINITIILOR DE TIPURI DE OBIECTE

In toate modurile de export, utilitarul export include informatii despre definitiile de

tipuri de obiecte folosite de tabelele care vor fi exportate. Informatia, inclusiv

numele si identificatorul obiectelor, este necesara pentru a verifica daca tipul

obiectului este consistent pe sistemul tinta in concordanta cu obiectele continute in

fisierul dump.

In modul full sau user utilitarul Export scrie toate definitiile de tipuri de obiecte in

fisierul de export inainte de a scrie definitiile de tabele.

In toate modurile utilitarul Export scrie in fisierul de export, definitiile de tipuri de

obiecte pentru o tabela, imediat inaintea definitiei de tabela. Aceasta asigura ca

tipul de obiect necesar pentru o tabela este creat cu acelasi identificator de obiect la

momentul importului. Daca tipurile de obiecte deja exista pe sistemul de import,

aceasta permite lui Import sa verifice daca identificatorul obiectelor este acelasi.

Observati totusi, ca informatia precedand definitia tabelei nu include intotdeauna

toate definitiile de tipuri de obiecte necesare unei tabele. Retineti urmatoarele

puncte despre informatia care precede definitia tabelei:

Daca o coloana este un tip de obiect detinut de proprietarul tabelei este inclusa

definitia completa de tip.

Daca definitia tipului de obiect depinde de tipuri imbricate sau referite, acele

tipuri imbricate sau referite sunt exportate iterativ, pana cand Export gaseste un

tip care nu e detinut de proprietarul tabelei.

Daca sunt folosite tipuri de obiecte din alte scheme, Export afiseaza un mesaj de

avertizare.

Daca utilizatorul este un utilizator neprivilegiat, sunt incluse in export numai

definitiile de tipuri de obiecte la care utilizatorul are acces de executie.

Daca coloana este un tip de obiect care nu e detinut de proprietarul tabelei,

definitia tipului de obiect, in intregul ei, nu este scrisa in fisierul de export. Este

inscrisa numai informatia necesara pentru a verifica daca tipul respectiv exista,

cu acelasi identificator de obiect, pe sistemul tinta de import.

42

Page 43: Utilitaru Export ORACLE

Utilizatorul trebuie sa se asigure ca tipurile potrivite de definitii de obiecte exista pe

sistemul tinta, fie lucrand impreuna cu DBA pentru a le crea, fie prin importul lor

dintr-un export full-database sau in mod user, realizat de catre DBA.

Utilizatorul trebuie sa fie atent atunci cand realizeaza import mod tabela pentru ca

definitiile complete a tipurilor de obiecte din alte scheme nu sunt incluse in

informatia precedand tabela.

Este important sa realizati un export full database in mod regulat, pentru a pastra

toate definitiile de tipuri de obiecte. Alternativ, daca sunt folosite definitii de tipuri de

obiect din scheme diferite DBA trebuie sa realizeze un export mod user pentru setul

potrivit de utilizatori. De ex. daca TABLE1 a lui Scott contine o coloana pe TYPE1, a

tipurilor lui Blake, DBA trebuie sa realizeze un export in mod user atat pentru Blake

cat si pentru Scott, pentru a pastra definitiile de tipuri care sunt necesare tabelelor.

EXPORTUL TABELELOR COZI AVANSATE (AQ)

Cozile sunt implementate in tabele. Exportul si importul cozilor constituie exportul si

importul tabelelor cozi si tabelelor dictionar.

Atunci cand se exporta o tabela coada, sunt exportate atat definitiile de tabele cat si

datele. Pentru ca sunt exportate atat datele din tabele cozi cat si definitia tabelei,

utilizatorul este responsabil de mentinerea integritatii datelor la nivel aplicatie,

atunci cand datele din tabele sunt importate.

EXPORTUL TABELELOR IMBRICATE

Tabelele imbricate din interior sunt exportate de fiecare data cand sunt exportate

tabelele exterioare. Cu toate ca tabelele imbricate interioare pot fi numite, ele nu

pot fi exportate individual.

FOLOSIREA DIFERITELOR VERSIUNI DE EXPORT

Aceasta sectiune descrie comportarea generala si restrictiile la rularea unei versiuni

de Export care este diferita de Oracle8.

FOLOSIREA UNEI VERSIUNI PRECEDENTE DE EXPORT

In general se poate folosi utilitarul Export de la orice varianta Oracle7 pentru a

exporta de pe un server Oracle8 si a crea un fisier de export compatibil Oracle7.

43

Page 44: Utilitaru Export ORACLE

(Aceasta procedura este descrisa in “Crearea unui fisier de export Oracle7 de pe un

server Oracle8” pag. 1-40.

Versiunile de export Oracle6 sau mai vechi nu pot fi folosite pe un server Oracle8.

Intotdeauna cand o versiune mai veche de Export ruleaza pe un server Oracle mai

recent (ca versiune), categoriile de obiecte ale bazei de date care nu exista in

versiunea mai veche sunt excluse din export. (Vezi “Obiecte excluse” pag. 1-40

pentru o lista completa a obiectelor Oracle8 excluse intr-un export Oracle7.)

Atentie: Atunci cand compatibilitatea spre versiunile vechi este impusa, folositi o

versiune veche (Oracle7) a utilitarului Export asupra unei baze de date Oracle8, si

folositi metoda conventionala de export.

Atentie: Fisierul de export generat de utilitarul Export Oracle8, fie prin metoda

directa fie prin metoda conventionala, este incompatibil cu versiunile mai vechi de

import si poate fi importat numai prin utilitarul Import Oracle8.

FOLOSIREA UNEI VERSIUNI MAI NOI DE EXPORT

Incercarea de a folosi o versiune mai recenta de export pe un server Oracle de

versiune mai veche de obicei da urmatoarea eroare:

EXP-37: Database export views not compatible with Export utilityEXP-0: Export terminated unsuccesfullyEroarea apare pentru ca vederile pe care versiunea mai noua de export le asteapta

nu sunt prezente. Pentru a evita aceasta problema folositi versiunea de export care

se potriveste versiunii de Oracle server.

44

Page 45: Utilitaru Export ORACLE

CREAREA DE EXPORTURI ORACLE7 PE UN SERVER ORACLE8

Se poate crea un export Oracle7 pe un server Oracle8 prin rularea Oracle7 Export.

Pentru a realiza asta trebuie sa rulati mai intai scriptul CATEXP7.SQL, care creaza

vederile de export care fac ca baza de date sa arate (d.p.d.v al utilitarului Export) ca

o baza de date Oracle7.

Nota: Un Export Oracle8 necesita sa fie rulat inainte scriptul CATEXP.SQL Acest script

este rulat in mod automat la crearea bazei de date, atunci cand utilizatorul SYS

ruleaza CATALOG.SQL pentru crearea vederilor necesare. Totusi CATEXP7.SQL nu

este rulat automat, el trebuie rulat manual, atunci cand este necesar. CATEXP7.SQL

si CATEXP.SQL pot fi rulate in orice ordine; dupa ce unul din aceste scripturi a fost

rulat, nu mai este necesar sa fie rulat din nou.

OBIECTE EXCLUSE

Exportul Oracle7 produce un fisier de export Oracle7 prin executarea interogarilor

asupra vederilor create de CATEXP7.SQL Aceste vederi sunt complet compatibile cu

serverul Oracle7, si in consecinta nu contin urmatoarele obiecte Oracle8:

aliasuri de directoare

librarii de functii straine

tipuri de obiecte

tabele continand obiecte introduse in Oracle8 (aceste obiecte includ coloane LOB,

REF si BFILE si tabele imbricate)

tabele partitionate

tabele index organizate (IndexOrganizedTables - IOT)

tabele continand mai mult de 254 coloane

tabele continand coloane NCHAR

tabele continand coloane VARCHAR mai mari de 2000 caractere

indecsi inversi (reverse indexes)

istoricul parolelor

EXPORTUL LA VERSIUNEA 6

Daca trebuie sa exportati de pe un sistem versiunea 6, folositi un utilitar export

Oracle7.2 sau mai vechi. Vedeti documentatia Oracle7.2 sau mai veche pentru orice

restrictie. Notati ca versiunea 7.3 nu poate fi folosita pentru a obtine un export in

versiunea 6.

45