Изменение целевого времени восстановления базы данных (SQL Server)
Область применения:SQL Server
В этой статье описывается, как задать или изменить целевое время восстановления базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL. По умолчанию целевое время восстановления — 60, а база данных использует косвенные контрольные точки. Значение целевого времени восстановления устанавливает верхнюю границу времени восстановления для этой базы данных.
Этот параметр действует немедленно и не требует перезапуска SQL Server.
Примечание.
Верхняя граница, указанная для данной базы данных с помощью целевого параметра времени восстановления, может быть превышена, если длительная транзакция приводит к чрезмерному UNDO
времени.
Ограничения
Рабочая нагрузка транзакций в сети в базе данных, настроенной для непрямых контрольных точек, может привести к снижению производительности. Косвенные контрольные точки убеждаются в том, что количество грязных страниц ниже определенного порога, чтобы восстановление базы данных завершилось в рамках целевого времени восстановления. Параметр конфигурации интервала восстановления использует количество транзакций для определения времени восстановления в отличие от косвенных контрольных точек, которые используют количество грязных страниц.
Если косвенные контрольные точки включены в базе данных, получающей большое количество операций, вызывающих грязные страницы, фоновый модуль записи может начать агрессивно очищать грязные буферы на диск, чтобы убедиться, что время, необходимое для выполнения восстановления, находится в пределах целевого времени восстановления, заданного в базе данных. Это может привести к дополнительной активности ввода-вывода в определенных системах, что может способствовать возникновению узких мест в производительности, если подсистема диска работает выше порогового значения ввода-вывода или около того.
Разрешения
Требуется разрешение ALTER
для базы данных.
Использование SQL Server Management Studio
В Обозреватель объектов подключитесь к экземпляру Серверной СУБД SQL Server и разверните этот экземпляр.
Разверните контейнер баз данных, а затем щелкните правой кнопкой мыши базу данных, которую нужно изменить, и выберите команду "Свойства".
В диалоговом окне Свойства базы данных выберите страницу Параметры.
На панели Восстановление в поле Целевое время восстановления (секунды) укажите количество секунд в качестве верхней границы времени восстановления этой базы данных.
Использование Transact-SQL
Подключитесь к экземпляру SQL Server, где находится база данных.
Используйте следующую инструкцию 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;