Partage maintenant:
Table des Matières cacher

Lorsque votre base de données SQL se bloque en état de récupération en attente, elle devient inaccessible et son fonctionnement est interrompu. Ce guide complet propose 15 méthodes éprouvées pour résoudre les problèmes de récupération en attente des bases de données SQL, allant du simple redémarrage aux réparations d'urgence avancées.

1. Comprendre l'état d'attente de récupération de la base de données SQL

Avant de tenter des correctifs, il est essentiel de comprendre les causes des problèmes de récupération de base de données SQL en attente pour choisir la bonne solution.

1.1 Que signifie « Récupération en attente » ?

La récupération en attente indique que SQL Server Ce système détecte qu'une base de données nécessite une récupération, mais ne peut pas démarrer le processus. Contrairement à « Récupération en cours », qui indique une récupération active, « Récupération en attente » signifie que la récupération est bloquée par un obstacle.

SQL Server base de données en état de récupération en attente.

Les principaux états de la base de données comprennent :

  • VIRTUEL – État de fonctionnement normal
  • RÉCUPÉRATION – Processus de récupération en cours d’exécution
  • RÉCUPÉRATION EN ATTENTE – La récupération ne peut pas démarrer
  • SUSPECT – La base de données contient des erreurs critiques
  • URGENCE – Accès limité en lecture seule pour les réparations
  • HORS LIGNE – Mise hors ligne manuelle

1.2 Causes courantes de l'attente de récupération de la base de données SQL

Les problèmes de récupération de base de données SQL en attente résultent généralement de ces causes courantes :

  • Fichiers journaux de transactions manquants ou corrompus (LDF)
  • Espace disque insuffisant lors des opérations de récupération
  • Pannes matérielles et arrêts inattendus du système
  • Fichiers de base de données MDF corrompus
  • Problèmes d'autorisation de fichier empêchant l'accès
  • SQL Server problèmes de synchronisation au démarrage du service
  • Erreurs de configuration de FILESTREAM
  • Chemins de fichiers incorrects après les migrations de serveur

1.3 Comment vérifier l'état de la base de données

Vérifiez l’état de votre base de données à l’aide de ces méthodes :

L'utilisation de SQL Server Atelier de gestion :

  1. Connectez-vous à votre SQL Server instance
  2. Afficher Bases de données dossier
  3. Rechercher des bases de données affichant le statut « (Récupération en attente) »

SQL Server base de données en état de récupération en attente.

Utilisation de la commande T-SQL :

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

2. Étapes initiales du diagnostic

Un diagnostic approprié est essentiel avant de tenter une récupération de base de données SQL en attendant les correctifs.

2.1 chèque SQL Server Journaux d'erreur

Les journaux d’erreurs contiennent des informations cruciales sur la cause de l’état de récupération en attente.

  1. Ouvrez SQL Server Studio de gestion
  2. Accédez à Direction -> SQL Server Journaux
  3. Double-cliquez sur le journal actuel pour afficher les erreurs récentes
  4. Recherchez les messages d'erreur liés à votre base de données

Vérification SQL Server journaux d'erreurs pour les erreurs récentes liées à votre base de données.

Vous pouvez également utiliser T-SQL :

EXEC sp_readerrorlog;

2.2 Vérifier les journaux d'événements Windows

  1. Presse Touche Windows + R
  2. Type eventvwr.msc et appuyez sur Entrée
    Ouvrez l'observateur d'événements Windows.
  3. Accédez à journaux Windows -> Système et Application
  4. Chercher SQL Server erreurs liées au moment où le problème s'est produit

Dans l'observateur d'événements, recherchez SQL Server erreurs connexes pouvant entraîner le problème de récupération de la base de données SQL en attente.

2.3 Vérifier l'accessibilité du fichier

  1. Accédez aux emplacements de vos fichiers de base de données
  2. Vérifiez que les fichiers MDF et LDF existent
  3. Vérifiez si les lecteurs sont en ligne et accessibles
  4. Confirmer que les lecteurs réseau sont correctement montés

3. Solution n° 1 : Redémarrer SQL Server Services

Redémarrage SQL Server Ce service résout de nombreux problèmes de récupération de bases de données SQL en attente, causés par des problèmes de synchronisation ou des conflits de ressources temporaires.

3.1 Lorsque le redémarrage du service fonctionne

Cette méthode est efficace pour :

  • Verrous de ressources temporaires au démarrage
  • Retards de disponibilité des disques
  • Problèmes de synchronisation de dépendance de service
  • Conflits de configuration mineurs

3.2 Comment redémarrer SQL Server Services

Méthode 1: SQL Server Panneau de configuration

  1. Ouvrez SQL Server Panneau de configuration
  2. Cliquez à nouveau SQL Server Services
  3. Faites un clic droit sur le SQL Server exemple, comme SQL Server (SERVEUR MSSQL)
  4. Sélectionner Recommencer
  5. Veuillez patienter jusqu'au redémarrage complet du service.

Redémarrez le SQL Server service dans SQL Server Panneau de configuration.

Méthode 2 : Console de services

  1. Presse Touche Windows + R
  2. Type services.msc et appuyez sur Entrée
    Ouvrez la console des services Windows.
  3. Découvrez SQL Server exemple, comme SQL Server (SERVEUR MSSQL)
  4. Faites un clic droit et sélectionnez Recommencer

