Den viktigste delen av en SQL Server vedlikeholdsplan er å sikkerhetskopiere databasene dine regelmessig. For å sikkerhetskopiere en database, kan du ikke bare kopiere de respektive MDF- og LDF-filene i databasen da SQL Server har en lås på disse. I stedet må du opprette en sann sikkerhetskopieringsfil gjennom SQL Server.
Selv om dette kan gjøres ved å utvikle en vedlikeholdsplan inne i SQL Management Studio, tilbyr ikke de gratis Express-utgavene av SQL Server dette grensesnittet. For å omgå dette, kan du enkelt sikkerhetskopiere databasene ved å kjøre kommandoen nedenfor mens du er logget inn som en Windows-administrator:
SqlCmd -E -S Server_Name –Q “BACKUP DATABASE [Name_of_Database] TO DISK=’X:PathToBackupLocation[Name_of_Database].bak'”
Eksemplene nedenfor vil hjelpe.
Standard SQL Server-forekomst:
SqlCmd -E -S MyServer –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”
Navngitt SQL Server-forekomst:
SqlCmd -E -S MyServerMyInstance –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”
Ovennevnte oppretter en fullstendig gjenopprettelig sikkerhetskopi av "MyDB" til filen "D: BackupsMyDB.bak" som kan brukes til katastrofegjenoppretting. Selvfølgelig kan du endre backupplasseringen og filen til alt du trenger, men sørg for at du spesifiserer en mappeplassering som finnes på den lokale maskinen. Denne sikkerhetskopifilen kan da kopieres til en båndstasjon eller en annen ekstern backupplassering.
Et vanlig spørsmål er "Kan en sikkerhetskopieringsfil opprettes til en kartlagt stasjon eller UNC-sted?" Og det raske svaret er nei. Årsaken er at SQL Server Windows Service kjører som en brukerkonto som bare har tilgang til den lokale maskinen. Du kan endre kontoen tjenesten kjører som, men dette er svært motløs av sikkerhetshensyn.
Gjenopprette en databasekopiering fra kommandolinjen
For å gjenopprette en database fra en sikkerhetskopifil, bruk bare kommandoen:
SqlCmd -E -S Server_Name –Q “RESTORE DATABASE [Name_of_Database] FROM DISK=’X:PathToBackupFile[File_Name].bak'”
For eksempel:
SqlCmd -E -S MyServer –Q “RESTORE DATABASE [MyDB] FROM DISK=’D:BackupsMyDB.bak'”
Kommandoen ovenfor vil gjenopprette en sikkerhetskopi av "MyDB" fra dataene som er lagret i sikkerhetskopifilen "D: BackupsMyDB.bak". Eventuelle endringer som er gjort i MyDB siden sikkerhetskopieringsfilen ble opprettet, vil gå tapt.
En viktig ting å huske når du bruker kommandoen ovenfor, er at den skal brukes på samme SQL Server som den respektive backupfilen ble opprettet på. SQL-backupfiler lagrer "bak kulissene" -informasjonen som styrer hvor og hvordan datafilene i sikkerhetskopifilen kopieres. Hvis du gjenoppretter en sikkerhetskopiering fra en annen SQL Server, kan stiplasseringene i sikkerhetskopifilen kanskje ikke matche serveren du gjenoppretter til, og det oppstår en feil. Selv om dette kan fungere, er det mye lettere å gjenopprette sikkerhetskopier opprettet på en annen SQL Server ved hjelp av SQL Management Studio-verktøyet.
Merk: kommandoene ovenfor vil fungere på SQL 2005 og høyere (noen utgave). For SQL 2000 og tidligere, erstatt 'SqlCmd' med 'oSql'.