Partage maintenant:
Table des Matières cacher

Lorsque votre base de données SQL est bloquée en attente de récupération, elle devient inaccessible et ses opérations s'interrompent. Ce guide complet propose 15 méthodes éprouvées pour résoudre les problèmes de récupération de bases de données SQL, de la simple récupération.tarts 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 reconnaît qu'une base de données a besoin d'être récupérée mais ne peut pastarLors du processus de récupération. 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 start
  • 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 servicestarproblèmes de synchronisation tup
  • 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. Diagnostic initialostÉtapes ic

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. Correction n° 1 : Réstart SQL Server Services

Restarting SQL Server Les services résolvent 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 de temporaret conflits de ressources.

3.1 Lorsque le service Restart Travaux

Cette méthode est efficace pour :

  • Temporary verrous de ressources pendant startube
  • Retards de disponibilité des disques
  • Problèmes de synchronisation de dépendance de service
  • Conflits de configuration mineurs

3.2 Comment résoudretart 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. Choisir Recommencer
  5. Attendez que le service soit complètement rétablitart

Restart 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

Restart 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 Post-Réstart Vérification

  1. Attendez 2 à 3 minutes pour que le s complettartube
  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 de 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 accélérer le processus.rary fichiers et croissance 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. Supprimer le tempo inutilerary fichiers
  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 aux retardés Start

Paramètres SQL Server à retardé start résout les problèmes de récupération de 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 S retardétart

  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 Startype de tup à Automatique (S différé)tart)
    Changer SQL Server startype tup sur Automatique (Retardé Start) pour résoudre le problème de récupération de la base de données SQL en attente.
  6. Cliquez à nouveau OK
  7. Restarle système à tester

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 « Retard start de SQL Server un service"
  4. complet » Gâchette à Lorsque l'ordinateur starts
  5. complet » Action à Starprogramme ta
  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 pour retarder start 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.
    Définir la tâche sur retardé start après 3 minutes pour 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. Restart 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 la base de données SQL en forçant une transition d'état propre et en effaçant le temporary serrures.

8.1 Quand cette méthode fonctionne

  • Incohérences mineures de l'état
  • Temporaret verrous de ressources
  • 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. Choisir 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. Correction n° 8 : Supprimer le fichier journal corrompu et le résoudretart

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. Start 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 lost définitivement
  • 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 Post-Évaluation de la 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. Envisagez de restaurer à partir d'une sauvegarde si trop de données lost

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 pendant le servicetartube
  • 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. Restarles 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

  • Assurer une configuration cohérente sur l'ensemble des ressourcestarts
  • 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. Restarservices t
  7. Vérifier la fonctionnalité de la base de données

Vérifier la version actuelle :

SELECT @@VERSION;

15.3 Post-Vérification de la 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 de récupération de base de données SQL en attente ne peuvent pas être résolus par des méthodes de réparation, la restauration à partir d'une sauvegarde connue et en bon état fournit la solution.ost solution 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. Identifier le most sauvegarde utilisable 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. Start le SQL Server Service.
  4. Start 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 "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 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. Configurez 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 – Toujours start avec 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 – Service restart, 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) :

  • Restart 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é start

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

  • Supprimer le fichier journal et restart
  • 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 ne peut pas starLe processus de récupération est interrompu en raison d'un obstacle tel que des fichiers manquants, un espace insuffisant ou une corruption. La récupération en attente 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 : Toujours starCommencez par les méthodes les plus sûres. Vérifiez SQL Server journaux d'erreurs, vérifiez la disponibilité de l'espace disque, puis essayez de résoudretarting SQL Server services. Ces approches à faible risque résolvent most problèmes de récupération courants 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 services de rétarts, attendez 2 à 3 minutes pour terminer starPour les changements d'état simples, comme le passage en ligne/hors ligne, attendez 30 à 60 secondes. Pour les réparations complexes, comme 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 terminés.tarTed.

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 ?

R : La perte de données dépend de la méthode utilisée. Des méthodes sûres comme la restauration de servicetarLes correctifs de ts, d'espace disque et d'autorisations n'entraînent 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 des pertes de données importantes. 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 ?

A : Oui, most Les problèmes peuvent être évités grâce à une maintenance adéquate. Effectuez des sauvegardes régulières, surveillez l'espace disque, maintenez une capacité de stockage adéquate, utilisez la protection UPS, effectuez les opérations DBCC CHECKDB de routine 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 ?

R : N'essayez jamais de réparer des bases de données de production à haut risque pendant les heures ouvrables. Prévoyez des créneaux de maintenance pour les réparations complexes. Cependant, des méthodes sûres, comme la réparation de service, sont recommandées.tarDes correctifs d'espace disque ou de ts peuvent être tentés immédiatement s'ils 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 utiles lorsque les méthodes manuelles échouent et qu'aucune sauvegarde n'existe. Most Les outils proposent des versions d'évaluation gratuites pour tester la récupérabilité avant l'achat. Tenez compte du cost Comparaison des services professionnels, de la valeur des données et des probabilités de succès. Les outils sont particulièrement efficaces pour la corruption structurelle, mais ne peuvent 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 de récupération de base de données SQL en attente peuvent être résolus à l'aide de ces 15 méthodes éprouvées, allant de la simple résolution de servicetardes 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
Restart SQL Server Low Aucun Problèmes de timing, temporary serrures
Vérifier l'espace disque Low Aucun Pannes liées à l'espace
Retardé start 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. Tenter une réparation de servicetart
  5. Messages d'erreur du document

15 prochaines minutes :

  1. Essayez hors ligne/en ligne si le service persiste.tart 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: