Jeg havde brug for et svar hurtigt, og det fik jeg. Jeg gav ikke så mange point for selve svaret, det kunne jeg sikket finde ved at rode rundt på en masse hjemmesider eller på metalink. Men for at få folk til at se på spørgsmålet hurtigt... Så vær ikke flov over at have fået alle points'ne
I Oracle er DDL altid ireverserbart, så lad være med at lave DDL hvis det ikke er gennemtænkt. DDL = Data Definition Language = CREATE, DROP, TRUNCATE etc.
I oracle kan mann bruge flashback ! Dvs. at sørger man for at man har sat sin undo rentition time til f.eks. 48 timer, så gemmer databasen alle ændringer der laves i undo tablespaces. Man kan så sætte tiden tilbage til feks. for 12 timer siden og selecte fra tabellen... Så det kan godt lade sig gøre - med det rigtige setup og lidt god vilje!
pnielsen - NEJ, NEJ og atter NEJ. Tilgængelig teknologi omkring flashback baserer sig på UNDO information, og DROP TABLE, TRUNCATE TABLE osv. genererer IKKE i tilgængelig teknologi UNDO information. I dokumentationen på Oracle 9i vedr. flashback queries skrives der direkte, at DDL vil invalidere muligheden for flashback.
Så, nice try, men det kan altså ikke lade sig gøre
Måske i en fremtidig version af Oracle 10g eller 11x .....
Du har da helt ret i at DDL'er ikke kan reddes, men der var bare flere udsagn der var lidt misvisende/usande. Læs selv opefter... (arne_v og milandt)
Kan godt se bagefter at mit svar ikke passer i den aktuelle sag, men muligheden blev slet ikke nævnt som et alternativ ved DML ! Der er jo ikke så meget nyt i undo egentligt - bare gemte rollback oplysninger.
Iøvrigt kom det lidt bag på mig en dag at flashback runder af til nærmeste femte minut... Det var ihvertfald det jeg oplevede da en udvikler en dag havde været lidt for hurtig.
I den aktuelle sag ville jeg restore det tablespace det drejede sig om + system + rbs + temp og udelade resten(alt efter hvor stor databasen er) - derefter recover until time til umiddelbart før tabellen blev droppet. Derefter exp/imp ind i prod systemet. Dette forudsætte selvfølgelig at tabellen ikke har referencer - så der kommer inconsistens i databasen. Hvis der er foreign keys, så er det fuld recover until time... Så er det vist slået fast med syvtommer ;-) Godnat.
Vi er helt rolige. Syntes kun det er godt at vi for lidt snak herinde :-)
I hvilken forstand er det et Datawarehouse ? Hvis det er opsamling af data fra andre databaser, kan du vel blot hente den igen derfra - eller genskabe ud fra de data?
præsic, det var også det jeg gjorde... Problemet var bare, at jeg skulle læse en gammel backup fra kildesystemet ind, da jeg droppede en tabel fra marts sidste år...
Pnielsen, du har fuldstændig ret med hensyn to UNDO, det er faktisk "bare" gammeldags public rollback, der automatisk oprettes efter behov, og hvor indholdet ikke overskrives før et givet tidsrum er gået. Med hensyn til granuliteten viste jeg faktisk IKKE at den bliver afrundet - Tak for det. Med hensyn til din recover plan, så lyder den faktisk helt fornuftig.
Og ja arne_v havde vist ikke helt læst spørgsmålet korrekt, og milandt havde da vist nok slet ikke læst det, eller følger ikke med i hvad der sker omkring Oracle.
Kiggede lige i 10G manualen - der er kommet en recycle bin :-)
Using Flashback Drop and Managing the Recycle Bin When you drop a table, the database does not immediately remove the space associated with the table. The database renames the table and places it and any associated objects in a recycle bin, where, in case the table was dropped in error, it can be recovered at a later time. This feature is called Flashback Drop, and the FLASHBACK TABLE statement is used to restore the table. Before discussing the use of the FLASHBACK TABLE statement for this purpose, it is important to understand how the recycle bin works, and how you manage its contents.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.