Zmienianie docelowego czasu odzyskiwania bazy danych (SQL Server)
Dotyczy:programu SQL Server
W tym artykule opisano sposób ustawiania lub zmieniania docelowego czasu odzyskiwania bazy danych w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Domyślnie docelowy czas odzyskiwania wynosi 60 sekund, a baza danych używa pośrednich punktów kontrolnych. Docelowy czas odzyskiwania ustanawia górną granicę czasu odzyskiwania dla tej bazy danych.
To ustawienie zostanie zastosowane natychmiast i nie wymaga ponownego uruchomienia programu SQL Server.
Notatka
Górna granica określona dla danej bazy danych przez docelowe ustawienie czasu odzyskiwania może zostać przekroczona, jeśli długotrwała transakcja powoduje nadmierne czasy UNDO
.
Ograniczenia
Online'owe obciążenie transakcyjne w bazie danych skonfigurowanej dla pośrednich punktów kontrolnych może doświadczyć spadku wydajności. Pośrednie punkty kontrolne zapewniają, że liczba zanieczyszczonych stron jest poniżej określonego progu, dzięki czemu odzyskiwanie bazy danych zakończy się w docelowym czasie odzyskiwania. Opcja konfiguracji interwału odzyskiwania wykorzystuje liczbę transakcji do określania czasu odzyskiwania, w przeciwieństwie do pośrednich punktów kontrolnych, które korzystają z liczby brudnych stron.
Gdy pośrednie punkty kontrolne są włączone w bazie danych otrzymującej dużą liczbę operacji powodujących "brudne strony", składnik zapisu w tle może rozpocząć agresywne zapisywanie buforów na dysk, aby upewnić się, że czas wymagany do przeprowadzenia odzyskiwania mieści się w docelowym czasie odzyskiwania ustawionym dla bazy danych. Może to przyczynić się do dodatkowej aktywności we/wy w niektórych systemach, co może prowadzić do wąskiego gardła wydajności, jeśli podsystem dysku działa powyżej lub blisko progu we/wy.
Uprawnienia
Wymaga uprawnienia ALTER
do bazy danych.
Korzystanie z programu SQL Server Management Studio
W Eksploratorze obiektówpołącz się z wystąpieniem aparatu bazy danych programu SQL Server, a następnie rozwiń to wystąpienie.
Rozwiń kontener Databases, a następnie kliknij prawym przyciskiem myszy bazę danych, którą chcesz zmienić, i wybierz polecenie Właściwości.
W oknie dialogowym Właściwości bazy danych wybierz stronę Opcje .
W panelu Recovery, w polu Target Recovery Time (Seconds), określ liczbę sekund, które mają stanowić górną granicę czasu odzyskiwania dla tej bazy danych.
Użyj Transact-SQL
Połącz się z wystąpieniem programu SQL Server, w którym znajduje się baza danych.
Użyj następującej instrukcji ALTER DATABASE w następujący sposób:
TARGET_RECOVERY_TIME = target_recovery_time { SEKUNDY | MIN }
docelowy_czas_odzyskiwania
Począwszy od programu SQL Server 2016 (13.x), wartość domyślna to 1 minuta. Jeśli wartość większa niż 0 (domyślna dla starszych wersji), określa górną granicę czasu odzyskiwania dla określonej bazy danych w przypadku awarii.
SEKUNDy
Wskazuje, że target_recovery_time jest wyrażona jako liczba sekund.
MIN
Wskazuje, że target_recovery_time jest wyrażony jako liczba minut.
W poniższym przykładzie ustawiono docelowy czas odzyskiwania bazy danych
AdventureWorks2022
na60
sekund.ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;