SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

SQL Server :Comment attacher/réparer une base de données détachée/endommagée ?

Vous pouvez essayer une solution de contournement. En bref :

  1. Créez une base de données factice avec le même nom (vous devrez peut-être d'abord supprimer la base de données réelle, enregistrer les fichiers d'origine ou renommer ensuite).
  2. Mettre le mannequin hors ligne (détacher et (mettre hors ligne ou arrêter le service SQL)).
  3. Supprimez les fichiers factices, remplacez-les ensuite par les vrais fichiers de base de données.
  4. Essayez de rattacher la base de données

Modifier

Comme par la note de commentaire OP, vous pouvez également avoir besoin de reconstruire le journal (si vous avez perdu des transactions)

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

    et placez la base de données dans le journal de plusieurs utilisateurs (la désactivation de la base de données peut vous obliger à la mettre en mode d'utilisation unique)

  2. ALTER DATABASE [nomdb] SET MULTI_USER

Pour tous les détails sanglants, vous pouvez vous référer au Article de Paul Randal

(Notez dans cet article que l'auteur utilise le MODE D'URGENCE pour (tenter) de réparer le journal des transactions)

Je l'ai déjà utilisé avec succès mais selon l'étendue des dégâts ou d'autres détails cela peut être une tâche impossible. Envisagez de restaurer une sauvegarde.

Notez que ces cascades conviennent à un serveur de développement, mais vous devez vraiment planifier (et forer) la reprise après sinistre sur un serveur de production.