Kaptam egy 9.2.0.8.0 adatbázist, amiről szeretném az adatbázist kiexportálni.
Viszont csak 10.x kliensem van linux 64 bit.
Ezzel sajnos nem megy az exp.
Tudna valaki segíteni, hogy honnan tudok letölteni 9.x linux 64 bit klienst, vagy van valami megoldás hogy a 10.x-et használjam, bár ez utóbbira nem találtam megoldást.
- 7236 megtekintés
Hozzászólások
Elvileg felülről kompatibilis, tehát menni kellene az exp-nek.
Hibaüzenet esetleg ?
- A hozzászóláshoz be kell jelentkezni
"Elvileg felülről kompatibilis"
Err....Oracle és a felülről kompatibilitás.... :)
10-es exp egyébként is bugos itt-ott, legalábbis a 10.2.0.5 alatti verziók.
- A hozzászóláshoz be kell jelentkezni
Hiba üzenet:
EXP-00056: ORACLE error 6550 encountered
ORA-06550: line 1, column 41:
PLS-00302: component 'SET_NO_OUTLINES' must be declared
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored
EXP-00000: Export terminated unsuccessfully
- A hozzászóláshoz be kell jelentkezni
A telepített 9.2 -es adatbázis szerverén a kéne legyen exp.
Álltalában a $ORACLE_HOME/bin alatt szokott lakni. Azzal kellene exportálni.
"van valami megoldás hogy a 10.x-et használjam"
nincs.
- A hozzászóláshoz be kell jelentkezni
Amelyik gépen van 9-es exp az 32bit-es és nincsen elég hely, hogy megoldjam, ahol van elég hely, az meg 64-bit-es.
Nincsen kedvem csak emiatt feltenni a 32-es lib-eket.
- A hozzászóláshoz be kell jelentkezni
Tipp:
tudsz fifo-ba is exportálni, ha fut az export, akkor: cat fifo | ssh akarhova "dd of="
- A hozzászóláshoz be kell jelentkezni
Köszi szuper ötlet, csak nincsen visszafelé tűzfal engedély :(
Ezt megpróbálom elintézni
- A hozzászóláshoz be kell jelentkezni
Akkor próbáld a másik irányból: ssh gepnev "cat /valahol/fifo" > oracle.dmp
- A hozzászóláshoz be kell jelentkezni
Köszi szuperül működik a dolog.
Ezt a dump-ot át tudom valahogy alakítani, hogy megegye egy pgsql?
Vagy mindenképpen egy oracle-ba kell tölteni, és onnan átemelni?
- A hozzászóláshoz be kell jelentkezni
Oracle - postgres nem azonos sql nyelvjárás. Ha ismered mindkettő sajátosságait vagy találsz konverziós progit, akkor esetleg.
- A hozzászóláshoz be kell jelentkezni
Hogy mit nem mondasz :)
Gondoltam valaki belefutott hasonlóba már....
- A hozzászóláshoz be kell jelentkezni
Ezt a dump-ot át tudom valahogy alakítani, hogy megegye egy pgsql?
Az "exp" dump emlékeim szerint egy bináris byte-halmaz, amit csak az "imp" utility tud megérteni.
Vagy mindenképpen egy oracle-ba kell tölteni, és onnan átemelni?
Maga az adatáttöltés is kérdéses, mivel ha csak a sorokra vágysz (INSERT-ek), akkor sem lesz sétagalopp, de az még megoldható szokott lenni.
De ha a táblastruktúrát is át akarod emelni, az tuti csak kézzel fog menni, ha pedig PL/SQL rutinok is vannak az adatbázisban, akkor "sok szerencsét"...
- A hozzászóláshoz be kell jelentkezni
Csak az adatokra lenne szükségem.
A sima select célravezetőbb lenne, csak sajnos indexek hiánya miatt lassú a query és ebbe futok:
ORA-12801: error signaled in parallel query server P000
ORA-01555: snapshot too old: rollback segment number 18 with name "_SYSSMU18$" too small
Sajnos az egész egy fekete doboz, nem tudok hozzányúlni.
- A hozzászóláshoz be kell jelentkezni
növeld meg az undo táblateret vagy ha még rollback segmenst használsz akkor azt.
- A hozzászóláshoz be kell jelentkezni
Nincsen valami olyan paraméter mely nem lock-olja a táblát, a friss adatok úgy sem kellenek. Mivel az sql-hez nem tudok hozzányúlni.
- A hozzászóláshoz be kell jelentkezni
Ezt még1x mert nem teljesen jött át a mondandód :)
A query nem lockolja a táblát, a snapshot too old üzenetet azért kapod, mert amikor indult a lekérdezésed X időpontba neki az akkori adatokat kell felolvasnia, csakhogy változnak az adatok és a "régi" X időponti adatok az undo vagy rollback segmensbe kerülnek, ha viszont annyira sok a változás, hogy mire a query lefutna a "régi" adat már innen is kikerül és a szerencsétlen DB már sehonnan nem tudja visszaolvasni. ( na jó ez így nem teljesen igaz mert 10g óta a flashback technolgiák már ezt is megoldhatják de ez számodra nem játszik).
Szerk: Ha nem tudsz undo-t növelni akkor az egy nagyon jó 5let amit vl ajánlott, hogy egy backupot valahova máshova visszatölteni és ott "nyugodtan" kiexportálni/kiloadolni az adatokat.
Szerk2:Még 1 észrevétel: nem lehet, hogy most megy valami betöltés (sok adatot módosít) és ha más időpontba csinálnád a query-t akkor talán le is lefutna?
- A hozzászóláshoz be kell jelentkezni
Sajnos a legutolsó, hogy a DB-hez hozzá nyúlhassak :(
Sajnos az adat betöltés folyamatos, illetve a kihulló adatok is valamilyen rendszerességgel kitörlődnek.
Nekem kizárólag a "tegnapi" adatokra van szükségem, ami nem változik, és nem érdekel, hogy a többi adat milyen változáson megy keresztül.
Azt szerettem volna mondani, hogy lehetséges olyan query-t megadni, vagy induló paraméterrel jelezni a session-ben, hogy ne törődjön a változásokkal, keresse csak meg az illeszkedést. Bár ez még kimondva is kicsit bugyuta, de hátha tud egy ilyen lebutított keresést.
- A hozzászóláshoz be kell jelentkezni
Ha nem tudsz az adatbázishoz hozzáférni (nem vagy DBA, nem is engednek oda), akkor az egyedüli megoldás az marad, hogy írsz egy iteratív szinkronizáló programot, vagy megvárod, hogy ne legyen terhelés/folyamatos írás az adatbázisban.
Ha van primary key a táblában, és tudod, hogy a téged érdeklő adatok nem változnak meg, akkor szépen kulcs alapján elkezded olvasni, és amikor megáll a query, akkor újrakezded, az általad ismert legnagyobb kulcstól.
Ha semmi kulcs nincs a táblában, és nagy a tábla, akkor kb. a megoldhatatlan kategóriába esik a feladat.
- A hozzászóláshoz be kell jelentkezni
És mi lenne ha a selected nem egy napi adatot akarna kinyerni, hanem csak 1 órányit? és eljátszod ezt 24x ? :)
- A hozzászóláshoz be kell jelentkezni
Hát igen, teljesen rendszertelenül hol sikerül kinyerni, hol hibára fut.
Így sajnos nem egyszerű, főleg az indexek hiánya miatt nagyon lassú, de ezen nem tudok sajnos segíteni. Ezért akarom kliens oldalról megtalálni az a megoldást, ami segít kinyerni az adatokat.
- A hozzászóláshoz be kell jelentkezni
Az a probléma, hogy olvasás közben valaki matatja alattad az adatbázist.
Vagy lemondasz arról, hogy konzisztens adatbázisképet tudjál kidumpolni (lecsökkented az sql sessionben az izolációt):
SET CURRENT ISOLATION = READ COMMITTED vagy READ UNCOMMITTED
Vagy kell sok és nagy rollback + undo tablespace.
Vagy meg kell állítani az adatbázist matató folyamatot.
Vagy kell csinálni egy online backup másolatot az adatbázisfájlokról, a másolatot máshol beindítani, és ekkor ezt a példányt immáron senki nem fogja alattad matatni, ergó simán lefut rajta a lekérdezés.
- A hozzászóláshoz be kell jelentkezni
Hülyeséget írtam... ez nem az Oracle RDBMS szintaxisa, mivel az nem tud ilyet, nem ismeri a READ UNCOMMITTED fogalmát, ráadásul a READ COMMITTED a default, és az nem oldja meg a problémát.
- A hozzászóláshoz be kell jelentkezni
select * from tabla as of timestamp (to_date('2012.10.26 13:51','YYYY.MM.DD HH24:MI'));
ezt úgy hívják flashback query. Persze ettől még snapshot too oldot kaphatsz.
Kérd meg a dba-t hogy növelje meg az undo (régebben redo) táblateret és/vagy növelje az undo_retention_time db paraméter értékét.
Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..
- A hozzászóláshoz be kell jelentkezni
Ez nem oldja meg a fő problémát, miszerint nincs DBA jog, és nincs elég undo/rollback.
Igazából semmivel nem jut előrébb, mint a sima selecttel.
- A hozzászóláshoz be kell jelentkezni
9-esben még nem volt flashback query :)
- A hozzászóláshoz be kell jelentkezni
oops ezt benéztem ...
Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..
- A hozzászóláshoz be kell jelentkezni
A dumpot nem fogod tudni átalakítani.
Több választásod van átemelni adatokat vagy csinálsz csv-ket és a másik oldalról valamilyen loader-rel betöltöd, vagy legyártatod az sql utasításokat és azokat töltöd be (ez sok adatnál szívás, a szerkezetet neked kell átírni és lassú) vagy használsz valami migráló toolt ami nem mindig ingyenes. (SQL developer-t nézd meg mert ingyenes csak nem minden másik sql-hez van migráló plugin)
http://www.oracle.com/technetwork/database/migration/omwb-getstarted-09…
pgsql-re nincs plugin.
- A hozzászóláshoz be kell jelentkezni
sqldeveloper a Te eszközöd ... az tud sql-t generálni, create, insert stb...
Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..
- A hozzászóláshoz be kell jelentkezni