Redémarrez le SQL Server service dans la console des services pour résoudre le problème de récupération de la base de données SQL en attente.

Méthode 3 : PowerShell

Restart-Service -Name "MSSQLSERVER" -Force

3.3 Vérification après redémarrage

  1. Attendez 2 à 3 minutes pour le démarrage complet
  2. Vérifier l'état de la base de données dans SSMS
  3. Vérifiez les journaux d'erreurs pour tout nouveau message
  4. Tester la connectivité de la base de données

4. Solution n° 2 : Vérifier et résoudre les problèmes d'espace disque

Un espace disque insuffisant est une cause fréquente des problèmes de récupération de bases de données SQL. Les opérations de récupération nécessitent un espace supplémentaire pour les fichiers temporaires et l'augmentation de la taille des journaux.

4.1 Identification des problèmes d'espace disque

  1. Ouvrez Explorateur de fichiers
  2. Accéder aux lecteurs contenant des fichiers de base de données
  3. Vérifiez l'espace libre disponible
  4. Assurez au moins 10 à 20 % d'espace libre pour les opérations de récupération

4.2 Libérer de l'espace disque

  1. Supprimez les fichiers temporaires inutiles.
  2. Effacer SQL Server fichiers de sauvegarde si l'espace est critique
  3. Déplacer les fichiers non essentiels vers d'autres lecteurs
  4. Réduisez la taille des autres fichiers de base de données si possible

Réduire les fichiers de base de données (à utiliser avec précaution) :

DBCC SHRINKFILE (logicalfilename, target_size);

4.3 Configuration de la base de données en ligne après la correction de l'espace

Une fois l’espace disponible, essayez de mettre la base de données en ligne :

ALTER DATABASE [DatabaseName] SET ONLINE;

5. Correction n°3 : Définir SQL Server Service à démarrage retardé

Paramètres SQL Server Le démarrage différé résout les problèmes de récupération de la base de données SQL en attente causés par des systèmes de stockage ou des lecteurs réseau qui ne sont pas prêts lors du démarrage du système.

5.1 Comprendre les problèmes de synchronisation

Des problèmes de synchronisation surviennent lorsque :

  • Le stockage SAN ou réseau prend du temps à s'initialiser
  • Les lettres de lecteur ne sont pas attribuées lors du démarrage précoce
  • Les lecteurs réseau nécessitent une authentification
  • Les contrôleurs de stockage ont besoin de temps d'initialisation

5.2 Configuration du démarrage différé

  1. Presse Touche Windows + R
  2. Type services.msc et appuyez sur Entrée
    Ouvrez la console des services Windows.
  3. Découvrez SQL Server exemple, comme SQL Server (SERVEUR MSSQL)
  4. Faites un clic droit et sélectionnez Propriétés
  5. Changer Type de démarrage à Automatique (début différé)
    Changer SQL Server Configurer le type de démarrage sur Automatique (Démarrage différé) pour résoudre le problème de récupération de la base de données SQL en attente.
  6. Cliquez à nouveau OK
  7. Redémarrez le système pour effectuer un test

5.3 Solutions alternatives pour le timing

Pour plus de contrôle, créez une tâche planifiée :

  1. Ouvrez Planificateur de tâches
  2. Cliquez à nouveau Action -> Créer une tâche de base
  3. Entrez le Nom et Description de la tâche, comme « Retarder le démarrage de SQL Server un service"
  4. complet » Gâchette à Quand l'ordinateur démarre
  5. complet » Action à Lancement du programme
  6. complet » Programme / Script au chemin complet de Sqlservr.exe, comme ceci : C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe. Vous pouvez utiliser la fonction de recherche de Windows pour le trouver.
  7. Dans la page d'arrivée, sélectionnez Ouvrir la boîte de dialogue Propriétés pour cette tâche lorsque je clique sur Terminer.
    Créer une tâche à démarrage différé SQL Server dans le planificateur de tâches Windows.
  8. Cliquez à nouveau Finition.
  9. Dans la boîte de dialogue des propriétés de la tâche, cliquez sur triggers languette
  10. Sélectionnez le déclencheur et cliquez Modifier
    Modifiez le déclencheur de tâche dans la boîte de dialogue des propriétés de la tâche.
  11. Dans les paramètres avancés, cochez Tâche de retard pour : et réglez le temps sur 3 minutes.
    Configurez la tâche pour qu'elle démarre après 3 minutes afin de résoudre l'erreur de récupération de la base de données SQL en attente.
  12. Cliquez à nouveau D'ACCORD.

6. Correction n° 4 : Corriger les autorisations et les droits d'accès aux fichiers

Les problèmes d'autorisation empêchent SQL Server d'accéder aux fichiers de base de données, ce qui entraîne des états d'attente de récupération de la base de données SQL. Des autorisations de fichiers appropriées sont essentielles pour les opérations de base de données.

6.1 Problèmes d'autorisation courants

  • SQL Server le compte de service ne dispose pas de droits d'accès aux fichiers
  • Logiciel antivirus bloquant l'accès aux fichiers
  • Politiques de sécurité modifiées
  • Problèmes d'autorisation de partage réseau

