SQL Server предоставя лесен начин за създаване на резервно копие на база данни. Архивирането може да се направи или с Transact-SQL, PowerShell, или чрез GUI.
Тук ще демонстрирам как да създадете резервно копие с помощта на GUI SQL Operations Studio (сега наричан Azure Data Studio), след това с Transact-SQL и накрая с SQL Server Powershell.
Създайте резервно копие чрез GUI на SQLOPS/Azure Data Studio
-
Отворете таблото за управление на базата данни
В левия панел щракнете с десния бутон върху базата данни, на която искате да архивирате, и изберете Управление .
Ако използвате SSMS, в Object Explorer щракнете с десния бутон върху базата данни, на която искате да архивирате, и изберете Задачи> Архивиране... от контекстното меню. Това ще стартира База данни за архивиране диалогов прозорец.
-
Стартирайте База данни за архивиране Диалогов прозорец
Щракнете върху Резервно копие бутон.
-
Прегледайте настройките
Този диалогов прозорец ви дава възможност да промените някоя от настройките, ако е необходимо.
За нашия пример оставете настройките по подразбиране и щракнете върху Резервно копие за да създадете резервно копие.
Ако имате специфични изисквания за архивиране, можете да промените типа архивиране и/или да щракнете върху Разширена конфигурация за да коригирате разширените настройки за конфигурация.
-
Архивирането завърши
След като архивирането завърши, се показва съобщение, потвърждаващо, че архивирането е успешно.
Архивиране на база данни с помощта на Transact-SQL
Можете да извършите същото архивиране, както по-горе, като използвате T-SQL.
За да направите това, отворете нов прозорец за заявка и изпълнете BACKUP
изявление.
BACKUP
операторът приема различни опции (точно като опцията GUI), но можете също да стартирате просто архивиране с минимум код.
По-долу е даден пример за прост скрипт за архивиране на Linux или Mac система. Скриптът посочва базата данни за архивиране и местоположението за архивиране.
BACKUP DATABASE Music TO DISK = '/var/opt/mssql/data/Music.bak';
В Windows система пътят ще използва обратна наклонена черта:
BACKUP DATABASE Music TO DISK = 'C:\Backups\Music.bak';
След като изпълните този код, архивният файл ще бъде разположен на посоченото място.
Архивирайте база данни с помощта на PowerShell
SQL Server 2017 поддържа Windows PowerShell, който е скриптова обвивка, която обикновено се използва за автоматизиране на задачи за администриране и внедряване.
Езикът PowerShell поддържа по-сложна логика от Transact-SQL скриптовете, което ви дава възможност да създавате по-сложни скриптове за вашите архиви и други задачи.
Следващият код ще създаде резервно копие точно като предишните примери. Просто заменете MyServer
с името на вашия сървър.
Backup-SqlDatabase -ServerInstance MyServer -Database Music
Можете също да посочите местоположение
Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'
След като изпълните този код, архивният файл ще бъде разположен на местоположението по подразбиране.
Можете също да посочите -BackupAction Database
за да се посочи изрично, че е пълен архив. Това обаче е опцията по подразбиране.
Можете да видите пълната документация за Backup-SqlDatabase
команда на уебсайта на Microsoft.
Презаписване на архивни файлове
Ако изпълнявате няколко архива, използвайки едно и също име на файла за архивиране, може да забележите, че всеки път, когато стартирате архивиране, размерът на файла на архивния файл се увеличава.
Това е така, защото всяко следващо архивиране се добавя към съществуващия файл. Прави това, защото използвате едно и също име на файл и не сте посочили изрично, че всяко архивиране трябва да презапише всеки съществуващ файл.
Има опция, която ви позволява да презапишете съществуващия файл.
- Използване на GUI на SQLOPS , щракнете върху Разширена конфигурация и под Архивиране към съществуващия набор от медии , изберете Презаписване на всички съществуващи резервни набори .
- Използване на SSMS GUI , щракнете върху Опции за медия в лявото меню на Резервно копие на базата данни диалогов прозорец и изберете Презаписване на всички съществуващи резервни набори в Презаписване на носителя раздел.
- Използване на SQL добавете
WITH INIT
към SQL израза. - Използване на Powershell , добавете
-Initialize
към командата.
Използване на уникални имена на файлове
Въпреки това, често е добра идея да създадете пълно архивиране с уникално име на файл (обикновено включващо датата в името на файла). Уникалното име на файла означава, че всяко архивиране ще бъде отделен файл.
Освен това, в зависимост от размера на вашата база данни и колко нови данни се въвеждат в нея, може да пожелаете да допълните пълните си архиви с диференциални архиви. Диференциалното архивиране улавя само данните, които са се променили след последното пълно архивиране.