Partage maintenant:
Table des Matières cacher

SQL Server Base de données en mode récupération ? Obtenez 10 solutions éprouvées dès maintenant ! Des solutions étape par étape, de la solution simple à la réparation avancée.

1. Compréhension SQL Server Mode de récupération de la base de données

1.1 Qu'est-ce que le mode de récupération dans SQL Server

Quand un SQL Server la base de données affiche le statut « En cours de récupération », ce qui signifie SQL Server effectue une récupération après incident ou une récupération de transaction pour garantir la cohérence de la base de données. Ce processus automatique préserve l'intégrité des données en réexécutant les transactions validées et en annulant celles qui ne le sont pas.

In SQL Server, une base de données contient la balise « En récupération », ce qui signifie qu'elle est actuellement en mode de récupération.

Le mode de récupération intervient généralement après des arrêts inattendus, des pannes de courant ou des restaurations de bases de données. Bien qu'il s'agisse d'un mécanisme de protection normal, des problèmes surviennent lorsque SQL Server la base de données en cours de récupération prend un temps inhabituellement long ou semble bloquée.

1.2 Les trois phases de la récupération de base de données

SQL Server la récupération suit trois phases distinctes :

1.2.1 Phase d'analyse

SQL Server Analyse le journal des transactions depuis le dernier point de contrôle afin d'identifier les pages corrompues et les transactions actives. Il crée une table des pages corrompues (DPT) et une table des transactions actives (ATT) pour suivre les opérations à restaurer.

1.2.2 Phase de rétablissement (Roll Forward)

Le système rejoue toutes les transactions validées qui n'ont pas été écrites sur le disque avant le crash. Cela garantit que toutes les modifications validées sont correctement appliquées aux fichiers de base de données.

1.2.3 Phase d'annulation (Rollback)

Toutes les transactions non validées sont annulées afin de maintenir la cohérence de la base de données. Une fois terminée, la base de données redevient opérationnelle.

1.3 Symptômes courants et messages d'erreur

Quand votre SQL Server la base de données est en cours de récupération, vous verrez généralement :

  • Nom de la base de données indiquant « (En cours de récupération) » dans SQL Server Studio de gestion
  • Échecs de connexion avec le message « La base de données est en cours de récupération »
  • Entrées du journal des erreurs indiquant les pourcentages de progression de la récupération
  • État de la base de données indiquant « RÉCUPÉRATION » lors de la requête

2. Causes profondes de SQL Server Problèmes de mode de récupération

2.1 Opérations de restauration incomplètes

Le most une cause courante se produit lors de la restauration à partir de plusieurs fichiers de sauvegarde à l'aide de NORECOVERY option sans finale AVEC RÉCUPÉRATION commande. Cela laisse la base de données en attente d'opérations de restauration supplémentaires.

2.2 Problèmes liés au journal des transactions

Les fichiers journaux de transactions volumineux ou les fichiers journaux virtuels (VLF) excessifs ralentissent considérablement la récupération. Lorsque MS SQL est en cours de récupération avec des milliers de VLF, le processus peut prendre des heures, voire des jours.

2.3 Problèmes liés au système

Les pannes matérielles, les pannes de courant ou l'espace disque insuffisant peuvent interrompre les opérations normales de la base de données, déclenchant de longs processus de récupération pendant la restauration.tart.

2.4 Corruption de la base de données

Les fichiers de base de données corrompus empêchent la réussite de la récupération, laissant la base de données indéfiniment bloquée en mode de récupération.

3. DiagnosticostÉtapes avant la réparation

Vérification 3.1 SQL Server Journaux d'erreur

Avant de tenter des correctifs, examinez le SQL Server Journal des erreurs pour les messages de progression de la récupération. Recherchez les entrées indiquant les pourcentages d'achèvement et le temps restant estimé.

  1. Ouvrez SQL Server Studio de gestion
  2. Accédez à Direction -> SQL Server Journaux
  3. Consultez les entrées récentes pour le nom de votre base de données
  4. Recherchez les indicateurs de phase de récupération (phase 1, 2 ou 3 sur 3)

Vérification SQL Server journaux d'erreurs pour les messages de progression de la récupération.

