Startpagina » hoe » Back-up en herstel uw SQL Server-database vanaf de opdrachtregel

    Back-up en herstel uw SQL Server-database vanaf de opdrachtregel

    Het belangrijkste onderdeel van een onderhoudsplan voor SQL Server is het regelmatig back-uppen van uw databases. Om een ​​back-up van een database te maken, kunt u niet gewoon de respectieve MDF- en LDF-bestanden van de database kopiëren, omdat SQL Server deze vergrendelt. In plaats daarvan moet u een echt back-upbestand maken via SQL Server.

    Hoewel dit kan worden gedaan door een onderhoudsplan in SQL Management Studio te ontwikkelen, bieden de gratis Express-edities van SQL Server deze interface niet. Om dit te omzeilen, kunt u gemakkelijk een back-up van uw databases maken door de onderstaande opdracht uit te voeren terwijl u bent aangemeld als een Windows-beheerder:

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

    De onderstaande voorbeelden helpen.

    Standaard SQL Server-instantie:

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

    Benoemde SQL Server-instantie:

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

    Het bovenstaande maakt een volledig herstelbare back-up van "MyDB" naar het bestand "D: BackupsMyDB.bak" dat kan worden gebruikt voor noodherstel. Natuurlijk kunt u de back-uplocatie en het bestand wijzigen naar wat u maar nodig hebt, maar zorg ervoor dat u een maplocatie opgeeft die op de lokale computer aanwezig is. Dit back-upbestand kan vervolgens worden gekopieerd naar een tapedrive of een andere externe back-uplocatie.

    Een veel voorkomende vraag is "Kan een back-upbestand worden gemaakt naar een toegewezen station of UNC-locatie?" En het snelle antwoord is nee. De reden is dat de SQL Server Windows Service wordt uitgevoerd als een gebruikersaccount die alleen toegang heeft tot de lokale computer. U kunt het account dat de service gebruikt, wijzigen, maar dit wordt om beveiligingsredenen sterk afgeraden.

    Een databaseback-up terugzetten vanaf de opdrachtregel

    Om een ​​database uit een back-upbestand te herstellen, gebruikt u gewoon de opdracht:

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

    Bijvoorbeeld:

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

    Met de opdracht hierboven wordt een back-up van "MyDB" hersteld uit de gegevens die zijn opgeslagen in het back-upbestand "D: BackupsMyDB.bak". Alle wijzigingen die in MyDB zijn aangebracht sinds het back-upbestand is gemaakt, gaan verloren.

    Een belangrijk ding om te onthouden bij het gebruik van de bovenstaande opdracht is dat het is bedoeld om te worden gebruikt op dezelfde SQL Server waarop het respectieve back-upbestand is gemaakt. SQL-back-upbestanden slaan 'achter de schermen'-informatie op die bepaalt waar en hoe de gegevensbestanden in het back-upbestand worden gekopieerd. Als u een back-up herstelt van een andere SQL Server, komen de padlocaties in het back-upbestand mogelijk niet overeen met de server waarnaar u herstelt en er treedt een fout op. Hoewel dit kan worden opgelost, is het veel eenvoudiger om back-ups te herstellen die op een andere SQL Server zijn gemaakt met behulp van de SQL Management Studio-tool.

    Opmerking: de bovenstaande opdrachten werken op SQL 2005 en hoger (elke editie). Vervang voor SQL 2000 en eerder 'SqlCmd' door 'oSql'.