Резервное копирование журнала транзакций

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

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

Ограничения

Инструкция BACKUP не допускается в явной или неявной транзакции. Явными транзакциями являются транзакции, для которых явно назначаются запуск и остановка.

Резервные копии журналов транзакций системной master базы данных не поддерживаются.

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

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

По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок SQL Server и в журнал системных событий. Если создание резервной копии журналов производится очень часто, сообщения об успешном завершении накапливаются очень быстро. Это приводит к увеличению журналов ошибок, затрудняя поиск других сообщений. В таких случаях эти записи журнала можно отключить с помощью флага трассировки 3226, если ни один из скриптов не зависит от этих записей, см. раздел "Флаги трассировки" (Transact-SQL).

Разрешения

Перед началом работы проверьте правильные разрешения на уровне экземпляра и на уровне хранилища.

разрешения ядро СУБД

Нужные разрешения BACKUP DATABASE и BACKUP LOG назначаются по умолчанию членам предопределенной роли сервера sysadmin и предопределенным ролям базы данных db_owner и db_backupoperator.

Разрешения устройства резервного копирования

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

Примечание.

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

Использование SQL Server Management Studio

Примечание.

Действия, описанные в этом разделе, также применяются к Azure Data Studio.

  1. После подключения к соответствующему экземпляру SQL Server ядро СУБД в обозреватель объектов выберите имя сервера, чтобы развернуть дерево сервера.

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

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

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

  5. Убедитесь в том, что используется либо модель восстановления FULL , либо BULK_LOGGED.

  6. Выберите Журнал транзакций в списке Тип резервного копирования.

  7. (необязательно) Выберите " Копировать только резервную копию" , чтобы создать резервную копию только для копирования. Резервная копия только для копирования — это резервная копия SQL Server, которая не зависит от последовательности обычных резервных копий SQL Server, см . только резервные копии, доступные только для копирования.

    Примечание.

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

  8. Оставьте имя резервного набора данных, предложенное по умолчанию в текстовом поле Имя , или введите другое имя резервного набора данных.

  9. (необязательно) В текстовом поле "Описание" введите описание резервного набора данных.

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

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

      Значение по умолчанию задается в параметре Срок хранения носителей резервных копий по умолчанию (дней) диалогового окна Свойства сервера (страницаПараметры базы данных ). Для этого щелкните правой кнопкой мыши имя сервера в обозревателе объектов и выберите его свойства, затем страницу Параметры базы данных .

    • Чтобы срок действия резервного набора истекал на определенную дату, нажмите кнопку "Вкл." и введите дату истечения срока действия набора.

  11. Выберите тип назначения резервного копирования, выбрав диск, URL-адрес или ленту. Чтобы выбрать пути до 64 дисков или ленточных дисков, содержащих один набор носителей, нажмите кнопку "Добавить". Выбранные пути отображаются в списке Создать резервную копию в .

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

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

  13. Выберите параметр "Перезаписать носитель", выбрав один из следующих вариантов:

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

      Для этого параметра выберите "Добавить к существующему резервному набору" или перезаписать все существующие резервные наборы данных, см. в разделе "Наборы носителей", "Семейства носителей" и "Резервные наборы" (SQL Server).

      • (необязательно) Выберите " Проверить имя набора носителей" и срок действия резервного набора данных, чтобы выполнить операцию резервного копирования, чтобы проверить дату и время истечения срока действия набора носителей и резервного набора данных.

      • (необязательно) Введите имя в текстовом поле "Имя набора носителей". Если имя не указано, создается набор носителей с пустым именем. Если имя набора носителей указано, то для носителя (ленточного или дискового) проверяется совпадение введенного и существующего имени.

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

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

      Для этого параметра введите имя в текстовом поле "Новый набор носителей", а также опишите набор носителей в текстовом поле описания нового набора носителей, см. раздел "Наборы носителей", "Семейства носителей" и "Резервные наборы данных" (SQL Server).

  14. В разделе Надежность можно установить следующие флажки.

  15. В разделе Журнал транзакций можно установить следующие флажки.

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

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

      Резервное копирование заключительного фрагмента журнала выполняется после сбоя, чтобы предотвратить потерю сделанной работы. Резервное копирование активного журнала (резервное копирование заключительного фрагмента журнала) следует выполнять как после сбоя, так и перед началом восстановления базы данных, а также при сбое базы данных-получателя. Выбор этого параметра равносилен применению параметра NORECOVERY в инструкции BACKUP LOG языка Transact-SQL.

      Дополнительные сведения о резервных копиях журналов tail-log см. в статье "Резервные копии журналов" (SQL Server).

  16. Если вы выполняете резервное копирование на ленточный диск (как указано в разделе "Назначение" страницы "Общие"), выгрузите ленту после активного резервного копирования. При выборе этого параметра активируется перемотка ленты перед выгрузкой .

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

    Сжатие резервных копий поддерживается в SQL Server 2008 (10.0.x) Enterprise и более поздних версиях, а также в SQL Server 2016 (13.x) с пакетом обновления 1 и более поздних версий.

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

    Чтобы зашифровать файл резервной копии, установите флажок "Шифрование резервного копирования ". Выберите алгоритм шифрования файла резервной копии и выберите сертификат или асимметричный ключ. Доступны следующие алгоритмы шифрования:

    • AES 128
    • AES 192
    • AES 256
    • Triple DES

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

Выполните инструкцию BACKUP LOG, чтобы создать резервную копию журнала транзакций, указав следующие сведения:

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

Внимание

В этом примере используется база данных AdventureWorks2022 , которая опирается на простую модель восстановления. Чтобы разрешить создание резервных копий журналов, перед созданием полной резервной копии база данных должна быть настроена на использование модели полного восстановления.

Дополнительные сведения см. в статье Просмотр или изменение модели восстановления базы данных (SQL Server).

В этом примере создается резервная копия журнала транзакций для базы данных AdventureWorks2022 на созданном ранее устройстве резервного копирования, имеющая имя MyAdvWorks_FullRM_log1.

BACKUP LOG AdventureWorks2022
   TO MyAdvWorks_FullRM_log1;
GO

С помощью PowerShell

Настройка и использование поставщика SQL Server PowerShell. Используйте командлет Backup-SqlDatabase и укажите Log в качестве значения параметра -BackupAction .

В следующем примере создается полная резервная копия журналов базы данных <myDatabase> в заданном по умолчанию расположении резервного копирования на экземпляре сервера Computer\Instance.

Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Log