Создать дифференциальную резервную копию базы данных (SQL Server)

Область применения:SQL Server

В этой статье описывается, как создать дифференциальную резервную копию базы данных в SQL Server с использованием SQL Server Management Studio, Transact-SQL или PowerShell.

Для обзора концепций и задач резервного копирования см. обзор резервного копирования (SQL Server).

Предварительные условия

Дифференциальная резервная копия базы данных требует предварительной полной резервной копии. Если в базе данных его нет, сначала сделайте полную резервную копию. Дополнительные сведения см. в статье Создание полной резервной копии базы данных.

Рекомендации

Поскольку размер дифференциальных резервных копий со временем увеличивается, восстановление дифференциального резервного копирования может значительно увеличить время восстановления базы данных. Создавайте новую полную резервную копию через заданные интервалы, чтобы установить новую базу для дифференциального резервного копирования.

Например, вы можете еженедельно делать полную резервную копию базы данных, а затем ежедневные дифференциальные резервные копии в течение недели.

Limitations

Нельзя использовать инструкцию BACKUP в рамках явной или неявной транзакции.

Разрешения

BACKUP DATABASE а BACKUP LOG права по умолчанию принадлежат членам роли системного администратора фиксированного сервера, а также ролей db_owner и db_backupoperator фиксированных баз данных.

Учетная запись SQL Server должна иметь права на чтение и запись физического файла резервного устройства. Проблемы с владением или правами на этот файл мешают операциям резервного копирования и восстановления и появляются только при выполнении резервного копирования или восстановления.

Например, процедура хранения sp_addumpdevice системы, которая добавляет запись резервного устройства в системные таблицы, не проверяет доступ к файлу.

Используйте SQL Server Management Studio

  1. В обозреватель объектов подключитесь к ядро СУБД, а затем расширите серверное дерево.

  2. Разверните Базы данных, а затем выберите пользовательскую базу данных. Или разверните Системные базы данных и выберите системную базу данных.

  3. Щелкните правой кнопкой мыши базу данных, наведите указатель на задачи и выберите " Создать резервную копию". Откроется диалоговое окно Резервное копирование базы данных .

  4. В выпадающем списке базы данных проверьте имя базы данных. По возможности выбрать другую базу данных.

    Вы можете выполнить дифференциальное резервное копирование с любой моделью восстановления (полной, массовой или простой).

  5. В раскрывающемся списке «Тип резервного копирования» выберите «Дифференциальное».

    Внимание

    При выборе Дифференциальная копия убедитесь, что флажок «Резервная копия только для копирования» снят. Невозможно создать дифференциальную резервную копию на основе полной резервной копии, созданной с параметром COPY_ONLY. Дополнительные сведения см. в статье о резервных копиях только для копирования.

  6. Для компонента резервного копирования выберите База данных.

  7. В текстовом поле «Имя » примите имя резервного набора по умолчанию или введите новое.

  8. По желанию введите описание в текстовое поле описания .

  9. Укажите, когда срок действия резервного набора истекает:

    • Чтобы закончить срок действия резервного копирования после определённого количества дней , выберите After (по умолчанию) и введите количество дней. Значения варьируются от 0 до 99999. Значение 0 означает, что набор резервных копий никогда не истекает.

      Значение по умолчанию задаётся в опции «Сохранение резервных носителей по умолчанию (в днях) на странице «Настройки базы данных » в диалоговом окне «Свойства сервера ». Чтобы открыть его, кликните правой кнопкой мыши по имени сервера в обозреватель объектов, выберите «Свойства», а затем страницу «Настройки базы данных».

    • Чтобы завершить срок действия резервного копирования, установленный на конкретную дату, выберите «Включено» и введите дату.

  10. Для назначения резервного копирования выберите Disk или URL. Чтобы добавить до 64 дисков для одного носителя, выберите «Добавить». Выбранные пути отображаются в выпадающем списке «Резервная копия».

    Чтобы удалить целевой объект резервного копирования, выберите его и щелкните Удалить. Чтобы просмотреть содержимое назначения резервной копии, выберите его и выберите "Содержимое".

    Примечание.

    Для получения дополнительной информации о резервном копировании по URL см. Резервное копирование SQL Server по URL в хранилище BLOB-объектов Azure.

  11. Чтобы просмотреть или выбрать дополнительные параметры, выберите "Параметры " в области "Выбор страницы ".

  12. Для Overwrite Media выберите один из следующих вариантов:

    • Создать резервную копию в существующем наборе носителей

      Выберите либо Приложить к существующему набору резервных копий , либо Перезаписать все существующие наборы резервных копий. При необходимости установите флажок «Проверить имя медиасета и срок действия набора резервных копий» и введите имя в текстовое поле «Имя медиасета».

      Если вы не указываете имя, SQL Server создаёт медиасет с пустым именем. Если вы указываете имя, SQL Server проверяет носитель, чтобы убедиться, что имя совпадает с ним.

      Если оставить имя медиа пустым и выбрать галочку, проверка срабатывает только если имя на носителе тоже пусто.

    • Создать резервную копию в новом наборе носителей и удалить все существующие резервные наборы данных

      Введите название в текстовое поле Имя нового набора носителей. Опционально опиши медиа-набор в текстовом поле описания нового медиасета .

  13. В разделе «Надёжность » по желанию выберите так:

  14. SQL Server поддерживает сжатие резервных копий. По умолчанию SQL Server сжимает резервные копии в зависимости от backup-compression default настройки сервера. Независимо от настройки сервера по умолчанию, выберите «Сжать резервную копию » для сжатия резервной копии или « Не сжимать резервную копию », чтобы предотвратить сжатие.

    Сведения о текущем сжатии резервных копий по умолчанию см. в разделе "Конфигурация сервера: сжатие резервных копий" по умолчанию. Для получения дополнительной информации о сжатии резервных копий см. раздел «Сжатие резервных копий (SQL Server).

