Sommario
    Riparazione database SQL

    Come risolvere l’errore “Il database non può essere recuperato perché il registro non è stato ripristinato”?


    Sommario

      Riassunto: Il database di SQL Server è bloccato nello stato di RIPRISTINO e restituisce l'errore "Il database non può essere ripristinato perché il registro non è stato ripristinato". In questo post, scoprirete le possibili ragioni di questo errore di SQL Server e le soluzioni per risolverlo. Inoltre, scoprirete altri problemi che potrebbero verificarsi durante il processo di ripristino. Scoprirete anche uno strumento di recupero SQL avanzato che può aiutarvi a ripristinare il database senza alcuna perdita di dati.

      A volte, quando si tenta di ripristinare un database di SQL Server, si verifica una situazione in cui il database si blocca nello stato di Ripristino e visualizza il seguente messaggio di errore:

      Msg 4333, Livello 16, Stato 1, Riga 1

      Il database non può essere recuperato perché il registro non è stato ripristinato.

      Msg 3013, livello 16, stato 1, riga 1

      RESTORE DATABASE termina in modo anomalo.

      Cosa causa l’errore?

      Non ci sono ragioni note che causano questo errore in particolare. Tuttavia, l’errore può essere dovuto a uno dei seguenti motivi:

      • L’istanza di SQL Server è stata scollegata durante il ripristino dei backup dei registri delle transazioni.
      • Il processo di ripristino è stato annullato.
      • Il server ha esaurito lo spazio su disco durante il ripristino del database.

      Come risolvere l’errore?

      Nota: prima di procedere, assicurarsi che il server disponga di spazio su disco sufficiente e quindi provare a ripristinare il database. Se non ci sono problemi di spazio su disco, seguire la soluzione descritta di seguito.

      Per risolvere il problema, provare ad abbandonare il database problematico e a ripristinarlo nuovamente. A tale scopo, eseguite quanto segue nella finestra delle query di SQL Server Management Studio (SSMS):

      Nota: se non è possibile eseguire il DROP del database, provare a staccarlo utilizzando la procedura memorizzata sp_detach_db. Se la stored procedure restituisce l’errore “database in use “, è possibile utilizzare il comando dbcc detachdb per staccare il database. Tuttavia, bisogna fare attenzione perché si tratta di un comando non documentato.

      UTILIZZARE [master]

      VAI

      – Creare nuovamente il db con lo stesso nome di quello originale

      CREARE DATABASE [nome_database];

      – ripristinare il database utilizzando i soliti script di backup

      RIPRISTINO DELLA DATABASE nome_database

      FROM DISK = ‘inserire percorso del file .bak’

      CON RECUPERO

      Nota: se è necessario ripristinare più file di database, eseguire il comando RESTORE CON opzione NORECOVERY. Per l’ultimo file di database, eseguire il comando RESTORE CON RECUPERO.

      Cosa fare se il database diventa inaccessibile?

      Se è possibile ripristinare il database ma non è più accessibile ed è contrassegnato come SOSPETTO, è necessario riparare il database. Tenete presente che non è possibile riparare un database SOSPETTO. Per prima cosa è necessario rendere accessibile il database mettendolo in modalità EMERGENZA. A tale scopo, eseguire il comando seguente:

      ALTER DATABASE nome_database SET EMERGENZA

      Una volta che il database diventa accessibile, è fondamentale avere accesso esclusivo al database. Quindi, impostate lo stato del database in modalità SINGLE_USER ed eseguite DBCC CHECKDB con l’opzione ‘REPAIR_ALLOW_DATA_LOSS’.

      ALTER DATABASE nome_database SET SINGLE_USER CON ROLLBACK IMMEDIATO

      DBCC CHECKDB (‘nome_database’,REPAIR_ALLOW_DATA_LOSS)

      Successivamente, riportare il database in modalità MULTI_USER eseguendo il seguente comando:

      ALTER DATABASE nome_database SET MULTI_USER

      Leggete in dettaglio: Come recuperare il database MS SQL dalla modalità sospetta?

      Aggiornare il database e verificare se è possibile accedervi.

      Se il database è ancora inaccessibile ed è necessario evitare qualsiasi perdita di dati, utilizzare uno SQL recovery tool che possa aiutare a ripristinare il database mantenendo i dati intatti. È possibile utilizzare Stellar Repair for MS SQL per riparare il file di database (MDF) e ripristinarlo allo stato originale. Inoltre, il software aiuta a ripristinare il database con una velocità 8X, consentendo di salvare più tabelle contemporaneamente (fino a 8).

      Download gratuito per Windows

      Il software può anche aiutare a ripristinare i record eliminati da un database SQL Server. Inoltre, è possibile visualizzare in anteprima i componenti riparati prima di salvarli in un database esistente, in un nuovo database o in altri formati di file (CSV, HTML o XLS).

      Conclusione

      Se si verifica l’errore “Il database non può essere ripristinato perché il registro non è stato ripristinato”, l’abbandono del database e il suo ripristino dal backup potrebbero aiutare a risolvere l’errore. Se il ripristino non riesce o il database è diventato inaccessibile, provare a riparare il database utilizzando DBCC CHECKDB con il comando REPAIR_ALLOW_DATA_LOSS. Se questo non aiuta, è possibile utilizzare il software Stellar Repair for MS SQL per riparare e ripristinare il database.

      Was this article helpful?

      No NO

      Circa l'autore

      Himanshu Shakya

      Himanshu is a Tech Enthusiast & Blogger at Stellar and having knowledge of Japanese Language. And apart from this in his spare time he likes playing Chess.

      Post correlato

      PERCHÉ STELLAR® È LEADER MONDIALE

      Perché scegliere Stellar?

      • 0M+

        Clienti

      • 0+

        Anni di eccellenza

      • 0+

        Ingegneri R&S

      • 0+

        Paesi

      • 0+

        PARTNER

      • 0+

        Premi ricevuti