6.2 Correction des autorisations des dossiers

  1. Accéder au dossier de fichiers de base de données
  2. Cliquez avec le bouton droit sur le dossier et sélectionnez Propriétés
  3. Cliquez sur Sécurité languette
  4. Cliquez à nouveau Modifier
  5. Ajoutez le SQL Server compte de service si manquant
  6. Subvention contrôle total autorisations
  7. Cliquez à nouveau OK pour appliquer les modifications

Vérifiez et corrigez l'autorisation du SQL Server compte de service pour le SQL Server dossier de données.

Utilisation de la ligne de commande (icacls) :

icacls "C:\Data" /grant "NT SERVICE\MSSQLSERVER":F /T

6.3 Considérations relatives au compte de service

Vérifiez le SQL Server compte de service :

  1. Ouvrez SQL Server Panneau de configuration
  2. Cliquez à nouveau SQL Server Services
  3. Noter la Se connecter en tant que compte pour SQL Server
  4. Assurez-vous que ce compte dispose des autorisations appropriées

Vérifiez la SQL Server compte de service pour résoudre le problème de récupération de la base de données SQL en attente.

7. Correction n° 5 : Correction manuelle du chemin d'accès au fichier

Des problèmes de chemin d'accès surviennent lors du déplacement de fichiers de base de données ou du changement de lettre de lecteur. Cette méthode met à jour SQL Serverles références de fichiers internes sans déplacer les fichiers réels.

7.1 Lorsque des problèmes de chemin surviennent

  • Modifications du matériel du serveur
  • Réaffectations de lettres de lecteur
  • Modifications du chemin réseau
  • Déplacements de fichiers de base de données

7.2 Correction des chemins de fichiers

  1. Identifier les chemins de fichiers actuels dans les journaux d'erreurs
  2. Localiser les fichiers de base de données réels
  3. Utilisez ALTER DATABASE pour mettre à jour les chemins

Mettre à jour le chemin du fichier de données :

ALTER DATABASE [DatabaseName] 
MODIFY FILE (NAME = 'LogicalDataFileName', FILENAME = 'C:\NewPath\DatabaseName.mdf');

Chemin du fichier journal de mise à jour :

ALTER DATABASE [DatabaseName] 
MODIFY FILE (NAME = 'LogicalLogFileName', FILENAME = 'C:\NewPath\DatabaseName_Log.ldf');

7.3 Étapes de vérification

  1. Recommencer SQL Server service
  2. Vérifier l'état de la base de données
  3. Vérifier les journaux d'erreurs pour les messages liés au chemin
  4. Tester la connectivité de la base de données

8. Correction n° 6 : mettre la base de données hors ligne, puis en ligne

Ce simple changement d'état peut résoudre les problèmes mineurs de récupération de base de données SQL en cours en forçant une transition d'état propre et en supprimant les verrous temporaires.

8.1 Quand cette méthode fonctionne

  • Incohérences mineures de l'état
  • Verrous de ressources temporaires
  • Le processus de récupération simple réinitialise
  • Conditions d'erreur non critiques

8.2 Procédure hors ligne/en ligne

  1. Assurez-vous qu'il n'y a pas de connexions actives à la base de données
  2. Exécuter la commande hors ligne
  3. Attends quelques secondes
  4. Exécuter la commande en ligne

Méthode sûre (attend la fermeture des connexions) :

ALTER DATABASE [DatabaseName] SET OFFLINE;
ALTER DATABASE [DatabaseName] SET ONLINE;

Méthode immédiate (termine les connexions) :

ALTER DATABASE [DatabaseName] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [DatabaseName] SET ONLINE;

8.3 Risques et considérations

Mise en garde: L'utilisation de ROLLBACK IMMEDIATE peut entraîner la perte de données des transactions non validées. N'utilisez cette option que si nécessaire et assurez-vous que les utilisateurs sont déconnectés.

9. Correction n° 7 : Désactiver la fonction de fermeture automatique

La fonction FERMETURE AUTOMATIQUE peut entraîner des problèmes de récupération de base de données SQL lorsque les bases de données s'ouvrent et se ferment fréquemment, créant des conflits de synchronisation pendant les opérations de récupération.

9.1 Comprendre l'impact de la FERMETURE AUTOMATIQUE

  • La base de données se ferme après la déconnexion du dernier utilisateur
  • Doit récupérer à chaque ouverture de la base de données
  • Crée des cycles de récupération fréquents
  • Peut interférer avec d'autres opérations

9.2 Désactivation de la FERMETURE AUTOMATIQUE

Utilisation de T-SQL :

ALTER DATABASE [DatabaseName] SET AUTO_CLOSE OFF;

L'utilisation de SQL Server Atelier de gestion :

  1. Faites un clic droit sur la base de données
  2. Sélectionner Propriétés
  3. Allez dans Options page
  4. complet » Fermeture automatique à Faux
  5. Cliquez à nouveau OK

Désactiver la propriété de fermeture automatique pour un SQL Server base de données dans SQL Server Management Studio pour résoudre le problème de récupération de la base de données SQL en attente.

9.3 Paramètres AUTO associés

Pensez également à désactiver AUTO_SHRINK pour de meilleures performances :

ALTER DATABASE [DatabaseName] SET AUTO_SHRINK OFF;

10. Solution n° 8 : Supprimez le fichier journal corrompu et redémarrez.

Cette méthode fonctionne lorsque le fichier journal des transactions est gravement corrompu et irréparable. Elle ne doit être utilisée que dans les environnements de développement ou lorsque la perte de données est acceptable.

