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

Limit górny określony dla danej bazy danych przez docelowe ustawienie czasu odzyskiwania może zostać przekroczony, jeśli transakcja realizowana przez długi czas spowoduje 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, która generuje dużą liczbę operacji skutkujących 'brudnymi stronami', proces zapisujący w tle może rozpocząć agresywne zapisywanie buforów na dysk, aby zapewnić, że czas wymagany do przeprowadzenia odzyskiwania mieści się w ustalonym czasie odzyskiwania dla bazy danych. Może to spowodować dodatkową aktywność wejścia/wyjścia w niektórych systemach, co może prowadzić do wąskiego gardła wydajności, jeśli podsystem dyskowy pracuje powyżej lub blisko progu operacji wejścia/wyjścia.

Uprawnienia

Wymaga uprawnienia ALTER do bazy danych.

Korzystanie z programu SQL Server Management Studio

  1. W Eksploratorze obiektów połącz się z wystąpieniem silnika bazy danych 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.

    • MINUTY

      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;