utilitaru export oracle
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
. 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
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
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
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
(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
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
. 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
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
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
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
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
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
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
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
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
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
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
.. 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
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
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
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
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
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
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
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
(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
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