sql >> Databasteknik >  >> Database Tools >> SSMS

SQL Server:Hur bifogar/reparerar man en lossad/skadad databas?

Du kan prova en lösning. Kort sagt:

  1. Skapa en dummy DB med samma namn (kan behöva ta bort den riktiga DB först, spara originalfilerna eller byta namn sedan).
  2. Ta bort dummyn offline (koppla bort och (ställ offline eller stoppa SQL-tjänsten)).
  3. Ta bort dummy-filer, ersätt sedan med de riktiga DB-filerna.
  4. Försök att bifoga DB igen

Redigera

Som i OP-kommentaren kan du också behöva bygga om loggen (om du förlorade transaktioner)

  1. ÄNDRA DATABAS [MyDatabase] ÅTERBYGGA LOGGA PÅ (NAME=’MyDatabaseLog’,FILENAME=’D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf’)

    och placera DB i loggen för flera användare (om du tar bort DB kan du behöva sätta den i engångsläge)

  2. ALTER DATABASE [nomdb] STÄLL IN MULTI_USER

För alla detaljer kan du hänvisa till Paul Randal-artikel

(Notera i den här artikeln att författaren använder NÖDLÄGE för att (försöka) reparera transaktionsloggen)

Jag har redan använt det med framgång men beroende på skadans omfattning eller andra detaljer kan det vara en omöjlig uppgift. Överväg att återställa en säkerhetskopia.

Observera att dessa stunts är bra i en utvecklingsserver men du behöver verkligen planera (och borra) för katastrofåterställning i en produktionsserver.




  1. Hur installerar jag SQL Server Management Studio 2012 (SSMS) Express?

  2. Varför följer inte SSMS mina standarddatabasinställningar?

  3. Hur man får FIO att spela upp ett spår med flera trådar

  4. PhpMyAdmin anslutningsprotokoll PIPE