Замечания

  • Вы можете использовать мастер планирования обслуживания для создания дифференциальных резервных копий базы данных.

  • Опции раздела журнала транзакций неактивны, если вы не делаете резервную копию журнала транзакций. Укажите эту опцию в разделе «Тип резервного копирования » на странице «Общий ».

Использование Transact-SQL

Выполните инструкцию BACKUP DATABASE для создания дифференциальной резервной копии базы данных. Укажите:

  • имя базы данных для создания резервной копии;

  • устройство резервного копирования, на которое записывается полная резервная копия базы данных.

  • Оговорка DIFFERENTIAL о резервном копировании только тех частей базы данных, которые изменились после последней полной резервной копии.

Используйте следующий синтаксис.

BACKUP DATABASE database_nameTO< backup_device>WITH DIFFERENTIAL

Пример (Transact-SQL)

Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

-- Create a full database backup first.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH INIT;
GO

-- Time elapses.
-- Create a differential database backup, appending the backup
-- to the backup device containing the full database backup.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH DIFFERENTIAL;
GO

Замечания

Для информации о резервном копировании на ленту см. BACKUP варианты ленты и пример «Резервное копирование на ленточное устройство » в разделе «Создать полную резервную копию базы данных».

Примечание.

Параметр TAPE будет удален в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Воспользуйтесь PowerShell

Используйте командлет Backup-SqlDatabase. Чтобы задать дифференциальную резервную копию базы данных, используйте -Incremental параметр вместе с -BackupAction Database.

Примечание.

В этом примере требуется модуль SqlServer . Дополнительные сведения см. в статье SQL Server PowerShell Provider.

Пример (PowerShell)

Следующий пример создаёт дифференциальную резервную копию AdventureWorks2025 базы данных базы данных в стандартное место резервного копирования экземпляра Computer\Instanceсервера . Полноценная резервная копия базы данных уже должна существовать.

Полные примеры синтаксиса см. в статье Backup-SqlDatabase.

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database AdventureWorks2025 -BackupAction Database -Incremental -Credential $credential