Lär dig lösningarna för att återställa en misstänkt MSDB-databas i SQL Server
SQL Server agent använder sig av msdb-databasen för att planera jobb och varningar genom att använda andra funktioner som SSMS, databaspost och servicemäklare. Det kan finnas situationer där din msdb-databas görs misstänkt och behöver återställas. Här kanske du tror att en enkel återställningsåtgärd skulle räcka för att återställa databasen till hälsa, men det är inte sant. Här måste du se till att mer än bara återställa databasen. Fortsätt läsa om du vill veta vilka olika sätt att komma ur denna situation.
1. Återställ MSDB-databasen med Backup
Detta kan vara din bästa lösning på grund av försäkran om minst dataförlust, men det är viktigt för dig att veta att mängden dataförlust också beror på hur aktiv databasen du använder för återställning. Om transaktionsloggen säkerhetskopieras ofta och databasen också är aktiv kanske du bara kan återställa 100% data. Så se till att du fortsätter att ta regelbundna säkerhetskopior så att du åtminstone har något att falla tillbaka på. Om detta inte fungerar kan du överväga att använda en specialiserad skadad SQL återställningsverktyg.
2. Hämta en MSDB-säkerhetskopia från en annan SQL Server Exempel
Det här kan vara din plan B. Om du slutar ha en misstänkt msdb-databas och ingen säkerhetskopia att falla på, vad gör du då? Använd en annan SQL Server instans och dess msdb-säkerhetskopia. Se dock till att förekomsten liknar den version du använde, som nu har blivit korrupt. Men det viktigaste att tänka på här är att om msdb-databasen är ur drift måste återställningen göras via T-SQL. Eftersom SSMS inte kan återställa databaser från GUI utan att msdb redan körs.
Och medan du använder T-SQL för samma, se till att den inbyggda och versionen matchar, annars kommer transplantationen att hamna i ett misslyckande.
3. Använd MSDB Database Template i SQL Server
Om det inte finns någon säkerhetskopia att återställa från och ingen annan SQL Server exempel att använda sig av, då måste du använda mallarna som skapas vid installationen för alla databaser. Det här alternativet är tillgängligt för dig om du använder en SQL Server 2008 eller senare utgåva. Och på grundval av den utgåva som används kommer lagringsvägen för dessa mallar att skilja sig.
När du väl har hittat mallen för msdb-databasen måste du stänga förekomsten och sedan ersätta den misstänkta msdb tillsammans med transaktionsloggen med deras mallfiler och sedan restart förekomsten. Detta startar din instans utan något fel!
En annan lösning som du kanske vill använda är msdb-skript som låter dig återskapa objekt. Men detta kan bara göras om du har skript tillgängliga. Detta är egentligen inte ett återställningsalternativ, utan något som kan hjälpa dig att spara tid genom att undvika att återställa alla objekt från grunden.
Författarintroduktion:
Victor Simon är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive återställa åtkomst och mjukvaruprodukter för SQL-återställning. För mer information besök https://www.datanumen.com/