Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этой статье описывается, как создать полноценную резервную копию базы данных в SQL Server с помощью SQL Server Management Studio (SSMS), Transact-SQL или PowerShell.
Дополнительные сведения см. в статье о резервном копировании и восстановлении SQL Server с помощью хранилища BLOB-объектов Azure ирезервного копирования SQL Server по URL-адресу для хранилища BLOB-объектов Azure. Для обзора концепций и задач резервного копирования см. обзор резервного копирования (SQL Server).
Рекомендации
По мере роста базы данных полные резервные копии занимают больше времени и требуют большего объема памяти. Для больших баз данных дополняйте полные резервные копии серией дифференциальных резервных копий баз данных.
Оцените размер полной резервной копии базы данных с помощью системной хранимой процедуры sp_spaceused.
По умолчанию каждая успешная резервная копия добавляет запись в журнал ошибок SQL Server и журнал событий системы. Частые резервные копии могут заполнить эти логи и затруднить поиск других сообщений.
Чтобы подавить записи в резервных копиях, используйте флаг trace 3226, если ваши скрипты не зависят от них.
Ограничения
Нельзя использовать инструкцию BACKUP в рамках явной или неявной транзакции.
Вы не можете восстановить резервные копии с новых версий SQL Server на более ранних версиях. Например, вы не можете восстановить резервную копию SQL Server 2025 (17.x) на SQL Server 2022 (16.x).
Безопасность
TRUSTWORTHY имеет значение OFF в резервной копии базы данных. Чтобы установить для TRUSTWORTHY значение ON, см. параметры ALTER DATABASE SET.
Начиная с SQL Server 2012 (11.x), параметры PASSWORD и MEDIAPASSWORD недоступны для создания резервных копий. Все еще вы можете восстанавливать резервные копии, созданные с паролями.
Разрешения
BACKUP DATABASE а BACKUP LOG права по умолчанию принадлежат членам роли системного администратора фиксированного сервера, а также ролей db_owner и db_backupoperator фиксированных баз данных.
Учетная запись SQL Server должна иметь права на чтение и запись физического файла резервного устройства. Проблемы с владением или правами на этот файл мешают операциям резервного копирования и восстановления и появляются только при выполнении резервного копирования или восстановления.
Например, процедура хранения sp_addumpdevice системы, которая добавляет запись резервного устройства в системные таблицы, не проверяет доступ к файлу.
Используйте SQL Server Management Studio
В обозреватель объектов подключитесь к ядро СУБД, а затем расширите серверное дерево.
Разверните Базы данных, а затем выберите пользовательскую базу данных. Или разверните Системные базы данных и выберите системную базу данных.
Щелкните правой кнопкой мыши базу данных, резервную копию которой вы хотите создать, наведите указатель на «Задачи», а затем выберите «Резервное копирование...».
В диалоговом окне «Резервное копирование базы данных » выбранная вами база данных появляется в выпадающем списке. Вы можете изменить базу данных на любую другую базу данных на сервере.
В списке типов резервного копирования выберите тип резервного копирования . По умолчанию используется значение Full.
Внимание
Прежде чем выполнять разностную или резервную копию журнала транзакций, необходимо выполнить по крайней мере одну полную резервную копию базы данных.
В разделе Компонент резервного копирования выберите База данных.
В разделе Назначение проверьте расположение по умолчанию для файла резервной копии (в папке ../mssql/data).
Используйте список резервных копий , чтобы выбрать другое устройство. Выберите «Добавить », чтобы добавить резервные объекты или назначения. Вы можете распределить набор резервных копий по нескольким файлам, чтобы увеличить скорость резервного копирования.
Чтобы удалить целевой объект резервного копирования, выберите его и щелкните Удалить. Чтобы просмотреть содержимое существующего резервного назначения, выберите его и выберите Содержимое.
При желании ознакомьтесь с другими настройками на страницах Параметры носителя и Параметры резервного копирования.
Для получения дополнительной информации о вариантах резервного копирования см. База резервных копий (общая страница),База резервных копий (страница опций медиа) и Резервная база данных (страница опций резервного копирования).
Чтобы начать резервное копирование, нажмите кнопку OK.
Когда резервное копирование успешно завершено, выберите OK , чтобы закрыть диалог.
Замечания
Когда вы указываете задачу резервного копирования в SQL Server Management Studio, вы можете сгенерировать соответствующий скрипт Transact-SQLBACKUP, выбрав кнопку Script и затем выбрав назначение скрипта.
После создания полной резервной копии базы данных можно создать дифференциальную резервную копию базы данных или транзакционный журнал.
По желанию, выберите галочку «Только копирование », чтобы создать резервную копию только для копирования. Резервная копия только для копирования — это резервная копия SQL Server, которая не зависит от последовательности обычных резервных копий SQL Server. Дополнительные сведения см. в статье о резервных копиях только для копирования. Резервные копии с параметром «только копирование» недоступны для типа резервного копирования Дифференциальное.
Параметр «Перезапись носителя» недоступен на странице «Параметры носителя» при резервном копировании по URL.
Примеры
Для следующих примеров создайте тестовую базу данных, используя следующий Transact-SQL код:
USE master;
GO
CREATE DATABASE [SQLTestDB];
GO
USE [SQLTestDB];
GO
CREATE TABLE SQLTest
(
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR (100) NOT NULL,
dt1 DATETIME DEFAULT getdate() NOT NULL
);
GO
USE [SQLTestDB];
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1');
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2');
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3');
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4');
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5');
GO
SELECT *
FROM SQLTest;
GO
А. Полное резервное копирование на диск в расположение по умолчанию
В этом примере выполняется резервное копирование базы данных SQLTestDB на диск в расположение по умолчанию для резервных копий.
В обозреватель объектов подключитесь к ядро СУБД, а затем расширите серверное дерево.
Разверните элемент Базы данных, щелкните
SQLTestDBправой кнопкой мыши, наведите указатель на пункт Задачи и выберите действие Создать резервную копию....Нажмите ОК.
Когда резервное копирование успешно завершено, выберите OK , чтобы закрыть диалог.
В. Полное резервное копирование на диск в нестандартное местоположение
В этом примере база данных SQLTestDB копируется в резервную копию на диск в выбранное вами место.
В обозреватель объектов подключитесь к ядро СУБД, а затем расширите серверное дерево.
Разверните элемент Базы данных, щелкните
SQLTestDBправой кнопкой мыши, наведите указатель на пункт Задачи и выберите действие Создать резервную копию....На странице «Общие» в разделе «Назначение» выберите «Диск» в списке «Создавать резервную копию в».
Выберите "Удалить", пока не будут удалены все существующие файлы резервной копии.
Нажмите кнопку "Добавить". Открывается диалоговое окно Select Backup Destination .
Введите допустимый путь и имя файла в поле "Имя файла ". Используйте .bak как расширение для упрощения классификации файлов.
Выберите OK, затем снова OK , чтобы начать резервное копирование.
Когда резервное копирование успешно завершено, выберите OK , чтобы закрыть диалог.
В. Создание зашифрованной резервной копии
В этом примере выполняется резервное копирование базы данных SQLTestDB с шифрованием в расположение резервного копирования по умолчанию.
В обозреватель объектов подключитесь к ядро СУБД, а затем расширите серверное дерево.
Разверните базы данных, разверните системные базы данных, щелкните правой кнопкой мыши
masterи выберите команду "Создать запрос ", чтобы открыть окно запроса с подключением кSQLTestDBбазе данных.Выполните следующие команды для создания мастер-ключа базы данных и сертификата в
masterбазе данных.-- Create the master key. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; -- If the master key already exists, open it in the same session that you create the certificate. (See next step.) OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>'; -- Create the certificate encrypted by the master key. CREATE CERTIFICATE MyCertificate WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';В обозревателе объектов в узле Базы данных щелкните правой кнопкой мыши базу данных
SQLTestDB, наведите указатель на пункт Задачи и выберите действие Создать резервную копию....На странице "Параметры носителя " в разделе "Перезапись мультимедиа " выберите "Резервное копирование" в новый набор носителей и удалите все существующие резервные копии.
На странице "Параметры резервного копирования" в разделе "Шифрование " выберите "Шифрование резервного копирования".
В списке алгоритмов выберите AES 256.
В списке ключей сертификата или асимметричного ключа выберите
MyCertificate.Нажмите ОК.
Д. Резервное копирование в хранилище объектов BLOB Azure
В этом примере создается полная резервная копия SQLTestDB базы данных в хранилище BLOB-объектов Azure. Пример предполагает, что у вас уже есть аккаунт хранения с blob-контейнером. Пример создаёт сигнатуру общего доступа и не работает, если контейнер уже имеет подпись общего доступа.
Если у вас нет контейнера Хранилище BLOB-объектов в аккаунте, создайте его перед продолжением. Дополнительные сведения см. в статье Создание учетной записи хранения и разделе Создание контейнера.
В обозреватель объектов подключитесь к ядро СУБД, а затем расширите серверное дерево.
Разверните элемент Базы данных, щелкните
SQLTestDBправой кнопкой мыши, наведите указатель на пункт Задачи и выберите действие Создать резервную копию....На странице «Общие» в разделе «Место назначения» выберите значение URL в списке «Создавать резервную копию в».
Нажмите кнопку "Добавить". Открывается диалоговое окно Select Backup Destination .
Если вы ранее зарегистрировали контейнер хранения Azure, который хотите использовать с SSMS, выберите его. В противном случае щелкните Создать контейнер, чтобы зарегистрировать новый контейнер.
В диалоговом окне «Подключиться к подписке Microsoft» войдите в свой аккаунт.
В поле Выбор учетной записи хранения выберите свою учетную запись хранения.
В поле Выбор контейнера больших двоичных объектов выберите контейнер больших двоичных объектов.
В поле календаря Shared Access Policy Expiring выберите дату истечения политики общего доступа, созданную в этом примере.
Выберите «Создать учетные данные» для создания подписи и учетных данных с общим доступом в SSMS.
Выберите OK, чтобы закрыть диалоговое окно «Подключиться к подписке Microsoft».
В поле "Файл резервного копирования" измените имя файла резервной копии, если вы хотите.
Выберите OK , чтобы закрыть диалоговое окно Select a Backup destination .
Чтобы начать резервное копирование, нажмите кнопку OK.
Когда резервное копирование успешно завершено, выберите OK , чтобы закрыть диалог.
Примечание.
Резервное копирование в хранилище BLOB с использованием управляемых удостоверений в настоящее время не поддерживается.
Использование Transact-SQL
Создайте полную резервную копию базы данных, выполнив оператор BACKUP DATABASE. Укажите:
- имя базы данных для создания резервной копии;
- устройство резервного копирования, на которое записывается полная резервная копия базы данных.
Базовый синтаксис Transact-SQL для полной резервной копии базы данных:
BACKUP DATABASE <database>
TO <backup_device> [ , ...n ]
[ WITH <with_options> [ , ...o ] ];
| Вариант | Описание |
|---|---|
<database> |
База данных для резервного копирования. |
<backup_device> [ , ...n ] |
Указывает от 1 до 64 резервных устройств для резервного копирования. Укажите физическое устройство резервного копирования или соответствующее логическое резервное устройство, если оно уже определено. Чтобы указать физическое резервное устройство, используйте DISKопцию , TAPE, или URL :{ DISK | URL | TAPE} = physical_backup_device_nameИспользуйте URL для резервного копирования в Хранилище BLOB-объектов Azure или объектное хранилище, совместимое с S3. Дополнительные сведения см. в разделе Устройства резервного копирования (SQL Server). |
WITH <with_options> [ , ...n ] |
Используется для указания одного или нескольких вариантов, n. Некоторые из основных WITH вариантов описаны в следующем списке. |
При необходимости укажите один или несколько WITH параметров. Здесь описаны несколько основных WITH вариантов. Для информации обо всех WITH вариантах см. BACKUP.
Базовые параметры резервного набора WITH данных:
{ СЖАТИЕ | БЕЗ СЖАТИЯ }. SQL Server указывает, выполняется ли сжатие резервного копирования на резервной копии, отменяя серверное значение по умолчанию.
ШИФРОВАНИЕ (АЛГОРИТМ, СЕРВЕР CERTIFICATE | ASYMMETRIC KEY). В SQL Server 2014 и более поздних версиях указывается алгоритм шифрования и сертификат или асимметричный ключ для защиты шифрования.
DESCRIPTION = { "text" | @text_variable }. Указывает текст свободной формы, описывающий резервный набор данных. В этой строке может содержаться до 255 символов.
ИМЯ = { backup_set_name | @backup_set_name_var }. Указывает имя резервного набора данных. Длина имени не может превышать 128 символов. Если
NAMEне указан, он пуст.
По умолчанию команда BACKUP добавляет резервную копию в существующий набор носителей, сохраняя существующие резервные наборы данных. Чтобы явно указать эту конфигурацию, используйте параметр NOINIT. Сведения о добавлении в существующие наборы резервных копий см. в разделе Наборы носителей, семейства носителей и наборы резервных копий (SQL Server).
Чтобы отформатировать носитель резервного копирования, используйте параметр FORMAT:
ФОРМАТ [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
Используйте это FORMAT предложение, когда впервые используете медиа или когда хотите перезаписать все существующие данные. При желании назначьте новому мультимедийному объекту имя и описание.
Внимание
Будьте осторожны при использовании предложения FORMAT инструкции BACKUP, так как этот параметр уничтожает все резервные копии, ранее сохранённые на носителе резервного копирования.
Примеры
Для следующих примеров создайте тестовую базу данных, используя следующий Transact-SQL код:
USE master;
GO
CREATE DATABASE [SQLTestDB];
GO
USE [SQLTestDB];
GO
CREATE TABLE SQLTest
(
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR (100) NOT NULL,
dt1 DATETIME DEFAULT GETDATE() NOT NULL
);
GO
USE [SQLTestDB];
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1');
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2');
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3');
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4');
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5');
GO
SELECT *
FROM SQLTest;
GO
А. Резервное копирование на дисковое устройство
В следующем примере выполняется резервное копирование полной SQLTestDB базы данных на диск. Он использует FORMAT для создания нового набора мультимедиа.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO DISK = 'c:\tmp\SQLTestDB.bak'
WITH FORMAT,
MEDIANAME = 'SQLServerBackups',
NAME = 'Full Backup of SQLTestDB';
GO
В. Резервное копирование на ленточное устройство
В следующем примере выполняется резервное копирование полной SQLTestDB базы данных на ленту. Он добавляет резервную копию к предыдущим резервным копиям.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of SQLTestDB';
GO
В. Резервное копирование на логическое ленточное устройство
В следующем примере создается логическое устройство резервного копирования для ленточного накопителя. Затем в этом примере выполняется резервное копирование полной SQLTestDB базы данных на это устройство.
-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXECUTE sp_addumpdevice 'tape', 'SQLTestDB_Bak_Tape', '\\.\tape0';
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO SQLTestDB_Bak_Tape
WITH FORMAT,
MEDIANAME = 'SQLTestDB_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of SQLTestDB';
GO
PowerShell
Используйте командлет Backup-SqlDatabase. Чтобы явно указать полную резервную копию базы данных, укажите -BackupAction параметр со значением Databaseпо умолчанию. Данный параметр является необязательным для полных резервных копий баз данных.
Если вы откроете окно PowerShell внутри SSMS для подключения к SQL Server Database Engine, вы можете пропустить часть с учетными данными, так как ваш учетный код в SSMS автоматически устанавливает соединение между PowerShell и ядро СУБД.
Примечание.
В этом примере требуется модуль SqlServer . Дополнительные сведения см. в статье SQL Server PowerShell Provider.
Примеры
А. Полная резервная копия (локальная)
В следующем примере создается полная резервная копия базы данных <myDatabase> в заданном по умолчанию расположении резервного копирования на экземпляре сервера Computer\Instance. При необходимости в этом примере указывается -BackupAction Database.
Полные примеры синтаксиса см. в статье Backup-SqlDatabase.
$credential = Get-Credential
Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential
В. Полная резервная копия в Azure
В следующем примере создается полная резервная копия базы данных <myDatabase> экземпляра <myServer> в хранилище BLOB. Создаётся политика сохранённого доступа с правами чтения, записи и списка. Учетная запись SQL Server, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, создаётся с помощью сигнатуры общего доступа, связанной с политикой сохранённого доступа. Команда использует $backupFile параметр для указания расположения (URL-адреса) и имени файла резервной копии.
$credential = Get-Credential
$container = 'https://<myStorageAccount>blob.core.windows.net/<myContainer>'
$fileName = '<myDatabase>.bak'
$server = '<myServer>'
$database = '<myDatabase>'
$backupFile = $container + '/' + $fileName
Backup-SqlDatabase -ServerInstance $server -Database $database -BackupFile $backupFile -Credential $credential
Связанные задачи
- Создание разностной резервной копии базы данных (SQL Server)
- Восстановление резервной копии базы данных с помощью SSMS
- Восстановить резервную копию базы данных по простой модели восстановления
- Восстановление базы данных до точки сбоя — полное восстановление
- Восстановление базы данных в новом расположении (SQL Server)
- Использование мастера планов обслуживания
Связанный контент
- Устранение неполадок операций резервного копирования и восстановления SQL Server
- Обзор резервного копирования (SQL Server)
- Резервные копии журналов транзакций (SQL Server)
- Наборы носителей, семейства носителей и резервные наборы данных (SQL Server)
- sys.sp_addumpdevice (Transact-SQL)
- BACKUP (Transact-SQL)
- Архивация базы данных (страница "Общие")
- Архивация базы данных (страница "Параметры резервного копирования")
- Разностные резервные копии (SQL Server)
- Полные резервные копии базы данных (SQL Server)