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

Применимо к:SQL Server

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

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

Примечание

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

ограничения

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

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

Разрешения

Необходимо разрешение 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 { SECONDS | MINUTES }

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

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

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

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

    ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;
    

См. также раздел