Avatar billede apocryphal Nybegynder
14. december 2004 - 13:57 Der er 4 kommentarer og
2 løsninger

Deaktiver transaktionslog midlertidigt

Hey.

Jeg har en database server, med 2 databaser.
Archive og Production

I Archive kører jeg et kald:
INSERT INTO Logs(felt1, felt2, felt3)
SELECT felt1, felt2, felt3
FROM Production.dbo.Logs

Der er 32.000.000 rækker i Production.Logs, og når jeg kører statementet, vokser min Transactionlog for Archive til 34 GB, og så er der ikke mere harddiskplads, hvorfor kaldet self. laver rollback, og jeg har spildt tre timer :(

Kan jeg omgås det på nogen måde?

--
Jonas
Avatar billede bjornicle Nybegynder
14. december 2004 - 15:23 #1
Du kan evt kigge paa bulk insert/bulk copy, men hvis det kun er til archive er der vel ikke grund til at have en transactionlog da du kun indsaetter data engang imellem. Overvej evt. at saette databasen til "simple recovery".
Avatar billede apocryphal Nybegynder
14. december 2004 - 16:12 #2
Selv ved simple recovery vokser transaktionsloggen til den overnævnte størrelse :/

Jeg kunne lave det sådan, at den kopierer 1.000.000 rows, og så comitter, og så de næste 1.000.000 rows - and so on, and so on...

Det ville vil få den til at reuse Transaktionsloggen?
Avatar billede bjornicle Nybegynder
14. december 2004 - 16:21 #3
ved naerlaesning maa jeg give dig ret, den har stadig en translog, men den truncater den bare efter hver transaction. En mulighed er som du siger at tage det i batches, ellers kan du maaske saette recovery til "bulk-logged" og saa bruge bulk copy og insert, da der staar "Minimal log space is used by bulk operations."
Avatar billede janus_007 Nybegynder
14. december 2004 - 21:14 #4
Du kunne også bare bruge EnterpriseManagerens import/export og importerer din tabel, den sørger selv for at lave batches osv. :O)

Og så gøre som bjornicle siger, sætte recovery til simple!. Grunden til at du oplever at transactionsloggen også vokser ved simple er såmænd simpelt nok :O)... Den holder transaktionen indtil den er færdig, når den så er færdig frigives pladsen og du behøver således ikke lave en backup af transactionsloggen (hvilket heller ikke kan lade sig gøre når du kører simple recovery)
Avatar billede janus_007 Nybegynder
20. december 2004 - 15:42 #5
Kan vi afslutte?
Avatar billede apocryphal Nybegynder
20. december 2004 - 15:49 #6
Jo, lad os bare det.
Jeg har ikke fået tid til at afprøve det endnu, men import export burde vel virke...
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