Database in Recovery Pending

Ripristinare un database in modalità’ “Ripristino in sospeso”

Ora vedremo come ripristinare un database SQL Server in modalità’ “Ripristino in sospeso”. La modalità “Ripristino in sospeso” è uno dei vari stati in cui può trovarsi un database e indica che questo non può avviare il processo di ripristino in caso di arresto anomalo del sistema.

Ciò è dovuto al fatto che SQL Server non è in grado di accedere alla pagina di avvio nel file di dati primario (MDF) per determinare se è necessario un ripristino in caso di arresto anomalo del sistema ma non è stato possibile avviare il processo di ripristino (ad esempio, perché il file di registro delle transazioni è mancante o danneggiato).

Cause e soluzioni


Altre cause possono essere lo spazio di archiviazione su disco o memoria insufficiente, o il danneggiamento del file MDF. I motivi potrebbero essere problemi del sottosistema del disco, problemi della piattaforma, un guasto hardware oppure un attacco di virus e così via.


Nel caso in cui il ripristino del database non può essere avviato a causa di spazio di archiviazione su disco insufficiente bisogna innanzitutto, aumenta lo spazio su disco, dopodiché impostare il database in modalità “Online” ed eseguire il comando CheckDB.

ALTER DATABASE [DBNAME] SET ONLINE;
DBCC CHECKDB(‘DBNAME’) WITH NO_INFOMSGS;

ripristinare un database in “Ripristino in sospeso”

Il log degli errori può mostrare che il database non è stato ripristinato correttamente.

La causa porebbe essere un file di registro mancante del database che potrebbe essere eliminato, rinominato o danneggiato. In questo caso metti il database in modalità di emergenza, poi scollega il database (metti in modalità OFFLINE) dopodiché allegalo di nuovo (portalo online).


I comandi da eseguire sono i seguenti:

ALTER DATABASE [DBNAME] SET EMERGENCY;
ALTER DATABASE [DBNAME] set multi_user;
EXEC sp_detach_db ‘DBNAME’;
EXEC sp_attach_single_file_db @DBName = ‘DBNAME’, @physname = N’MDF_FILE_FULL_PATCH’;

Questa immagine ha l'attributo alt vuoto; il nome del file è EMERGENCY.jpg

In alcuni casi è possibile risolvere errori di database utilizzando le opzioni Repair, ma solo come ultima risorsa.
Microsoft consiglia sempre un ripristino utente dall’ultimo backup valido noto come metodo principale per il ripristino da errori segnalati da DBCC CHECKDB.