3.2 Suivi des progrès de la récupération

Utilisez des vues de gestion dynamiques pour suivre les opérations de récupération actives :

SELECT session_id, command, blocking_session_id, wait_type, wait_time, wait_resource
FROM sys.dm_exec_requests
WHERE command = 'DB STARTUP';

3.3 Vérification de l'état de la base de données

Vérifiez l’état actuel de la base de données pour comprendre l’état de récupération :

SELECT name, state_desc
FROM sys.databases
WHERE name = 'YourDatabaseName';

4. Correction n°1 : attendre la fin de la récupération naturelle

Parfois, la patience est la meilleure solution lorsque votre SQL Server La base de données est en cours de récupération. Cette approche fonctionne lorsque la récupération progresse normalement, mais prend plus de temps que prévu.

4.1 Quand être patient

Autoriser la complétion naturelle lorsque :

  • Les journaux d'erreurs montrent une progression constante avec des estimations de temps décroissantes
  • Aucune erreur de corruption n'est signalée
  • La base de données a récemment connu des transactions importantes
  • Le nombre de VLF est gérable (moins de 1 000)

4.2 Suivi des progrès de la récupération

Les estimations de temps de récupération dans les journaux d'erreurs sont souvent inexactes. Privilégiez les pourcentages de progression plutôt que le temps restant. Les bases de données volumineuses avec un historique de transactions détaillé peuvent nécessiter plusieurs heures pour une récupération complète.

5. Correction n° 2 : utiliser RESTAURER LA BASE DE DONNÉES AVEC RÉCUPÉRATION

Ce correctif résout les opérations de restauration incomplètes où l'étape de récupération finale a été omise. Utilisez-le lorsque votre SQL Server la base de données en cours de récupération résulte d'un processus de restauration utilisant NORECOVERY.

5.1 Comprendre la commande

Le RESTAURER LA BASE DE DONNÉES AVEC RÉCUPÉRATION La commande termine le processus de récupération en annulant les transactions non validées et en mettant la base de données en ligne.

5.2 étapes de mise en œuvre

  1. Ouvrez SQL Server Studio de gestion
  2. Connectez-vous à votre SQL Server instance
  3. Cliquez à nouveau sur Nouveau > Requête avec la connexion actuelle
    Créer une nouvelle requête dans SQL Server Atelier de gestion.
  4. Exécuter: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Attendre la confirmation d'achèvement

Mise en garde: Utilisez cette commande uniquement si vous êtes certain qu’aucune opération de restauration supplémentaire n’est en attente.

6. Correction n° 3 : Résoudre les problèmes de journal des transactions

Les problèmes de journaux de transactions sont l'une des principales causes de délais de récupération prolongés. Ce correctif résout les problèmes de journaux saturés, de VLF excessifs et d'espace de journalisation qui empêchent SQL Server en récupération.

6.1 Sauvegarde des journaux de transactions

Libérez de l’espace de journal en créant des sauvegardes du journal des transactions :

  1. Ouvrez SQL Server Studio de gestion
  2. Faites un clic droit sur votre base de données -> Tâches -> Sauvegarde
    Starune tâche de sauvegarde pour un SQL Server base de données.
  3. Changer Type de sauvegarde à Journal des transactions
    Changer le type de sauvegarde en journal des transactions
  4. Spécifier la destination de la sauvegarde
  5. Cliquez à nouveau sur OK éxécuter

6.2 Gestion des fichiers journaux virtuels (VLF)

Vérifiez le nombre de VLF avec :

DBCC LOGINFO('YourDatabaseName');

Si vous avez plus de 1 000 VLF, réduisez-les de :

  1. Sauvegarde du journal des transactions
  2. Réduire le fichier journal : DBCC SHRINKFILE(LogFileName, TRUNCATEONLY);
  3. Augmenter le fichier journal en gros morceaux (1 Go ou plus)

6.3 Réduire les fichiers journaux en toute sécurité

Réduisez les journaux uniquement pendant les périodes de maintenance, lorsqu'aucune transaction n'est en cours. Sauvegardez toujours la base de données avant toute opération de réduction.

7. Correction n° 4 : exécuter DBCC CHECKDB et réparer

La corruption d'une base de données peut empêcher la récupération. DBCC CHECKDB est une commande intégrée qui permet d'identifier et de réparer les problèmes de corruption mineurs qui maintiennent MS SQL en mode de récupération.

7.1 Vérification de la corruption de la base de données

Start avec l'approche standard pour vérifier l'intégrité des bases de données. Essayez d'abord directement DBCC CHECKDB :

  1. Exécuter: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Examiner les résultats pour détecter les erreurs de cohérence
  3. Documentez tous les messages de corruption

Si DBCC CHECKDB échoue Avec des erreurs telles que « Base de données en cours de récupération. En attente de la fin de la récupération », cela signifie que la base de données est en mode de récupération et bloque l'accès. Dans ce cas, passez à la section 7.3 pour utiliser le mode URGENCE.

7.2 Options de réparation pour les bases de données accessibles

Si DBCC CHECKDB s'est exécuté avec succès et a détecté une corruption, utilisez ces étapes de réparation :

  1. Définir la base de données en mode mono-utilisateur : ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  2. Tenter une réparation en toute sécurité : DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  3. En cas d'échec, utilisez : DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  4. Retour au multi-utilisateur : ALTER DATABASE [YourDatabaseName] SET MULTI_USER;

7.3 Utilisation du mode d'urgence lorsque la base de données est inaccessible

Le mode d'urgence n'est requis que lorsque la base de données est bloquée en récupération et rejette les tentatives DBCC CHECKDB normales. Il marque la base de données en lecture seule et désactive la journalisation. Utilisez cette approche en cas d'échec de l'accès standard :

  1. Définir le mode d’urgence : ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
  2. Définir un utilisateur unique : ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  3. Exécuter la vérification d’intégrité : DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  4. Si une corruption est détectée, exécutez d'abord une réparation sécurisée : DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  5. En cas d'échec, utilisez la réparation avec perte de données :  DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  6. Définir multi-utilisateur : ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Mettre en ligne : ALTER DATABASE [YourDatabaseName] SET ONLINE;

Important: Le mode URGENCE contourne les processus de récupération habituels et ne doit être utilisé que lorsque la base de données est totalement inaccessible. Essayez toujours d'abord la méthode standard DBCC CHECKDB avant de passer en mode URGENCE.

Vous pouvez trouver le un guide plus complet sur l'utilisation de DBCC CHECKDB.

8. Correction n° 5 : Restaurer à partir d'une sauvegarde

Lorsque d’autres méthodes échouent ou que l’intégrité des données est douteuse, la restauration à partir d’une sauvegarde propre est souvent la meilleure solution.ost solution fiable pour résoudre SQL Server base de données en cas de problèmes de récupération.

8.1 Quand choisir la restauration de sauvegarde

Envisagez la restauration de sauvegarde lorsque :

  • La récupération dure depuis plus de 24 heures sans progrès
  • Les erreurs de corruption empêchent une réparation réussie
  • Vous disposez de sauvegardes récentes et vérifiées
  • La perte de données depuis la dernière sauvegarde est acceptable

8.2 Processus de restauration étape par étape

  1. Ouvrez SQL Server Studio de gestion
  2. Faites un clic droit Bases de données -> Restaurer la base de données
    Startâche de restauration de la base de données dans SQL Server Studio de gestion
  3. Choisir Appareil sous Source
  4. Cliquez à nouveau sur Ajouter et accédez à votre fichier de sauvegarde
  5. Sélectionnez la sauvegarde et cliquez sur OK
  6. Choisissez Écraser la base de données existante si nécessaire
  7. Cliquez à nouveau sur OK à start restauration

Restaurer la base de données dans SQL Server.

8.3 Récupération à un moment précis

Pour minimiser les pertes de données, utilisez des sauvegardes de journaux de transactions pour restaurer vos données à un instant T. Assurez-vous de disposer d'une chaîne ininterrompue de sauvegardes de journaux, de votre sauvegarde complète jusqu'au point de récupération souhaité.

Référence 8.4

Vous pouvez obtenir plus d'informations sur notre site web. Guide complet sur la sauvegarde et la restauration SQL Server bases de données.

9. Correction n° 6 : désactiver la propriété AUTO CLOSE

La propriété de base de données AUTO CLOSE peut provoquer des cycles de récupération répétés, donnant l'impression que votre SQL Server La base de données est constamment en mode de récupération. Désactiver cette propriété résout le problème.

9.1 Comprendre les problèmes de fermeture automatique

Lorsque la FERMETURE AUTOMATIQUE est activée, SQL Server Ferme la base de données après la fin de la dernière connexion, puis la rouvre pour les nouvelles connexions. Cette ouverture répétée déclenche à chaque fois des processus de récupération.

9.2 Désactivation de la FERMETURE AUTOMATIQUE

  1. Ouvrez SQL Server Studio de gestion
  2. Faites un clic droit sur votre base de données -> Propriétés
  3. Choisir Options depuis le panneau de gauche
  4. complet » Fermeture automatique à Faux
  5. Cliquez à nouveau sur OK pour appliquer les modifications

Désactiver la propriété de fermeture automatique pour un SQL Server base de données dans SQL Server Atelier de gestion.

Vous pouvez également utiliser T-SQL :

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Correction n° 7 : Réstart SQL Server Services

Service restart peut résoudre les processus de récupération bloqués, mais doit être utilisé avec précaution car il résoudratart récupération depuis le début. Ce correctif fonctionne lorsque SQL Server en convalescence apparaît complètement figé.

10.1 Lorsque le service Restart Aide

Restarau service quand :

  • La progression de la récupération est au point mort depuis plusieurs heures
  • Les journaux d'erreurs n'affichent aucune nouvelle entrée
  • Les autres bases de données fonctionnent normalement
  • Vous pouvez vous permettre des temps d’arrêt prolongés

