Поделиться через


Изменение целевого времени восстановления базы данных (SQL Server)

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

В этой статье описывается, как задать или изменить целевое время восстановления базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL. По умолчанию целевое время восстановления — 60, а база данных использует косвенные контрольные точки. Значение целевого времени восстановления устанавливает верхнюю границу времени восстановления для этой базы данных.

Этот параметр действует немедленно и не требует перезапуска SQL Server.

Примечание.

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

Ограничения

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

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

Разрешения

Требуется разрешение ALTER для базы данных.

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

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

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

  3. В диалоговом окне Свойства базы данных выберите страницу Параметры.

  4. На панели Восстановление в поле Целевое время восстановления (секунды) укажите количество секунд в качестве верхней границы времени восстановления этой базы данных.

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

  1. Подключитесь к экземпляру SQL Server, где находится база данных.

  2. Используйте следующую инструкцию ALTER DATABASE следующим образом:

    TARGET_RECOVERY_TIME = target_recovery_time { СЕКУНД | МИНУТ }

    • целевое_время_восстановления

      Начиная с SQL Server 2016 (13.x), значение по умолчанию составляет 1 минуту. Если значение больше 0 (значение по умолчанию для более старых версий), то оно указывает значение верхней границы времени восстановления для заданной базы данных в случае сбоя.

    • СЕКУНДы

      Указывает, что значение target_recovery_time выражается в количестве секунд.

    • МИНУТ

      Указывает, что значение target_recovery_time выражается в количестве минут.

    В следующем примере задаётся время восстановления базы данных AdventureWorks2022, равное 60 секундам.

    ALTER DATABASE AdventureWorks2022
    SET TARGET_RECOVERY_TIME = 60 SECONDS;