Comprendre la maintenance de base de données

 

S’applique à : Exchange Server 2010 SP3

Dernière rubrique modifiée : 2016-11-28

Les modifications architecturales apportées au moteur de base de données dans Microsoft Exchange 2010 améliorent fortement ses performances et sa solidité. Cependant, ces changements influent également sur le comportement des tâches de maintenance de la base de données par rapport aux versions antérieures d'Exchange Server. Cette rubrique décrit les tâches de maintenance à réaliser régulièrement sur les bases de données Exchange Server 2010.

Toutes les tâches décrites dans cette rubrique sont regroupées sous l'appellation commune de maintenance de base de données en arrière-plan.

Compactage de la base de données

Le compactage de la base de données doit être réalisé pour libérer l'espace inutilisé dans le fichier de base de données. Le compactage de la base de données ne restitue pas cet espace inutilisé au système de fichiers. Il libère les pages de la base de données en compactant des enregistrements dans un nombre minimum de pages, et il réduit les E/S nécessaires pour accéder à ces pages. Pour y parvenir, le moteur de base de données ESE utilise des métadonnées, c'est-à-dire des informations qui décrivent les tables de la base de données. Le moteur de base de données ESE analyse chacune des pages de toutes les tables, et essaie de déplacer les enregistrements vers des pages classés logiquement.

Le compactage de base de données est important car il réduit le temps nécessaire à la sauvegarde du fichier de base de données. En outre, il aide à maintenir une taille de fichier de base de données prévisible. Ce dernier détail est important pour déterminer précisément la taille du stockage/des serveurs.

