Avatar billede d_warma Nybegynder
16. marts 2004 - 16:46 Der er 17 kommentarer og
1 løsning

Undo drop table

Hej,

Jeg har droppet en forkert tabel.
Kan jeg lave en rollback eller en undo på nogen måde?
Eller skal jeg have fat i min backup og læse den ind?

Spørgsmålet er ikke svært, men det haster!
Avatar billede milandt Nybegynder
16. marts 2004 - 16:50 #1
du kan ikke lave undo når du arbejder i databaser.
Avatar billede d_warma Nybegynder
16. marts 2004 - 16:52 #2
hvad betyder det?
Skal jeg gå ud af basen og lave undo??
Avatar billede arne_v Ekspert
16. marts 2004 - 16:56 #3
Hvis du ikke har lavet en eksplicit commit eller en implicit commit via
auto commit, så bør du kunne lave en rollback.

Men du kører nok med auto commit.
Avatar billede d_warma Nybegynder
16. marts 2004 - 16:58 #4
Det tror jeg desværre, at jeg gør
Statementen er lavet i SQL-plus.
Avatar billede the_bma_man Nybegynder
16. marts 2004 - 17:23 #5
Uanset om der bruges implicit commit eller ej kan en drop table ikke rulles baglæns.
Så undo funtionen hedder i dette tilfælde:
restore database ....
Avatar billede d_warma Nybegynder
16. marts 2004 - 17:40 #6
Doh!!
Nørh, jeg må vel bruge den tid det tager.
3 krige og en madpakke.... (McD) ;o)

Tak for hjælpen!
Avatar billede the_bma_man Nybegynder
16. marts 2004 - 18:00 #7
Øhhm - takker for points.
(Havde nok ikke liige regnet med at få hele dynen for det lille svar ...)
Avatar billede d_warma Nybegynder
16. marts 2004 - 18:15 #8
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
Avatar billede the_bma_man Nybegynder
16. marts 2004 - 18:48 #9
oki - syntes nu bare det var lidt meget for så lidt.
Men ok - du bestemmer :-)
Avatar billede larildsen Nybegynder
16. marts 2004 - 23:04 #10
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.
Avatar billede pnielsen Nybegynder
19. marts 2004 - 21:27 #11
hov hov hov.. det var lige hurtigt nok venner!

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!
Avatar billede larildsen Nybegynder
20. marts 2004 - 14:59 #12
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 .....
Avatar billede pnielsen Nybegynder
21. marts 2004 - 00:44 #13
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.
Avatar billede d_warma Nybegynder
21. marts 2004 - 01:48 #14
Hehe,

Roooolig nu gutter, der er ikke noget produktionssystem. Det er et datawarehouse!
Avatar billede pnielsen Nybegynder
21. marts 2004 - 01:52 #15
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?

Hvad endte det egentligt op med ?
Avatar billede d_warma Nybegynder
21. marts 2004 - 01:59 #16
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...
Avatar billede larildsen Nybegynder
21. marts 2004 - 15:07 #17
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.
Avatar billede pnielsen Nybegynder
21. marts 2004 - 15:39 #18
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester