Din cauza unele probleme cu drive-urile de baze de date a fost corupt și de rezervă (da, știu că este epic eșuează, dar baza nu este foarte importantă, iar atunci când ea a observat pierderea, de rezervă este învechit și scos script-ul).
Miraculos păstrat doar o groapă de gunoi, făcut util exp. Totul ar fi frumos, dar această haldă a fost de asemenea bătută. La importul unuia dintre tabele, sesiunea de import a fost suspendată pentru totdeauna. Din fericire, acest tabel conținea date neimportante (jurnalul anumitor operațiuni), din care se putea refuza fără durere.
Deci, hai să încercăm să reparăm fișierul cu memorie.
După cum știm, expunerea clasică stochează datele într-un format semi-text. Prin urmare, nimic nu ne poate răni nu pentru a găsi o definiție a tabelului corupt din fișierul și se taie și toate datele din acest tabel din haldă, folosind instrumente Linux standard. Definiția tabelului este precedată de un șir:
Aici ACT_HIST este numele tabelului nostru corupt.
Deci, găsiți numărul liniei din fișierul în care începe masa noastră ACT_HIST: Continuați să citiți »
Ambele utilitare de export de date, exp și expdp au un parametru de interogare. care vă permite să exportați nu toate rândurile din tabel, ci doar cele care intră sub incidența acestei condiții. Problema este că în acest parametru este permisă numai clauza WHERE. Acest lucru poate duce la faptul că planul de interogare care va utiliza exp / expdp va fi foarte suboptimal, iar exporturile vor merge timp inacceptabil de lung, cu toate că setul de rezultate nu este atât de mare.
Există o modalitate curioasă de a obține utilitatea pentru a folosi sugestii. alegerea planului de execuție optimă. Continuați lectură »
Uneori se întâmplă că trebuie să estimați mărimea unor mese într-o dumpă realizată de utilitarul exp. dar fără a le importa în baza de date. Puteți, bineînțeles, să faceți o importanță cu parametrul show = y. Dar acest lucru nu este întotdeauna convenabil, pentru că imp în acest mod arată dimensiunea tabelului din rândurile (și ne-o dorim, în megaocteți, de exemplu), și necesită o conexiune la baza de date, chiar și pentru a simula. Exit - pentru a scrie scenariul pentru dimensiunile mesei de evaluare (Ne pare rău pentru codul desfundat): Continue reading »
Atunci când creați o memorie de schemă utilizând utilitarul exp, uneori nu aveți nevoie să exportați unele dintre tabelele din listă, ci toate tabelele, cu excepția unei anumite liste. Cu un număr mare de tabele din schema exportată, va fi convenabil să se automatizeze crearea unui fișier parametru (parfile) pentru exp.
Pentru aceasta, creați fișierul build_parfile.sh cu următorul conținut: Continuați să citiți »
Se știe că folosirea utilitarelor exp / imp este imposibilă pentru a umple un depozit în aceeași bază de date, din cauza duplicării OID-urilor. În plus, dacă numele spațiului de tabelă din baza de date țintă nu se potrivește cu numele TS din sursă, schema nu poate fi importată.
Scrierea unui script care curăță clauza de stocare, clauza tablespace și OID pentru obiectele din fișierul de memorie creat de utilitarul exp:
Continuați lectură »