Hjemmeside » hvordan » Sikkerhedskopier og gendan din SQL Server-database fra kommandolinjen

    Sikkerhedskopier og gendan din SQL Server-database fra kommandolinjen

    Den vigtigste del af en SQL Server vedligeholdelsesplan er at sikkerhedskopiere dine databaser regelmæssigt. For at sikkerhedskopiere en database kan du ikke blot kopiere de respektive MDF- og LDF-filer i databasen, da SQL Server har en lås på disse. I stedet skal du oprette en ægte sikkerhedskopieringsfil via SQL Server.

    Selv om dette kan gøres ved at udvikle en vedligeholdelsesplan inde i SQL Management Studio, tilbyder de gratis Express-udgaver af SQL Server ikke denne grænseflade. For at omgå dette kan du nemt sikkerhedskopiere dine databaser ved at køre kommandoen nedenfor, mens du er logget ind som en Windows Administrator:

    SqlCmd -E -S Server_Name -Q "BACKUP DATABASE [Name_of_Database] TIL DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""

    Eksemplerne nedenfor vil hjælpe.

    Standard SQL Server-forekomst:

    SqlCmd -E -S MyServer -Q "BACKUP DATABASE [MyDB] TIL DISK =" D: BackupsMyDB.bak ""

    Navngivet SQL Server-forekomst:

    SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATABASE [MyDB] TIL DISK =" D: BackupsMyDB.bak ""

    Ovenstående opretter en fuldstændig gendannet sikkerhedskopi af "MyDB" til filen "D: BackupsMyDB.bak", som kan bruges til katastrofeinddrivelse. Selvfølgelig kan du ændre sikkerhedskopieringsstedet og filen til det, du har brug for, men sørg for at angive en mappested, der findes på den lokale maskine. Denne sikkerhedskopieringsfil kan derefter kopieres til et bånddrev eller en anden ekstern backupplacering.

    Et fælles spørgsmål er "Kan en backup-fil oprettes til et kortnummer eller UNC-sted?" Og det hurtige svar er nej. Årsagen er, at SQL Server Windows Service kører som en brugerkonto, som kun har adgang til den lokale maskine. Du kan ændre den konto, som tjenesten kører som, men det er meget afskrækket af sikkerhedsmæssige årsager.

    Gendannelse af database backup fra kommandolinjen

    For at gendanne en database fra en backup-fil, skal du blot bruge kommandoen:

    SqlCmd -E -S Server_Name -Q "RESTORE DATABASE [Name_of_Database] FRA DISK =" X: PathToBackupFile [File_Name] .bak ""

    For eksempel:

    SqlCmd -E -S MyServer -Q "RESTORE DATABASE [MyDB] FRA DISK =" D: BackupsMyDB.bak ""

    Ovennævnte kommando vil gendanne en backup af "MyDB" fra de data, der er gemt i backupfilen "D: BackupsMyDB.bak". Eventuelle ændringer foretaget til MyDB siden backupfilen blev oprettet vil gå tabt.

    En vigtig ting at huske, når du bruger kommandoen ovenfor, er, at den er beregnet til at blive brugt på den samme SQL Server, at den respektive backupfil blev oprettet på. SQL-backup-filer gemmer 'bag kulisserne' oplysninger, der styrer hvor og hvordan datafilerne i backupfilen kopieres. Hvis du gendanner en sikkerhedskopi fra en anden SQL Server, kan stien i backupfilen ikke matche serveren, du genopretter, og der opstår en fejl. Selv om dette kan arbejdes rundt, er det meget nemmere at gendanne sikkerhedskopier oprettet på en anden SQL Server ved hjælp af SQL Management Studio-værktøjet.

    Bemærk: Kommandoerne ovenfor vil fungere på SQL 2005 og højere (enhver udgave). For SQL 2000 og tidligere, erstat 'SqlCmd' med 'oSql'.