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


Изменение целевого времени восстановления базы данных (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 { СЕКУНД | MINUTES }

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

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

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

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

    ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;
    

См. также