Le compactage de la base de données a fait l'objet d'une nouvelle conception dans Exchange Server 2010. Principale nouveauté, le fonctionnement donne maintenant priorité à la contiguïté des données sur la quantité de compactage. Les versions antérieures d'Exchange Serveur privilégiaient le compactage de l'espace. Ainsi, après la réorganisation des enregistrements pour dégager de l'espace, les pages se retrouvaient toujours dans un ordre aléatoire. Associé à l'architecture du schéma de la banque d'informations, cette réorganisation aléatoire provoquait des E/S aléatoires lors de chaque extraction d'un ensemble de données (par ex., téléchargement d'éléments dans un dossier). Dans Exchange Server 2010, le nombre d'E/S aléatoires est réduit car l'ordre des enregistrements est conservé dans les pages.

De même, dans les versions antérieures d'Exchange Server, les opérations de compactage de base de données s'effectuaient pendant la fenêtre de maintenance en ligne. Dans Exchange 2010, le compactage de base de données est maintenant un processus en arrière-plan qui s'exécute en permanence.

Défragmentation de la base de données

La défragmentation de la base de données (également appelée défragmentation d'arborescence B+ et OLD v2) est une nouvelle tâche de maintenance dans Exchange Server 2010. Cette opération est importante pour maintenir une utilisation efficace des ressources des disques sur la durée (E/S séquentielles et non pas aléatoires) et pour conserver la compacité des tables signalées comme séquentielles.

La défragmentation de la base de données est un processus en arrière-plan qui analyse continuellement la base de données et qui déclenche le travail asynchrone lorsque cela devient nécessaire. Le processus surveille les pages libres de toutes les tables. Si une table atteint un seuil auquel un pourcentage relativement élevé du nombre de page Arborescence B+ est libre, les pages libres sont renvoyées à la racine. Le processus travaille également pour maintenir la contiguïté au sein d'une table définie avec des indicateurs d'espace séquentiels (une table créée avec un modèle d'utilisation séquentiel connu). Si la défragmentation de la base de données détecte un balayage/une pré-lecture dans une table séquentielle, et si les enregistrements ne sont pas stockés sur des pages séquentielles dans la table, le processus défragmente cette section de la table en déplaçant toutes les pages affectées vers une nouvelle extension dans l'arborescence B+. Vous pouvez utiliser des compteurs de performance pour constater le faible niveau de travail actif réalisé par la défragmentation de base de données lorsqu'un état stable est atteint.

La défragmentation de la base de données comprend les contrôles suivants pour réguler la façon dont elle exécute les tâches :

  • Le nombre maximum de tâches exceptionnelles   Ce contrôle évite que la défragmentation de base de données n'effectue trop de travail lors du premier passage si la base de données a été modifiée de manière conséquente.

    Une limitation de latence de 100 ms   Lorsque le système est surchargé, la défragmentation de la base de données retarde son action. Le travail retardé est effectué lorsque la base de données se retrouve dans une même situation opérationnelle et que le système dispose de plus de ressources.

Analyse de la base de données en ligne (contrôle de parité de la base de données)

L'analyse de la base de données en ligne (également connu sous le nom de contrôle de parité de la base de données) est un processus dans lequel la base de données est lue en segments de grande taille et où chaque page est analysée pour y détecter tout endommagement physique. L'objet principal du contrôle de parité est de détecter les dommages physiques et les vidages perdus qui n'auraient pas été repérés par les opérations transactionnelles (pages caduques).

RemarqueRemarque :
Dans Exchange Server 2007 et versions antérieures, les opérations de contrôle de parité s'effectuaient pendant le processus de sauvegarde. Cependant, ce comportement posait problème avec les bases de données répliquées car le contrôle de parité s'effectuait uniquement pour la copie sauvegardée. Si la copie passive était sauvegardée, le contrôle de parité ne s'effectuait pas sur la copie active. Pour résoudre ce problème, une nouvelle tâche de maintenance en ligne facultative, appelée Contrôle de parité de maintenance en ligne, a été ajoutée à Exchange Server 2007 Service Pack 1 (SP1). Pour plus d'informations, voir Procédure de configuration de l'analyse des bases de données de la maintenance en ligne dans Exchange 2007 SP1 et SP2.

Dans Exchange 2010, l’analyse de base de données en ligne contrôle la parité de la base de données et exécute des opérations de blocage de banque Exchange 2010. L'espace peut diminuer à cause d'incidents. L'analyse de base de données en ligne recherche et récupère l'espace perdu. Le système présent dans Exchange 2010 est conçu en considérant que chaque base de données est intégralement analysée une fois tous les sept jours. Un événement d’avertissement est déclenché si une base de données n’est pas entièrement analysée dans ce délai. Dans Exchange 2010, il existe désormais deux nœuds pour exécuter l’analyse de base de données en ligne sur les copies de base de données actives :

  • Exécuter en tant que dernière tâche dans le processus de maintenance de la base de données de boîtes aux lettres : Vous pouvez configurer la durée d’exécution en modifiant la planification de la maintenance de la base de données de boîtes aux lettres. Vous pouvez utiliser cette option avec des bases de données de taille inférieure à 1 téraoctet. Dans ce cas, l’analyse complète dure moins longtemps.

  • Exécuter le comportement par défaut en arrière-plan 24 heures par jour, 7 jours par semaine : Cette option fonctionne bien pour toutes les tailles de base de données, mais nous la conseillons pour les bases de données de grande taille (1 à 2 To). Exchange analyse la base de données pas plus d'une fois par jour. Cette E/S en lecture est séquentielle à 100 % (et donc facile à lire sur le disque) et revient à un taux d’analyse d’environ 5 mégaoctets (Mo)/s sur la plupart des systèmes.

RemarqueRemarque :
  • L'environnement de ligne de commande Exchange Management Shell, la console de gestion Exchange et JetStress désignent le contrôle de parité de base de données sous le nom de maintenance de base de données en arrière-plan. Pour activer le contrôle de parité de base de données dans la console de gestion Exchange, cochez la case Activer la maintenance de base de données en arrière-plan (analyse ESE 24 X 7) dans Propriétés.

  • Pour activer le contrôle de parité de base de données dans l'environnement de ligne de commande Exchange Management Shell, entrez la cmdlet suivante : Set-MailboxDatabase -Identity MDB1 -BackgroundDatabaseMaintenance $true

  • Pour activer le contrôle de parité de base de données dans Jetstress 2010, cochez la case Exécuter la maintenance de base de données en arrière-plan dans la page Sélection d'un type de test.

Application de correctifs aux pages

L'application de correctifs aux pages remplace les pages endommagées par des copies intègres. La détection de pages endommagées est une fonction du contrôle de parité de la base de données. En outre, les pages endommagées sont détectées au moment de l'exécution lorsque la page est stockée dans le cache de base de données. L'application de correctifs aux pages fonctionne sur les copies de base de données à haute disponibilité (HA). Le mode de réparation d'une page endommagée dépend du caractère actif ou passif de la copie de base de données HA.

Processus d'application de correctifs aux pages sur les copies actives de base de données

  • Une ou plusieurs pages endommagées sont détectées.

  • Un marqueur est écrit dans le fichier journal actif. Ce marqueur indique le numéro de la page endommagée. Il indique également que la page doit être remplacée.

  • Une entrée est ajoutée à la liste de demandes des correctifs de pages.

  • Le fichier journal actif est fermé.

  • Le service de réplication envoie le fichier journal aux copies passives de la base de données.

  • Le service de réplication sur le serveur de boîte aux lettres cible reçoit le fichier journal et l'inspecte.

  • La banque d'informations sur le serveur cible relit le fichier journal jusqu'au marqueur, extrait sa version intègre de la page, fait appel au service de relecture, puis envoie la page au serveur de boîte aux lettres source.

  • Le serveur de boîte aux lettres source reçoit la version intègre de la page, confirme qu'une entrée existe dans la liste des demandes de correctifs de pages, puis écrit la page dans le tampon du journal. En conséquence, la page est insérée dans le cache de base de données.

  • L'entrée correspondante dans la liste de demandes de correctifs de pages est supprimée.

  • À ce stade, l'on considère que le correctif a été appliqué à la base de données. (Plus tard, le point de vérification avancera, le cache de base de données sera vidé et la page endommagée sur le disque sera remplacée.)

  • Toute autre copie de cette page (reçue d'une autre copie passive) sera supprimée sans avertissement. Ce comportement s'explique par le fait qu'il n'existe aucune entrée correspondante dans la liste des demandes de correctifs de pages.

Processus d'application de correctifs aux pages sur les copies passives de base de données

  • Sur le serveur de boîte aux lettres contenant les pages endommagées, la relecture du journal est mise en pause pour la copie de base de données affectée.

  • Le service de réplication se coordonne avec le serveur de boîte aux lettres qui héberge la copie active de base de données, et il récupère les pages endommagées et l'extrait du journal à partir de l'en-tête de base de données de la copie active.

  • Le serveur de boîte aux lettres met à jour l'en-tête de base de données pour la copie de base de données affectée et il insère le nouvel extrait de journal.

  • Le serveur de boîte aux lettres notifie le serveur de boîte aux lettres qui héberge la copie active de base de données au sujet des fichiers journaux dont il a besoin.

  • Le serveur de boîte aux lettres reçoit les fichiers journaux requis, puis les inspecte.

  • Le serveur de boîte aux lettres injecte les versions intègres des pages qu'il a récupérées dans la copie active de base de données. Les pages sont écrites dans la mémoire tampon du journal. En conséquence, la page est insérée dans le cache de base de données.

  • Le serveur de boîte aux lettres reprend la relecture du journal.

Mise à zéro des pages

La mise à zéro des pages de base de données est une mesure de sécurité qui permet de remplacer les pages supprimées dans la base de données par un modèle (mis à zéro). Cette mesure rend la découverte les données beaucoup plus difficile.

Dans Exchange Server 2007 et versions antérieures, les opérations de remise à zéro s'effectuent pendant le processus de sauvegarde en continu. Comme elle se produit pendant la sauvegarde en continu, la remise à zéro des pages ne provoque pas la génération des fichiers journaux. Ce comportement pose problème pour les bases de données répliquées car les pages des copies passives ne sont jamais remises à zéro. De même, les pages des copies actives sont remises à zéro lorsque la sauvegarde en continu est terminée. Dans Exchange Server 2007 SP1, nous avons introduit une nouvelle tâche de maintenance en ligne facultative pour résoudre ce problème : La remise à zéro des pages de base de données pendant le contrôle de parité. Lorsque l'option Remettre à zéro les pages de base de données pendant le contrôle de parité est activée, les pages sont remises à zéro pendant la maintenance en ligne et les changements sont consignés dans le journal. Les modifications sont ensuite répliquées dans les copies passives.

Toutefois, dans Exchange Server 2007 SP1, le processus de remise à zéro se produit pendant une fenêtre de maintenance programmée. Cela crée un décalage entre le moment où une page est supprimée et celui où elle est remise à zéro. Par conséquent, la tâche de remise à zéro des pages devient un événement d'exécution qui fonctionne continuellement dans Exchange Server 2010 SP1. Généralement, la tâche remet à zéro les pages au moment de la transaction, lors de la suppression définitive.

En outre, les pages de base de données peuvent être nettoyées au cours du processus de contrôle de parité en ligne. Les pages ciblées dans ce cas sont les suivantes :

  • Les enregistrements supprimés qui n'ont pas pu être nettoyés en raison de tâches abandonnées (si le système est en surcharge) ou en raison d'un incident de la banque avant que les tâches n'aient pu nettoyer les données.

  • Tables supprimées et indices secondaires. Lorsque ces éléments sont supprimés, nous ne nettoyons pas leur contenu. Par conséquent, le contrôle de parité en ligne détecte que ces pages n'appartiennent plus à aucun objet valide et les nettoie.

Pour plus d'informations sur la remise à zéro des pages dans Exchange 2010, consultez la rubrique Présentation de la mise à zéro des pages Exchange 2010.

Utilisez les compteurs de performance pour suivre les tâches de maintenance en arrière-plan

Dans Exchange Server 2010, les événements des tâches de maintenance concernant le compactage et la défragmentation ne sont pas enregistrés. Toutefois, vous pouvez utiliser des compteurs de performance pour suivre les tâches de maintenance en arrière-plan. La table suivante décrit les compteurs de performance à utiliser sous l'objet Base de données MSExchange ==> Instances.

Compteur Description

Durée de la maintenance de base de données

Nombre de secondes écoulées depuis le début de la maintenance de cette base de données. Si la valeur est 0, la maintenance est terminée pour la journée.

Contrôles de parité erronés des pages dans la maintenance de base de données

Il s'agit du nombre de contrôles de parité de pages impossibles à corriger rencontrés pendant une passe de maintenance de base de données

Tâches de défragmentation

Il s'agit du nombre de tâches de défragmentation de base de données en arrière-plan en cours d'exécution

Tâches de défragmentation terminées /s

Il s'agit de la vitesse à laquelle les tâches de défragmentation de base de données en arrière-plan sont réalisées

La table suivante décrit les compteurs de remise à zéro des pages à utiliser sous l'objet Base de données MSExchange :

Compteur Description

Pages remises à zéro dans la maintenance de base de données

Indique le nombre de pages remises à zéro par le moteur de base de données depuis l’appel du compteur de performance

Pages remises à zéro dans la maintenance de base de données /s

Indique la fréquence de remise à zéro des pages par le moteur de base de données

Espace blanc

Dans une base de données, vous pouvez avoir des milliers de tables. Vous pouvez disposer d'au moins une table par dossier pour chaque boîte aux lettres. Les tables de messages, les tables de dossiers et les tables de pièces jointes représentent 90 pour cent de l'espace utilisé dans la base de données. Ces tables présentent le plus haut pourcentage d'espace libre (également appelé espace blanc) dans la base de données.

Pour déterminer le volume de l'espace blanc dans la base de données, et le récupérer, procédez comme suit :

  1. Démontez la base de données.

  2. Effectuez un vidage d'espace à l'aide de l'outil Utilitaires de base de données Exchange Server (Eseutil) et du commutateur /MS. Pour en savoir plus sur cette information, voir Procédure d'exécution d'Eseutil /M en mode Fichier de l'image mémoire.

    À la fin du fichier mémoire se trouve une ligne similaire à :

    -----------------------------------------------------------------------
    253

    Il s'agit de la somme du nombre total de pages disponibles dans toutes les tables. Multipliez cette valeur par 32 000 pour déterminer le montant réel d'espace blanc dans la base de données.

RemarqueRemarque :
Pour obtenir un exemple de fichier d'image mémoire Eseutil, voir Détermination de la quantité réelle d'espace dans la base de données Exchange.

Après avoir déterminé la quantité d'espace blanc dans une base de données, vous souhaiterez peut-être récupérer cet espace.

Si vous trouvez une base de données présentant une quantité importante d'espace blanc et que vous pensez que les opérations habituelles ne vous permettront pas de le récupérer, nous vous conseillons de suivre les étapes suivantes :

  1. Créez une base de données et ses copies de base de données associées.

  2. Déplacez toutes les boîtes aux lettres vers la nouvelle base de données.

  3. Supprimez la base de données d'origine et ses copies de base de données associées.

 © 2010 Microsoft Corporation. Tous droits réservés.