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

SQL Server:come allegare/riparare un database staccato/danneggiato?

Puoi provare una soluzione alternativa. In breve:

  1. Crea un DB fittizio con lo stesso nome (potrebbe essere necessario rimuovere prima il DB reale, salvare i file originali o rinominare poi).
  2. Porta il manichino offline (stacca e (imposta offline o interrompi il servizio SQL)).
  3. Elimina i file fittizi, sostituiscili quindi con i file DB reali.
  4. Prova a ricollegare il DB

Modifica

Come da nota di commento OP, potresti anche dover ricostruire il registro (se hai perso transazioni)

  1. ALTER DATABASE [MyDatabase] REBUILD ACCEDI (NAME='MyDatabaseLog',FILENAME='D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf')

    e inserisci il DB nel registro di più utenti (la rimozione del DB può richiedere di metterlo in modalità monouso)

  2. ALTER DATABASE [nomdb] SET MULTI_USER

Per tutti i dettagli sul gore puoi fare riferimento a Articolo Paul Randal

(Nota in questo articolo l'autore utilizza la MODALITÀ DI EMERGENZA per (tentare) di riparare il registro delle transazioni)

L'ho già usato con successo ma a seconda dell'entità del danno o di altri dettagli può essere un compito impossibile. Considera la possibilità di ripristinare un backup.

Nota che queste acrobazie vanno bene in un server di sviluppo, ma devi davvero pianificare (e eseguire il drill) per il ripristino di emergenza in un server di produzione.