Udostępnij za pośrednictwem


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

  1. W Eksploratorze obiektówpołącz się z wystąpieniem aparatu bazy danych programu SQL Server, a następnie rozwiń to wystąpienie.

  2. Rozwiń kontener Databases, a następnie kliknij prawym przyciskiem myszy bazę danych, którą chcesz zmienić, i wybierz polecenie Właściwości.

  3. W oknie dialogowym Właściwości bazy danych wybierz stronę Opcje .

  4. 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

  1. Połącz się z wystąpieniem programu SQL Server, w którym znajduje się baza danych.

  2. 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 na 60 sekund.

    ALTER DATABASE AdventureWorks2022
    SET TARGET_RECOVERY_TIME = 60 SECONDS;