22. januar 2004 - 09:33Der er
9 kommentarer og 3 løsninger
Backup af MSSQL
Hey der!
Jeg har efterhånden MSSQL server med rimelig mange databaser, og vil gerne lave backup af alle dem jeg har lavet og ikke de indbyggede. Er der en nemmere måde end at lave en schedule for hver enkelt database ? Det hele skal ned på en DAT streamer.
Du kan nøjes med at lave backup af data- og logfilerne (dbNavn.mdf og dbNavn.ldf). Der er blot det problem at databasen skal være lukket for at backupprogrammet kan tage dem, som regel.
Jeg gør dette: En bat-fil sættes til at køre om natten (eller et andet tidspunkt databasen ikke bruges). Den lukker sqlserveren, kopierer filerne, og starter sqlserveren igen:
net stop sqlserveragent net stop mssqlserver
C: CD Program Files\Microsoft SQL Server\MSSQL\Data
En mulighed er at finde database navnene i sysdatabases og så loope igennem med en cursor og dynamisk SQL - noget i stil med nedenstående: (hvis du gerne vil eksludere nogle databaser så kan du bare gøre det i where delen når du opretter cursoren) (myBackupDevice er et device du har oprettet til din DAT streamer ..)
DECLARE @dbName AS sysname DECLARE @strSQL nvarchar(4000)
DECLARE dbCurs CURSOR FOR SELECT [name] FROM master.dbo.sysdatabases
OPEN dbCurs FETCH NEXT FROM dbCurs INTO @dbName
WHILE @@FETCH_STATUS = 0 BEGIN SET @strSQL = 'BACKUP DATABASE ' +@dbName+ ' TO myBackupDevice' EXEC @strSQL FETCH NEXT FROM dbCurs INTO @dbName END
ldanielsen: Jeg har prøvet at gøre som din bat fil gør og kopieret det over på en fuldstændig ens MSSQL server men den finder ikke filerne og tilføjer dem heller ik i database træet.
du skal lægge filerne i data-mappen, og derefter fra Enterprise Manager højreklikke på Databases, vælge All Tasks > Attach Database. Peg derefter på mdf-filen og klik ok.
Vær opmærksom på at stien til datamappen skal være præcis den samme som der hvor filerne kommer fra, ellers kan den ikke finde logfilen
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.