10.1 Quand la suppression du journal est appropriée

⚠️ AVERTISSEMENT CRITIQUE : Cette méthode entraîne une perte de données !

Utiliser uniquement lorsque :

  • Travailler avec des bases de données de développement/test
  • Le fichier journal est complètement corrompu
  • Aucune autre option de récupération n'existe
  • Les sauvegardes récentes sont disponibles

10.2 Procédure de suppression du fichier journal

  1. Arrêter SQL Server service complet
  2. Accéder à l'emplacement du fichier de base de données
  3. Supprimer le fichier .LDF (conserver le fichier .MDF)
  4. Commencer SQL Server service
  5. SQL Server créera automatiquement un nouveau fichier journal

10.3 Avertissements importants

Conséquences de la perte de données :

  • Toutes les transactions non validées sont définitivement perdues.
  • La chaîne de journaux est rompue – les sauvegardes différentielles ne sont pas valides
  • La récupération à un moment donné devient impossible
  • À utiliser uniquement dans des environnements hors production

11. Correction n° 9 : Détacher et rattacher la base de données

Détachement et rattachement des forces SQL Server Pour reconstruire les fichiers journaux manquants ou corrompus. Cette méthode peut résoudre les problèmes de récupération de la base de données SQL lorsque les fichiers journaux sont problématiques.

11.1 Quand Détacher/Rattacher fonctionne

  • Fichiers journaux manquants
  • En-têtes de fichiers journaux corrompus
  • Modifications du chemin du fichier journal
  • Scénarios de corruption simples

11.2 Procédure standard de détachement/rattachement

  1. Configurez d'abord la base de données en mode d'urgence
  2. Passer en mode multi-utilisateur
  3. Détacher la base de données
  4. Rattacher en utilisant uniquement le fichier MDF
-- Set to emergency mode
ALTER DATABASE [DatabaseName] SET EMERGENCY;
ALTER DATABASE [DatabaseName] SET MULTI_USER;

-- Detach database
EXEC sp_detach_db '[DatabaseName]';

-- Re-attach with single file (MDF only)
EXEC sp_attach_single_file_db 
    @DBName = '[DatabaseName]', 
    @physname = N'C:\Data\DatabaseName.mdf';

11.3 Méthodes de fixation alternatives

Pour les scénarios à fichiers multiples :

CREATE DATABASE [DatabaseName] 
ON (FILENAME = 'C:\Data\DatabaseName.mdf'),
   (FILENAME = 'C:\Data\DatabaseName_2.ndf')
FOR ATTACH;

12. Correction n° 10 : Reconstruire les fichiers journaux des transactions

La reconstruction du journal crée un nouveau fichier journal des transactions lorsque l'original est manquant ou irrémédiablement endommagé. Cette méthode résout les problèmes de récupération de la base de données SQL en attente, mais entraîne une perte de données.

12.1 Quand la reconstruction du journal est nécessaire

  • Fichiers LDF manquants après une panne matérielle
  • Journaux de transactions gravement corrompus
  • Modifications du chemin du fichier journal qui ne peuvent pas être corrigées
  • Situations de récupération d'urgence

12.2 Processus de reconstruction du journal

⚠️ ATTENTION : Ceci entraîne une perte de données !

  1. Mettre la base de données en mode d'urgence
  2. Utiliser la commande REBUILD LOG
  3. Spécifier le nouvel emplacement du fichier journal
  4. Mettre la base de données en ligne
ALTER DATABASE [DatabaseName] SET EMERGENCY;
GO

ALTER DATABASE [DatabaseName] REBUILD LOG ON 
(NAME = 'DatabaseName_Log', FILENAME = 'C:\Logs\DatabaseName_Log.ldf');
GO

ALTER DATABASE [DatabaseName] SET ONLINE;
GO

12.3 Comprendre les implications de la perte de données

La reconstruction du journal provoque :

  • Perte de toutes les transactions non validées
  • Numéros de séquence de journaux brisés
  • Impossibilité d'appliquer les sauvegardes de journaux ultérieures
  • La récupération à un moment donné devient impossible

13. Correction n°11 : Réparation du mode d'urgence avec DBCC CHECKDB

La réparation en mode d'urgence est une méthode de dernier recours pour la récupération des bases de données SQL en cas de problème causé par une corruption. Cette méthode permet de réparer les bases de données, mais peut entraîner une perte de données importante.

13.1 Comprendre le mode d'urgence

⚠️ AVERTISSEMENT EXTRÊME : Risque élevé de perte de données !

Utilisez le mode d’urgence uniquement lorsque :

  • Toutes les autres méthodes ont échoué
  • Aucune sauvegarde récente n'est disponible
  • Une récupération de données est préférable à une perte totale
  • La base de données est gravement corrompue

13.2 Procédure de réparation d'urgence

  1. Effectuez d’abord une sauvegarde des fichiers de base de données corrompus
  2. Mettre la base de données en mode d'urgence
  3. Passer en mode mono-utilisateur
  4. Exécutez CHECKDB avec l'option de réparation
  5. Retour au mode multi-utilisateur
-- Step 1: Set to emergency mode
ALTER DATABASE [DatabaseName] SET EMERGENCY;
GO

-- Step 2: Single user mode
ALTER DATABASE [DatabaseName] SET SINGLE_USER;
GO

-- Step 3: Repair with no data loss
DBCC CHECKDB ([DatabaseName], REPAIR_REBUILD) WITH ALL_ERRORMSGS;
GO

-- Step 4: Return to multi-user
ALTER DATABASE [DatabaseName] SET MULTI_USER;
GO

13.3 Évaluation post-réparation

  1. Examiner la sortie CHECKDB pour les actions de réparation
  2. Vérifier les tables ou les données manquantes
  3. Vérifier les fonctionnalités critiques des applications
  4. En cas de perte de données trop importante, envisagez une restauration à partir d'une sauvegarde. Pensez à restaurer vos données à partir d'une sauvegarde si vous avez perdu trop de données.

14. Correction n° 12 : Vérifier et corriger la configuration FILESTREAM

Les problèmes de configuration de FILESTREAM peuvent entraîner des problèmes de récupération de bases de données SQL. Cette méthode corrige les échecs de récupération spécifiques à FILESTREAM.

14.1 Problèmes de récupération liés à FILESTREAM

  • Échecs de connexion du pilote FILESTREAM
  • Incompatibilités de configuration entre SQL Server et système d'exploitation
  • Problèmes de synchronisation lors du démarrage du service
  • Problèmes d'autorisation avec les conteneurs FILESTREAM

14.2 Dépannage de FILESTREAM

  1. Vérifier le niveau de configuration de FILESTREAM
  2. Vérifiez que la fonctionnalité Windows est activée
  3. Redémarrez les services requis
  4. Vérifier les autorisations du conteneur FILESTREAM

Vérifiez la configuration de FILESTREAM :

SELECT SERVERPROPERTY('FilestreamEffectiveLevel') AS CurrentLevel;

Activer FILESTREAM au niveau de l'instance :

EXEC sp_configure 'filestream access level', 2;
RECONFIGURE;

14.3 Meilleures pratiques FILESTREAM

  • Garantir une configuration cohérente lors des redémarrages
  • Vérifiez que les chemins des conteneurs FILESTREAM sont accessibles
  • Vérifiez que la fonctionnalité FILESTREAM de Windows est correctement activée
  • Surveiller les messages d'erreur liés à FILESTREAM

15. Correction n°13 : Mise à jour SQL Server Packs de versions/services

Plus agé SQL Server Certaines versions, notamment les versions RTM, contiennent des bugs connus qui entraînent des problèmes de récupération de bases de données SQL. La mise à jour vers les derniers Service Packs corrige ces problèmes.

15.1 Problèmes connus dans les anciennes versions

  • SQL Server Bugs de récupération RTM 2005
  • Correctifs spécifiques au Service Pack pour les processus de récupération
  • Mises à jour cumulatives traitant des cas extrêmes
  • Problèmes de compatibilité avec les versions plus récentes de Windows

15.2 Processus de mise à jour

  1. Vérifier le courant SQL Server version
  2. Identifier le dernier service pack disponible
  3. Télécharger à partir de Centre de téléchargement Microsoft Lien externe
  4. Fenêtre de maintenance planifiée
  5. Installer le service pack
  6. Redémarrer les services
  7. Vérifier la fonctionnalité de la base de données

Vérifier la version actuelle :

SELECT @@VERSION;

15.3 Vérification post-mise à jour

  1. Confirmer que le numéro de version a changé
  2. Vérifiez que toutes les bases de données sont correctement en ligne
  3. Exécuter des tests de fonctionnalités de base
  4. Surveillez les journaux d'erreurs pour détecter tout nouveau problème

16. Correction n° 14 : Restaurer la base de données à partir d'une sauvegarde

Lorsque les problèmes en suspens de récupération d'une base de données SQL ne peuvent être résolus par des méthodes de réparation, la restauration à partir d'une sauvegarde valide constitue la solution la plus fiable avec des limites de perte de données prévisibles.

16.1 Lorsque la restauration de sauvegarde est la solution

  • Plusieurs tentatives de réparation ont échoué
  • Les données de production critiques nécessitent une certitude
  • Il existe une fenêtre acceptable de perte de données
  • La corruption est trop étendue pour être réparée

16.2 Processus de restauration complète de la base de données

  1. Identifiez la sauvegarde utilisable la plus récente
  2. Assurez-vous d'avoir suffisamment d'espace disque pour la restauration
  3. Mettre la base de données hors ligne ou la supprimer si nécessaire
  4. Restaurer à partir du fichier de sauvegarde
  5. Appliquer les sauvegardes de journaux si disponibles

Restauration de base à partir d'une sauvegarde complète :

RESTORE DATABASE [DatabaseName] 
FROM DISK = 'C:\Backups\DatabaseName.bak'
WITH REPLACE;

Restaurer avec des sauvegardes de journaux pour une récupération à un instant T :

RESTORE DATABASE [DatabaseName] 
FROM DISK = 'C:\Backups\DatabaseName.bak'
WITH NORECOVERY, REPLACE;

RESTORE LOG [DatabaseName] 
FROM DISK = 'C:\Backups\DatabaseName_Log.trn'
WITH RECOVERY;

16.3 Vérification et tests

  1. Vérifier que la base de données est correctement mise en ligne
  2. Vérifiez l'intégrité des données avec CHECKDB
  3. Tester les fonctions critiques de l'application
  4. Confirmer que la sauvegarde/restauration est terminée sans erreur

Référence 16.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.

17. Correction n° 15 : Outils professionnels de récupération SQL

Lorsque les méthodes manuelles ne parviennent pas à résoudre les problèmes de récupération de base de données SQL en attente, un logiciel de récupération spécialisé peut extraire les données de bases de données gravement corrompues qui ne peuvent pas être réparées par des méthodes standard.

17.1 Quand envisager des outils tiers

  • Corruption grave au-delà des capacités de réparation manuelle
  • Données critiques sans sauvegardes disponibles
  • Plusieurs tentatives de réparation manuelle infructueuses
  • Exigences de récupération critiques dans le temps

17.2 DataNumen SQL Recovery

DataNumen SQL Recovery est une SQL Server outil de récupération de base de données.

Voici les étapes à suivre pour l'utiliser :

  1. Arrêter le SQL Server Service.
    Arrêter le SQL Server service dans la console des services.
  2. Faites une copie des fichiers de la base de données en attente de récupération, y compris le fichier MDF principal et les fichiers NDF secondaires.
  3. Commencer le SQL Server Service.
  4. Commencer DataNumen SQL Recovery.
  5. Sélectionnez la copie, au lieu du fichier original, comme source de la base de données à récupérer.
  6. Cliquez sur « Démarrer la récupération » 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 et résolvez l'erreur de récupération de la base de données SQL en attente.

18. Scénarios de dépannage avancés

Les environnements complexes nécessitent des approches spécialisées pour résoudre les problèmes de récupération de base de données SQL en attente.

18.1 Problèmes liés aux fichiers de base de données multiples

Les bases de données contenant plusieurs fichiers de données (NDF) nécessitent une manipulation prudente :

  • Identifier les groupes de fichiers concernés
  • Vérifiez l'accessibilité de tous les fichiers NDF
  • Envisagez des options de récupération spécifiques aux groupes de fichiers
  • Gérer les groupes de fichiers en lecture seule de manière appropriée

18.2 Groupes de disponibilité Always On

Récupération de base de données SQL en cours Toujours environnements:

  • Vérifiez d’abord l’état de la réplique principale
  • Vérifier l'état de synchronisation
  • Envisagez de supprimer et de rajouter la réplique problématique
  • Examiner la configuration du groupe de disponibilité

18.3 Scénarios de cluster et de haute disponibilité

Récupération de base de données SQL en cours cluster de basculement et la haute disponibilité scénarios:

  • Vérifier l'accessibilité du stockage partagé
  • Vérifier les communications des nœuds du cluster
  • Examiner les journaux du cluster de basculement
  • Assurer une résolution DNS appropriée

18.4 Problèmes liés à WMI et au niveau du système

Des problèmes au niveau du système peuvent entraîner des problèmes de base de données :

  • Corruption du référentiel WMI
  • Échec des mises à jour Windows
  • Corruption du registre
  • Problèmes de dépendance aux services

19. Stratégies de prévention

Il est plus efficace d’empêcher les problèmes de récupération de base de données SQL de se produire que de les résoudre une fois qu’ils se produisent.

19.1 Meilleures pratiques de sauvegarde

  1. Mettre en œuvre des planifications de sauvegarde complètes automatisées
  2. Configurer des sauvegardes différentielles régulières
  3. Configurer des sauvegardes fréquentes du journal des transactions
  4. Testez régulièrement les procédures de restauration des sauvegardes
  5. Stockez les sauvegardes sur des systèmes de stockage distincts
  6. Vérifiez l'intégrité de la sauvegarde avec RESTORE VERIFYONLY

19.2 Surveillance et entretien

  1. Configurer des alertes de surveillance de l'espace disque
  2. Planifier des opérations DBCC CHECKDB régulières
  3. Écran tactile SQL Server journaux d'erreurs quotidiens
  4. Mettre en œuvre le surveillance de référence des performances
  5. Configurer SQL Server Alertes d'agent en cas d'erreurs critiques

19.3 Considérations relatives à l'infrastructure

  • Installer des systèmes UPS pour la protection de l'alimentation
  • Utilisez un stockage de qualité professionnelle avec redondance
  • Mettre en œuvre des procédures d'arrêt appropriées
  • Assurer la stabilité du réseau pour le stockage partagé
  • Surveillance régulière de l'état du matériel

19.4 SQL Server Meilleures pratiques de configuration

  • Choisir des modèles de récupération appropriés
  • Configurer des paramètres de croissance automatique raisonnables
  • Séparer les fichiers de données et les fichiers journaux sur des lecteurs différents
  • Utilisez des comptes de service dédiés avec des privilèges minimaux
  • Rester SQL Server mis à jour avec les derniers service packs

20. Arbre de décision et méthodologie de dépannage

Suivez cette approche systématique lorsque vous rencontrez des problèmes de récupération de base de données SQL en attente.

20.1 Approche diagnostique systématique

  1. Vérifiez d’abord les journaux d’erreurs – Commencez toujours par SQL Server et les journaux Windows
  2. Vérifier l'accessibilité du fichier – Assurez-vous que tous les fichiers de base de données existent et sont lisibles
  3. Vérifier l'espace disque – Confirmer un espace adéquat pour les opérations de récupération
  4. Essayez d’abord des solutions simples – Redémarrage du service, hors ligne/en ligne
  5. Progression vers des réparations complexes – Seulement après l’échec des méthodes simples
  6. Envisager une restauration à partir d'une sauvegarde – Lorsque les risques de réparation sont trop élevés

20.2 Choisir la bonne méthode de réparation

Faible risque (essayez d'abord) :

  • Recommencer SQL Server services
  • Vérifier et résoudre l'espace disque
  • Corriger les autorisations de fichiers
  • Base de données hors ligne/en ligne

Risque moyen:

  • Corrections du chemin d'accès au fichier
  • Désactiver la FERMETURE AUTOMATIQUE
  • Corrections de configuration FILESTREAM
  • Service retardé au démarrage

Risque élevé (perte de données possible) :

  • Supprimez le fichier journal et redémarrez.
  • Détacher/rattacher la base de données
  • Reconstruire les journaux de transactions
  • Réparation en mode d'urgence avec DBCC CHECKDB

20.3 Quand faire appel à une escalade

Demandez l’aide d’un professionnel lorsque :

  • Plusieurs méthodes à haut risque ont échoué
  • La base de données contient des données critiques irremplaçables
  • La corruption affecte plusieurs bases de données
  • Des problèmes au niveau du système sont suspectés
  • Les contraintes de temps exigent des résultats garantis

21. FAQ

Q : Quelle est la différence entre les états de base de données « RÉCUPÉRATION » et « RÉCUPÉRATION EN ATTENTE » ?

R : « RÉCUPÉRATION » signifie que la base de données effectue activement des opérations de récupération et sera automatiquement mise en ligne une fois l'opération terminée. « RÉCUPÉRATION EN ATTENTE » signifie SQL Server Le processus de récupération ne peut démarrer en raison d'un obstacle tel que des fichiers manquants, un espace insuffisant ou une corruption des données. La récupération est en attente et nécessite une intervention manuelle.

Q : Quelle solution dois-je essayer en premier lorsque je rencontre des problèmes de récupération de base de données SQL en attente ?

A : Commencez toujours par les méthodes les plus sûres. Vérifiez SQL Server Consultez les journaux d'erreurs, vérifiez l'espace disque disponible, puis essayez de redémarrer. SQL Server Ces services, grâce à leurs approches à faible risque, permettent de résoudre la plupart des problèmes de récupération en attente sans aucun risque de perte de données.

Q : Combien de temps dois-je attendre avant d’essayer une autre méthode de réparation ?

A : Pour les redémarrages de service, patientez 2 à 3 minutes pour un démarrage complet. Pour les changements d'état simples (hors ligne/en ligne), patientez 30 à 60 secondes. Pour les réparations complexes (DBCC CHECKDB), prévoyez plusieurs heures selon la taille de la base de données. N'interrompez pas les processus de récupération une fois lancés.

Q : Vais-je perdre des données lors de la résolution des problèmes de récupération de base de données SQL en attente ?

A : La perte de données dépend de la méthode utilisée. Les méthodes sûres, comme le redémarrage des services, la réparation de l'espace disque et la correction des permissions, ne provoquent aucune perte de données. Les méthodes à haut risque, comme la réparation en mode d'urgence, la reconstruction des journaux ou la suppression des fichiers journaux, peuvent entraîner une perte de données importante. Privilégiez toujours les méthodes sûres.

Q : Puis-je empêcher que des problèmes de récupération de base de données SQL en attente ne se produisent ?

R : Oui, la plupart des problèmes sont évitables grâce à une maintenance appropriée. Mettez en place des sauvegardes régulières, surveillez l'espace disque, maintenez une capacité de stockage suffisante, utilisez une protection UPS, effectuez régulièrement des opérations DBCC CHECKDB et conservez SQL Server mis à jour avec les derniers service packs.

Q : Dois-je tenter d’effectuer des réparations sur les bases de données de production pendant les heures ouvrables ?

A : N’effectuez jamais de réparations à haut risque sur les bases de données de production pendant les heures ouvrables. Planifiez des fenêtres de maintenance pour les réparations complexes. En revanche, des méthodes sûres comme le redémarrage des services ou la libération d’espace disque peuvent être tentées immédiatement si elles bloquent des opérations critiques.

Q : Quand dois-je restaurer à partir d’une sauvegarde au lieu de tenter des réparations ?

R : Restaurez à partir d'une sauvegarde lorsque plusieurs tentatives de réparation échouent, lorsque vous traitez des données de production critiques qui ne peuvent pas risquer une corruption supplémentaire, lorsque vous disposez de sauvegardes récentes avec des fenêtres de perte de données acceptables ou lorsque les méthodes de réparation prennent plus de temps que les opérations de restauration.

Q : Comment savoir si mes fichiers de base de données sont corrompus ou simplement inaccessibles ?

Un chèque SQL Server Journaux d'erreurs pour des messages d'erreur spécifiques. Les problèmes d'accessibilité aux fichiers affichent des erreurs de type « Fichier introuvable » ou des erreurs d'autorisation. Une corruption se manifeste généralement par des erreurs de somme de contrôle, des erreurs au niveau de la page ou des violations de cohérence. Utilisez DBCC CHECKDB pour tester avec certitude la corruption lorsque la base de données est accessible.

Q : Quel est le moyen le plus sûr de copier les fichiers de base de données avant de tenter des réparations ?

A : Arrête SQL Server service, puis copiez les fichiers MDF et LDF vers un emplacement de sauvegarde. Vous pouvez également utiliser les commandes de sauvegarde de la base de données si celle-ci est encore accessible. Ne copiez jamais de fichiers pendant SQL Server est en cours d'exécution car cela peut créer des copies incohérentes.

Q : Les problèmes de récupération de base de données SQL en attente peuvent-ils affecter plusieurs bases de données simultanément ?

R : Oui, des problèmes au niveau du système tels qu'un espace disque insuffisant, des problèmes de compte de service, des pannes de stockage ou SQL Server Les erreurs de configuration peuvent affecter plusieurs bases de données. Vérifiez toujours si d'autres bases de données rencontrent des problèmes similaires afin d'identifier des problèmes système plus généraux.

Q : À quelle fréquence dois-je tester mes procédures de restauration de base de données ?

A : Testez les procédures de restauration mensuellement pour les bases de données critiques et trimestriellement pour les bases de données importantes. Incluez différents scénarios de restauration, comme la récupération à un instant T, la restauration de séquences de journaux et les procédures de restauration d'urgence. Documentez et chronométrez chaque test pour la planification des mesures d'urgence.

Q : Quand dois-je contacter le support Microsoft ou faire appel à une aide professionnelle ?

R : Demandez l’aide d’un professionnel lorsque plusieurs tentatives de réparation échouent, lorsque vous traitez des données critiques sans sauvegarde, lorsque vous êtes confronté à une corruption complexe dans plusieurs bases de données, lorsque vous rencontrez des messages d’erreur non documentés ou lorsque des contraintes de temps nécessitent des résultats de récupération garantis.

Q : Les outils de récupération SQL tiers valent-ils l’investissement ?

A: Les outils de récupération sont précieux lorsque les méthodes manuelles échouent et qu'aucune sauvegarde n'est disponible. La plupart proposent des versions d'évaluation gratuites pour tester leur efficacité avant l'achat. Il est important de comparer le coût avec les services professionnels, la valeur des données et les chances de succès. Ces outils sont particulièrement performants en cas de corruption structurelle, mais peuvent ne pas récupérer tous les types de données.

Q : Que dois-je faire si la récupération de la base de données SQL en attente continue de se produire ?

R : Des problèmes récurrents indiquent des problèmes système sous-jacents. Vérifiez les pannes matérielles, les ressources insuffisantes, les problèmes de stockage ou de configuration. Surveillez les journaux d’événements Windows, mettez en place une surveillance complète et envisagez de mettre à niveau votre matériel ou de migrer vers des systèmes de stockage plus fiables.

22. Conclusion et référence rapide

Les problèmes en suspens de récupération de bases de données SQL peuvent être résolus à l'aide de ces 15 méthodes éprouvées, allant de simples redémarrages de service à des réparations d'urgence complexes.

22.1 Tableau récapitulatif des correctifs rapides

Méthode de correction Niveau de risque Risque de perte de données Idéal pour
Recommencer SQL Server Low Aucun Problèmes de synchronisation, verrous temporaires
Vérifier l'espace disque Low Aucun Pannes liées à l'espace
Démarrage retardé Low Aucun Problèmes de synchronisation de stockage
Autorisations de correctifs Low Aucun Erreurs d'accès refusé
Chemins de fichiers corrects Low Aucun Changements de chemin, migrations
Déconnecté en ligne Moyenne Un petit peu Incohérences étatiques
Désactiver la FERMETURE AUTOMATIQUE Low Aucun Cycles d'ouverture/fermeture fréquents
Supprimer le fichier journal Haute Oui Journaux corrompus, environnements de développement
Détacher/rattacher Haute Oui Journaux manquants ou corrompus
Reconstruire les journaux Haute Oui Fichiers LDF manquants
Réparation d'urgence avec DBCC CHECKDB Très élevé Oui Corruption grave, dernier recours
Correction de FILESTREAM Moyenne Aucun Problèmes de configuration de FILESTREAM
Mises à jour SQL Server Moyenne Aucun Bogues de version connus
Restore depuis une sauvergarde Low Contrôlé Lorsque les méthodes de réparation échouent
Outils de récupération Moyenne Variable Corruption grave, aucune sauvegarde

22.2 Liste de contrôle des interventions d'urgence

Les 5 premières minutes :

  1. Vérifiez SQL Server journaux d'erreurs
  2. Vérifier l'accessibilité du fichier de base de données
  3. Vérifier l'espace disque disponible
  4. Tentative de redémarrage du service
  5. Messages d'erreur du document

15 prochaines minutes :

  1. Essayez hors ligne/en ligne si le redémarrage du service a échoué
  2. Vérifiez et corrigez les problèmes d’autorisation évidents
  3. Vérifiez que les chemins d'accès aux fichiers sont corrects
  4. Consulter les journaux d'événements Windows
  5. Évaluer la disponibilité des sauvegardes

22.3 Ressources supplémentaires

N'oubliez pas : la prévention, grâce à des sauvegardes, une surveillance et une maintenance appropriées, est toujours préférable à la récupération. Des tests réguliers de ces procédures dans des environnements hors production vous permettent d'être prêt en cas de problèmes de récupération de bases de données 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: