Windows Server: Ripristino del database MSDB di Microsoft SQL Server
Riepilogo:Informazioni su come ripristinare un database MSDB di Microsoft SQL Server.
Seleziona un prodotto per verificare la pertinenza dell'articolo
Questo articolo si applica a Questo articolo non si applica aQuesto articolo non è legato a un prodotto specifico.Non tutte le versioni del prodotto sono identificate in questo articolo.
Se danneggiato, un database MSDB di Microsoft SQL Server potrebbe non essere online e operativo. Il servizio SQL Server Agent non si avvia e i processi pianificati non vengono eseguiti automaticamente o manualmente.
Causa
Il danno al file di database SQL Server può verificarsi per molte ragioni diverse. La maggior parte degli eventi del database MSDB danneggiati di Microsoft SQL Server si verifica a causa di problemi hardware correlati a problemi di memoria, disco o processore.
Risoluzione
Esistono tre metodi per ripristinare i database Microsoft SQL MSDB:
Restore da backup
Utilizzare DBCC CheckDB per ripristinare il database MSDB
Sostituire i file del database MSDB
Ripristino del database MSDB dal backup:
Il processo di ripristino tramite SQL Server Management Studio richiede un backup aggiornato e può essere eseguito accedendo alle proprietà del database "msdb", Tasks >Restore >Database e indicando la posizione del supporto di backup.
Utilizzare DBCC CheckDB per la riparazione del database:
Se non è disponibile alcun backup, è possibile eseguire DBCC CheckDB per salvare il database MSDB corrente e il relativo contenuto. I comandi T-SQL riportati di seguito verificano l'integrità del database MSDB. Eseguire una riparazione soft del database MSDB e infine una riparazione hardware del database MSDB:
Controllo dell'integrità di MSDB; Il database è privo di danneggiamenti?
Eseguire il comando riportato di seguito nella finestra delle query SSMS:
USE Master;
GO
ALTER Database MSDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (msdb, NOINDEX);
GO
ALTER DATABASE MSDB
SET-MULTI_USER;
GO
Vogliamo controllare la riga in fondo alla finestra di reso che riporta gli errori di "allocazione" e "coerenza". Un database MSDB danneggiato segnala un errore e richiede i comandi DBCC CHECKDB riportati di seguito per essere riparato.
Comando MSDB T-SQL per un tentativo di "soft recovery" senza perdita di dati:
Eseguire il comando riportato di seguito nella finestra delle query SSMS:
USE Master;
GO
ALTER Database MSDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (msdb, REPAIR_REBUILD);
GO
ALTER DATABASE MSDB
SET-MULTI_USER;
GO
Dopo aver eseguito il comando precedente, eseguire nuovamente DBCC CheckDB per visualizzare il nuovo stato del database.
Comando MSDB T-SQL per un tentativo di "hard recovery" con possibile perdita di dati:
Eseguire il comando riportato di seguito nella finestra delle query SSMS:
USE Master;
GO
ALTER Database MSDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (msdb, REPAIR_ALLOW_DATA_LOSS);
GO
ALTER DATABASE MSDB
SET-MULTI_USER;
GO
Dopo aver eseguito il comando precedente, eseguire nuovamente DBCC CheckDB per visualizzare il nuovo stato del database.
Sostituire i file del database MSDB.
Se il database MSDB è danneggiato e le opzioni di riparazione DBCC non funzionano, inserire un nuovo database MSDB sostituendo i file del database MSDB.
Quando si sostituiscono i file di database MSDB, tutte le informazioni come i processi di backup personalizzati, le informazioni sulle attività, la replica, il log shipping e i dati del piano di manutenzione.
La procedura riportata di seguito viene utilizzata per sostituire un database MSDB esistente con un nuovo database MSDB predefinito.
Accedere alla directory di installazione di SQL Server e passare alla cartella Templates nella directory Binn:
I file msdbdata.mdf e msdblog.ldf sono i file modello del database MSDB per i quali è necessario generare un nuovo database MSDB stabile.
È necessario arrestare il servizio SQL Server per sostituire i file di database MSDB esistenti.
Passare alla directory SQL Server Data. Il percorso della directory nell'esempio seguente è C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA
Individuare i file "msdbdata.mdf" e "msdblog.ldf" danneggiati.
Copiare e spostare i file in un'altra directory; In questo caso li spostiamo in una cartella chiamata "MSDB_Save". È possibile che questi file possano essere importati in un'altra installazione di SQL Server e controllati nuovamente con DBCC CHECKDB; Non è consigliabile eliminare file di database danneggiati durante la risoluzione dei problemi.
Individuare la posizione in cui vengono salvati i file del database temporaneo MSDB e inserirne nuovamente una copia nella directory predefinita del database SQL Server:
Posizione finale per i file temporanei del database MSDB. tornare nella directory dati predefinita di C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA.
Dopo aver sostituito i file del database MSDB, avviare il servizio SQL Server.
Prodotti interessati
Microsoft Windows Server 2016, Microsoft Windows Server 2019, Microsoft Windows Server 2022, Microsoft Windows Server 2025