10.2 Responsabilité civiletarProcédures

  1. Ouvrez SQL Server Panneau de configuration Lien externe
  2. Accédez à SQL Server Services
  3. Découvrez SQL Server instance que vous souhaitez restart, puis faites un clic droit SQL Server (Nom de l'instance)
  4. Choisir Recommencer
  5. Attendez que le service soit complètement rétablitart
  6. Surveiller les journaux d'erreurs pour la progression de la récupération

Restart le SQL Server service dans SQL Server Panneau de configuration.

À noter: Restarting entraînera le début de la récupération à partir du start, prolongeant potentiellement le temps de récupération total.

11. Correction n° 8 : Réparer la base de données en la détachant et en la rattachant

Pour les cas extrêmes, détachez et rattachez la base de données :

  1. Détacher la base de données : EXEC sp_detach_db 'YourDatabaseName';
  2. Joignez uniquement le fichier MDF : CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG;
  3. Cela reconstruit un nouveau journal de transactions

Mise en garde: Cette méthode peut entraîner une perte de données. À n'utiliser que lorsque les autres options sont épuisées.

12. Correction n° 9 : Gérer les problèmes de mise en miroir des bases de données

Les configurations de mise en miroir de bases de données peuvent entraîner des problèmes de récupération spécifiques. Ce correctif corrige les problèmes spécifiques à la mise en miroir qui maintiennent les bases de données en état de récupération.

12.1 Problèmes de récupération spécifiques à la mise en miroir

Les bases de données en miroir peuvent rester bloquées en phase de récupération en raison de problèmes de connexion avec un partenaire ou de points de terminaison. Les bases de données principales et miroirs peuvent toutes deux afficher l'état de récupération.

12.2 Solutions de récupération de mise en miroir

Restarau point de terminaison de mise en miroir :

  1. Rechercher le nom du point de terminaison : SELECT * FROM sys.endpoints WHERE type = 4;
  2. Point d'arrêt final : ALTER ENDPOINT [EndpointName] STATE = STOPPED;
  3. Starpoint final : ALTER ENDPOINT [EndpointName] STATE = STARTED;

Si le point de terminaison restart échoue, brise le partenariat de mise en miroir :

  1. Exécuter: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. Exécuter: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Reconfigurer la mise en miroir une fois la base de données en ligne

13. Solution n° 10 : utiliser des outils de récupération professionnels

Les outils de récupération tiers offrent des capacités de réparation avancées lorsqu'ils sont intégrés SQL Server Les méthodes échouent. Ces outils permettent souvent de récupérer des données à partir de bases de données gravement corrompues.

13.1 DataNumen SQL Recovery

DataNumen SQL Recovery a un taux de récupération élevé, ainsi que des options complètes.

Voici les étapes à suivre pour l'utiliser :

  1. Arrêter le SQL Server Service.
  2. Faites une copie des fichiers de la base de données en mode de récupération, y compris le fichier MDF principal et les fichiers NDF secondaires.
  3. Start le SQL Server Service.
  4. Start DataNumen SQL Recovery.
  5. Choisissez la copie, au lieu du fichier original, comme source de la base de données à récupérer.
  6. Cliquez sur "Start Recovery” et suivez les instructions pour récupérer la base de données.
  7. Après le processus de récupération, une nouvelle base de données de récupération apparaîtra dans SQL Server qui contient toutes les données récupérées.

Utilisez le  DataNumen SQL Recovery pour réparer un seul corrompu SQL Server Fichier MDF.

13.2 Quand envisager des outils tiers

Utilisez des outils professionnels lorsque :

  • Les options de réparation intégrées échouent ou signalent une corruption importante
  • Aucune sauvegarde récente n'est disponible
  • Les données critiques doivent être récupérées malgré la corruption
  • Les méthodes de récupération standard entraînent une perte de données importante

14. Meilleures pratiques de prévention

14.1 Tâches de maintenance régulières

Mettez en œuvre ces pratiques pour prévenir SQL Server problèmes de base de données en cours de récupération :

  • Planifiez des sauvegardes complètes et des journaux réguliers : Maintenir des chaînes de sauvegarde complètes
  • Surveiller les comptages VLF : Maintenez les VLF en dessous de 100 pour des performances optimales
  • Planifier la taille du fichier journal : Pré-dimensionnez les bûches pour éviter une croissance automatique excessive
  • Exécutez DBCC CHECKDB standard : Détecter la corruption à un stade précoce

14.2 Surveillance et alerte

Mettre en place une surveillance proactive :

  1. Configurer des alertes pour les changements d'état de la base de données
  2. Surveiller l'espace disque sur les lecteurs de fichiers journaux
  3. Suivre les transactions de longue durée
  4. Alerte sur les comptages VLF excessifs

14.3 Matériel et infrastructure

Assurer une infrastructure fiable :

15. Dépannage de scénarios complexes

15.1 Problèmes de bases de données multiples

Lorsque plusieurs bases de données sont bloquées en récupération :

  1. Vérifiez les problèmes à l'échelle du système (espace disque, mémoire)
  2. Donner la priorité aux bases de données critiques pour la récupération
  3. Considérez les problèmes matériels affectant l’ensemble de l’instance
  4. Examiner les modifications ou mises à jour récentes du système

15.2 Considérations relatives aux bases de données volumineuses

Pour les bases de données de plus de 1 To :

  • Prévoyez des temps de récupération plus longs (potentiellement plusieurs jours)
  • Assurer une allocation de mémoire adéquate
  • Tenez compte des paramètres de traitement parallèle
  • Surveiller l'espace tempdb pendant la récupération

15.3 Quand contacter le support Microsoft

Contactez le support Microsoft pour :

  • Systèmes de production critiques sans options de sauvegarde
  • Soupçonné SQL Server bogues logiciels
  • Environnements d'entreprise nécessitant une récupération garantie
  • Scénarios complexes Always On ou clustering

16. FAQ

Q : Combien de temps faut-il SQL Server Combien de temps faut-il normalement pour récupérer une base de données ?

R : Le temps de récupération dépend de la taille de la base de données, du volume de transactions et des performances matérielles. Les petites bases de données récupèrent généralement en quelques minutes, tandis que les grandes bases de données avec des journaux de transactions volumineux peuvent prendre plusieurs heures. Les estimations de temps affichées dans les journaux d'erreurs sont souvent inexactes ; privilégiez donc les pourcentages de progression.

Q : Puis-je arrêter SQL Server pendant la récupération sans perdre de données ?

A : Arrêt SQL Server pendant la récupération est généralement sans danger mais peut se rétablirtart le processus de récupération depuis le début lorsque le service est rétablitarts. Cela prolonge le temps de récupération total mais n'entraîne pas de perte de données supplémentaire au-delà de ce qui s'est produit lors de l'incident initial.

Q : Quelle est la différence entre « En cours de récupération » et « En attente de récupération » ?

A : « En convalescence » signifie SQL Server effectue activement des opérations de récupération. « Récupération en attente » indique que le processus de récupération a échoué.tart, généralement en raison de fichiers manquants, d'autorisations insuffisantes ou de problèmes d'espace disque qui doivent être résolus avant que la récupération puisse se poursuivre.

Vous trouverez des informations plus détaillées sur « Recouvrement en attente » dans notre guide complet.

Q : Vais-je perdre des données si j’utilise REPAIR_ALLOW_DATA_LOSS ?

R : Oui, REPAIR_ALLOW_DATA_LOSS peut supprimer les données corrompues pour restaurer la cohérence de la base de données. Essayez toujours d'abord REPAIR_REBUILD, qui corrige les problèmes structurels sans perte de données. N'utilisez REPAIR_ALLOW_DATA_LOSS qu'en dernier recours, lorsque vous n'avez aucune autre option de récupération.

Q : Puis-je accéder à d’autres bases de données pendant qu’une base de données est en cours de récupération ?

R : Oui, d’autres bases de données sur le même SQL Server L'instance reste accessible pendant la récupération. Seule la base de données en cours de récupération est indisponible. Cependant, les opérations de récupération peuvent affecter les performances globales du serveur.

Q : Qu'est-ce qui fait qu'une base de données reste bloquée en mode de récupération ?

R : Les causes courantes incluent des restaurations incomplètes avec NORECOVERY, un nombre excessif de fichiers journaux virtuels (VLF), des transactions volumineuses non validées, une corruption de base de données, un espace disque insuffisant et des problèmes matériels. Les bases de données activées par la fermeture automatique peuvent également entrer constamment en mode récupération.

Q : Comment puis-je savoir si la récupération progresse ou est bloquée ?

A : Surveiller SQL Server Journaux d'erreurs pour les messages de progression de la récupération, indiquant les pourcentages d'achèvement. Utilisez sys.dm_exec_requests pour vérifier les bases de données actives.TARCommandes TUP. Si les pourcentages augmentent avec le temps, la récupération progresse. L'absence de nouvelles entrées de journal pendant plusieurs heures peut indiquer un blocage du processus.

Q : Est-il sécuritaire de restart SQL Server service pendant la récupération ?

A : RéstarLe ting est sans danger mais doit être utilisé avec précaution. Il résoudratart récupération dès le début, doublant potentiellement le temps de récupération. Seulement restart si la récupération semble complètement gelée sans aucun progrès pendant plusieurs heures, ou si vous soupçonnez que le processus est vraiment bloqué.

Q : Quelle est la différence entre la FERMETURE AUTOMATIQUE et le mode de récupération ?

R : La fermeture automatique ferme automatiquement les bases de données lorsqu'aucune connexion n'est établie, puis les rouvre pour de nouvelles connexions. Cette ouverture répétée déclenche à chaque fois de brefs processus de récupération, donnant l'impression que la base de données est constamment en cours de récupération. Désactiver la fermeture automatique résout ce problème.

Q : Les sauvegardes du journal des transactions peuvent-elles aider lors de la récupération ?

R : Les sauvegardes de journaux de transactions peuvent libérer de l'espace si le lecteur de journaux est plein, ce qui permet potentiellement de poursuivre la récupération. Cependant, il est impossible de sauvegarder le journal d'une base de données actuellement en mode de récupération. Les sauvegardes de journaux sont plus utiles à des fins de prévention et de prévention.ost-entretien de récupération.

Q : Quand dois-je contacter le support Microsoft ?

A : Contactez le support Microsoft pour les systèmes de production critiques où les méthodes de récupération intégrées échouent, lorsque vous suspectez SQL Server bogues logiciels, pour des scénarios Always On ou de clustering complexes, ou lorsque les environnements d'entreprise nécessitent une récupération de données garantie avec un temps d'arrêt minimal.

Q : Comment puis-je empêcher les bases de données de rester bloquées lors de la récupération ?

A : Implémentez des sauvegardes complètes et des sauvegardes de journaux régulières, surveillez et gérez les nombres VLF, assurez-vous d'un espace disque adéquat, utilisez des procédures d'arrêt appropriées, maintenez la fiabilité du matériel, désactivez la fermeture automatique sur les bases de données de production et exécutez des opérations DBCC CHECKDB régulières pour détecter la corruption de manière précoce.

Q : Que sont les VLF et pourquoi affectent-ils la récupération ?

R : Les fichiers journaux virtuels (VLF) sont des segments internes des fichiers journaux de transactions. Un nombre excessif de VLF (plus de 1 000) ralentit considérablement la récupération, car SQL Server Chaque fichier journal doit être traité individuellement. Des paramètres de taille et de croissance appropriés permettent de maintenir un nombre optimal de VLF.

Q : Puis-je restaurer à partir d’une sauvegarde pendant qu’une base de données est en cours de récupération ?

R : Vous ne pouvez pas restaurer une base de données actuellement en mode de récupération. Vous devez soit attendre la fin de la récupération, soit arrêter le SQL Server service, ou restaurer la base de données sous un nom différent. En cas d'urgence, envisagez de restaurer la base de données sous un nouveau nom, puis de la renommer une fois les problèmes de récupération résolus.

17. Conclusion et prochaines étapes

17.1 Résumé des solutions clés

Quand votre SQL Server la base de données est en cours de récupération, start avec ces approches dans l’ordre :

  1. Vérifiez les journaux d'erreurs et surveillez la progression
  2. Attendre l'achèvement naturel si la progression est régulière
  3. Utilisez RESTORE WITH RECOVERY pour les restaurations incomplètes
  4. Résoudre les problèmes du journal des transactions
  5. Exécutez DBCC CHECKDB ou des outils professionnels pour détecter la corruption
  6. Envisager la restauration des sauvegardes pour les cas graves

Most SQL Server Les problèmes de bases de données en situation de récupération sont résolus en quelques heures grâce à ces méthodes éprouvées. Pour les situations complexes, n'hésitez pas à utiliser des techniques avancées ou des outils professionnels.

17.2 Ressources supplémentaires

Pour obtenir de l'aide :

Un entretien et une surveillance réguliers permettent d'éviterost Problèmes de récupération. Mettez en œuvre les pratiques de prévention décrites dans ce guide pour minimiser les occurrences futures de problèmes de récupération liés à MS SQL.


À propos de l’auteur

Yuan Sheng est un administrateur de base de données senior (DBA) avec plus de 10 ans d'expérience dans SQL Server Environnements et gestion de bases de données d'entreprise. Il a résolu avec succès des centaines de scénarios de récupération de bases de données dans des organisations du secteur financier, de la santé et de l'industrie manufacturière.

Yuan se spécialise dans SQL Server Récupération de bases de données, solutions de haute disponibilité et optimisation des performances. Sa vaste expérience pratique comprend la gestion de bases de données de plusieurs téraoctets, la mise en œuvre de groupes de disponibilité permanente (AAL) et le développement de stratégies automatisées de sauvegarde et de restauration pour les systèmes d'entreprise critiques.

Grâce à son expertise technique et à son approche pratique, Yuan se concentre sur la création de guides complets qui aident les administrateurs de bases de données et les professionnels de l'informatique à résoudre des problèmes complexes. SQL Server défis efficacement. Il se tient au courant des dernières SQL Server les versions et les technologies de base de données en constante évolution de Microsoft, testant régulièrement des scénarios de récupération pour garantir que ses recommandations reflètent les meilleures pratiques du monde réel.

Vous avez des questions sur SQL Server Besoin d'aide pour la récupération de votre base de données ? Yuan vous accueille. commentaires et suggestions pour améliorer ces ressources techniques.

Partage maintenant: