Modificare il tempo di recupero di riferimento di un database (SQL Server)
Si applica a:SQL Server
Questo argomento descrive come impostare o modificare il tempo di recupero di riferimento di un database in SQL Server usando SQL Server Management Studio o Transact-SQL. Per impostazione predefinita, il tempo di recupero di riferimento è 60 secondi e il database usa checkpoint indiretti. Il tempo di recupero di riferimento stabilisce un limite superiore per il tempo di recupero per questo database.
Questa impostazione diventa effettiva immediatamente e non richiede un riavvio di SQL Server.
Nota
È possibile superare il limite superiore specificato per un determinato database in base all'impostazione del tempo di recupero di destinazione, se una transazione con esecuzione prolungata causa tempi di UNDO
eccessivi.
Limitazioni
Un carico di lavoro transazionale online su un database configurato per i checkpoint indiretti potrebbe subire una riduzione del livello delle prestazioni. I checkpoint indiretti assicurano che il numero di pagine sporche sia inferiore a una determinata soglia in modo che il ripristino del database venga completato entro il tempo di ripristino desiderato. A differenza dei checkpoint indiretti, che usano il numero di pagine dirty, l'opzione di configurazione Intervallo di recupero usa il numero di transazioni per determinare il tempo di recupero.
Quando i checkpoint indiretti sono abilitati in un database che riceve un numero elevato di operazioni che causano pagine sporche, il writer in background può iniziare a scaricare in modo aggressivo i buffer sporchi su disco, per garantire che il tempo necessario per il ripristino rientri nel tempo di recupero obiettivo impostato nel database. Ciò può causare attività di I/O aggiuntive in determinati sistemi, che possono contribuire a un collo di bottiglia delle prestazioni se il sottosistema del disco funziona oltre o vicino alla soglia di I/O.
Autorizzazioni
È necessaria l'autorizzazione ALTER
sul database.
Usare SQL Server Management Studio
In Esplora oggetti connettersi a un'istanza del motore di database di SQL Server ed espanderla.
Espandere il contenitore Database, quindi fare clic con il pulsante destro del mouse sul database da modificare e scegliere il comando Proprietà.
Nella finestra di dialogo Proprietà database selezionare la pagina Opzioni.
Nel campo Tempo di recupero di riferimento (secondi) del pannello Recupero specificare un numero di secondi come limite superiore del tempo di recupero per il database.
Usare Transact-SQL
Connettersi all'istanza di SQL Server in cui risiede il database.
Usare la seguente istruzione ALTER DATABASE, come indicato di seguito:
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
tempo_di_recupero_target
A partire da SQL Server 2016 (13.x), il valore predefinito è 1 minuto. Se maggiore di 0 (impostazione predefinita per le versioni meno recenti), specifica il limite superiore per il tempo di recupero per il database specificato in caso di arresto anomalo.
SECONDS
Indica che target_recovery_time viene espresso come numero di secondi.
MINUTI
Indica che target_recovery_time viene espresso come numero di minuti.
Nell'esempio seguente viene impostato il tempo di recupero di riferimento del database
AdventureWorks2022
su60
.ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;