SQL Server предоставя лесен начин за създаване на резервно копие на база данни. Архивирането може да се направи или с Transact-SQL, PowerShell, или чрез GUI на SQL Server Management Studio.
Тук ще демонстрирам как да създадете резервно копие с помощта на GUI на SQL Server Management System, след това с Transact-SQL и накрая с SQL Server Powershell.
Създайте резервно копие чрез GUI
-
Стартирайте База данни за архивиране Диалогов прозорец
В Object Explorer щракнете с десния бутон върху базата данни, на която искате да архивирате, и изберете Задачи> Архивиране... от контекстното меню.
-
Прегледайте настройките за архивиране
Този диалогов прозорец ви дава възможност да промените някоя от настройките, ако е необходимо.
За нашия пример оставете настройките по подразбиране и щракнете върху OK за да създадете резервно копие.
Можете да промените базата данни тук, ако случайно сте избрали грешната в предишната стъпка.
-
Архивирането завърши
Ще получите съобщение, когато архивирането приключи.
Щракнете върху OK за да затворите съобщението и диалоговия прозорец.
Архивният файл вече ще се намира на посоченото място.
Архивиране на база данни с помощта на Transact-SQL
-
Можете да извършите същото архивиране, както по-горе, като използвате SQL.
За да направите това, отворете нов прозорец за заявка и изпълнете
BACKUP
изявление.BACKUP
операторът приема различни опции (точно като опцията GUI), но можете също да стартирате просто архивиране с минимум код.Примерен код
По-долу е даден пример за прост скрипт за архивиране, който определя базата данни за архивиране и местоположението за архивиране.
След като изпълните този код, архивният файл ще бъде разположен на посоченото място.
BACKUP DATABASE Music TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\Music.bak';
Можете да видите пълния синтаксис за
BACKUP
изявление на уебсайта на Microsoft.
Архивирайте база данни с помощта на PowerShell
SQL Server 2016 поддържа Windows PowerShell, който е скриптова обвивка, която обикновено се използва за автоматизиране на задачи за администриране и внедряване.
Езикът PowerShell поддържа по-сложна логика от скриптовете на Transact-SQL, което ви дава възможност да създавате по-сложни скриптове за вашите архиви и други задачи.
-
Отворете PowerShell
Щракнете с десния бутон върху базата данни и изберете Стартиране на Powershell .
-
Изпълнете командата за архивиране
Въведете командата за създаване на архива и натиснете Enter (или Връщане , в зависимост от клавиатурата ви).
Архивирането ще стартира незабавно.
Примерен код
Следващият код ще създаде резервно копие точно като предишните примери. Просто заменете
MyServer
с името на вашия сървър.След като изпълните този код, архивният файл ще бъде разположен на местоположението по подразбиране.
Backup-SqlDatabase -ServerInstance MyServer -Database Music
Можете също да посочите местоположение
Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\Music.bak'
Можете също да посочите
-BackupAction Database
за да се посочи изрично, че е пълен архив. Това обаче е опцията по подразбиране.Можете да видите пълната документация за
Backup-SqlDatabase
команда на уебсайта на Microsoft.
Презаписване на архивни файлове
Ако сте изпълнили всички горепосочени примери точно както са, може да сте забелязали, че всеки път, когато го стартирате, размерът на файла на архивния файл се увеличава.
Това е така, защото всяко следващо архивиране се добавя към съществуващия файл.
Прави това, защото използваме едно и също име на файл и не сме посочили изрично, че всяко архивиране трябва да презапише всеки съществуващ файл.
Има опция, която ви позволява да презапишете съществуващия файл.
- Използване на GUI , щракнете върху Опции за медия в лявото меню на Резервно копие на базата данни диалогов прозорец и изберете Презаписване на всички съществуващи резервни набори в Презаписване на носителя раздел.
- Използване на SQL добавете
WITH INIT
към SQL израза. - Използване на Powershell , добавете
-Initialize
към командата.
Запазване на архивни файлове
Въпреки това често е добра идея да създадете пълен архив с уникално име на файл (обикновено включващ датата в името на файла). Уникалното име на файла означава, че всяко архивиране ще бъде отделен файл.
Освен това, в зависимост от размера на вашата база данни и колко нови данни се въвеждат в нея, може да пожелаете да допълните пълните си архиви с диференциални архиви. Диференциалното архивиране улавя само данните, които са се променили след последното пълно архивиране.