none
défragmentation de la base de donnée Exchange 2007 RRS feed

  • Discussion générale

  • Bonjour,

    Comment faire pour la défragmentation d'une base de donnée Exchange 2007 sachant qui j'ai pas assez d'espace disque libre(110% d'espace libre exigé pour le faire). est ce que y a la possibilité de faire l a défragmentation sans avoir l'espace disque libre exigé ?

    Merci d'avance.

    mercredi 10 octobre 2012 20:30

Toutes les réponses

  • Vous devez avoir 110% de l'espace libre par rapport au contenu de la base, et non pas de sa taille complète. Il est possible d'estimer la taille des données avec

    (Get-mailboxstatistics -database "mabase" | measure-object -property totalitemsize -Sum).Sum / 1GB

    Vous n'êtes pas obligé de construire la base temporaire au même emplacement que la base à défragmenter, vous pouvez utiliser l'option /t de eseutil pour spécifier un autre chemin.

    eseutil /d mabase.edb /t t:\temp.edb

    jeudi 11 octobre 2012 06:58
    Modérateur
  • Bonjour Bruce, j 'ai tester la commande sur mes 2 bases de données pour avoir une estimation de la taille des données, pour la base de donnée qui a la grande taille j'ai eu le message d'erreur ci-dessous : 

    [PS] C:\Documents and Settings\dahamza>(Get-mailboxstatistics -database "Mailbox
     Database" | measure-object -property totalitemsize -Sum).Sum / 1GB
    Get-MailboxStatistics : La base de données de boîtes aux lettres spécifiée « ex
    1.sovac.dz\Mailbox Database » n'est pas unique.
    At line:1 char:23
    + (Get-mailboxstatistics  <<<< -database "Mailbox Database" | measure-object -p
    roperty totalitemsize -Sum).Sum / 1GB
    0

    Avez vous un aidée sur ce message d'érreur ?

    Pour la 2eme base donnée c'est ok j 'ai eu ce nombre : 4,72033503558487 c'est en octet?

    [PS] C:\Documents and Settings\dahamza>(Get-mailboxstatistics -database "Manager
    " | measure-object -property totalitemsize -Sum).Sum / 1GB
    4,72033503558487

    merci pour votre soutient. 

    jeudi 11 octobre 2012 09:13
  • La valeur est en giga-octect ( / 1GB)

    Pour la première vous devez avoir plusieurs bases du même nom sur des serveurs différents.

    Pour récuperer le nom complet vous pouvez faire :

    Get-MailboxDatabase | ft Identity

    et utiliser le nom indiqué sous la forme SERVEUR\Storage Group\Base

    Note : quelles sont les tailles des fichiers EDB de vos bases? Car 4Go de données utiles, c'est une valeur relativement faible. On utilise en général la défragmentation si au cours d'une manipulation on a fait grossir la base au dela de valeur acceptable (par exemple provisionning sur une seule base) ; elle ne doit pas être utiliser comme une tache de maintenance "régulière".

    jeudi 11 octobre 2012 09:20
    Modérateur
  • le shemain de la grande base de donné F:\First Storage Group\Mailbox Database.edb  j 'ai fait : 

    Get-MailboxDatabase | ft "F:\First Storage Group\Mailbox Database.edb"  

    Résultat  vide ? : 

    [PS] C:\Documents and Settings\dahamza>Get-Mail
    e Group\Mailbox Database.edb"

    F:\First Storage Group\Mailbox Database.edb
    -------------------------------------------

    pour  les tailles des fichiers EDB  : base de donnée Manager (y a que les manager dans cette base de donnée : 5.65 GB

    et pour l'autre 265 GB : c'est celle que je devait faire la défragmentation car il me reste sur disque que 1.5 GB libre. 

    jeudi 11 octobre 2012 10:05
  • Pour la commande il ne s'agit que de

    Get-MailboxDatabase | ft Identity

    il n'y a pas de chemin a rajouter, vous aurez une liste des bases du type

    Serveur1\StorageGroupe1\Base1

    Serveur1\StorageGroupe2\Base1

    etc...

    Pour la base de 5,65Go, est ce vraiement utile à défragmenter ?


    jeudi 11 octobre 2012 12:21
    Modérateur
  • ça marche Bruce voila le résultat : 128,695344887674, donc 128GB  (ça prend combien de temps la défragmentation de telle base ?)

    [PS] C:\Documents and Settings\dahamza>(Get-mailboxstatistics -database "EX1\Fir
    st Storage Group\Mailbox Database" | measure-object -property totalitemsize -Sum
    ).Sum / 1GB
    128,695344887674

    pour la défragmentation de la base manager Non je veux défragmenter seulement la grande base de 265 GB.

    Est ce que avec 1.5 GB espace libre sur le disque de la base je peut faire la défragmentation ?.

    Si c'est Non : est ce que avec l'option /t de eseutil pour spécifier un autre chemin si possible ?

    Si oui :  y t il  pas du problème si ce chemin va être dans une autre machine ? car y a pas d'espace dans la machine exchange.

    Dans le cas oû y a aucun problème :

     j'ai partagé un dossier  "def-basedans" sur une autre machine nommé DPM ensuite j'ai crée un lecteur réseau avec le chemin "\\DPM\def-base" sur la machine exchange. donc j'ai le lecteur Y " def-base sur 'dpm' (Y:)   "

    à ce stade la  comment je fait ma commande pour que le fichier temp.edb va être sur le disque réseau Y de la machine DPM. 

    eseutil /d "EX1\First Storage Group\Mailbox Database.edb" /t t:\temp.edb ?

    et si tous va bien a la fin le fichier temp.edb sera supprimé tous seul?

    Désolé pour mes tros question bruce mais je suis vraiment sous pression..... 

    jeudi 11 octobre 2012 13:23
  • Il faut environ 150Go pour pouvoir la défragmenter, pour plus de sécurité talber sur 180Go.

    Oui vous pouvez utiliser /t pour spécifier un autre chemin, je n'ai jamais essayé mais en théorie vous pouvez utiliser un partage réseau monté sur une lettre de lecteur, cependant vous pouvez avoir des problèmes lors du passage des données.

    La durée est impossible a estimée, c'est le gros inconvéniant de la defrag offline. Même avec une bonne machine et des IOPS, compter plusieurs heures, probablement plus de 10h... Comme c'est une defrag base offline, les BAL sont indisponibles pendant ce temps.

    Eseutil utilise le chemin physique, si par exemple d:\mailboxdatabase.edb ; je vous conseille :

    eseutil /d "D:\Mailbox Database.edb" /t t:\temp.edb

    Tant que la commande n'est pas terminée avec succes, la base d'origine n'est pas touchée, vous pouvez faire un Ctrl C pour annuler et remonter la base.

    Autre option mais qui nécessite de l'espace : vous créez une nouvelle base de données, et vous faites un Move-Mailbox pour vider l'ancienne dans la nouvelle.

    jeudi 11 octobre 2012 14:53
    Modérateur
  • concernat les problème je peut faire une copie de la base de donné dans un emplacement sur comça dans le cas ou y aura des problème j'ai une copie de la base.

    j'ai pas compris la partie :

    Eseutil utilise le chemin physique, si par exemple d:\mailboxdatabase.edb ; je vous conseille :

    eseutil /"D:\Mailbox Database.edb" /t t:\temp.edb

    Tant que la commande n'est pas terminée avec succes, la base d'origine n'est pas touchée, vous pouvez faire un Ctrl C pour annuler et remonter la base.

    bruce mon souscie maintenant est ce ma commande ci-dessous est correct:

    ma base de donnée : EX1\First Storage Group\Mailbox Database (il faut précisé le chemin car y a 2 base de donnée de même nom)

    mon répertoire ou je veux placer la base temp.edb :  def-base sur 'dpm' (Y:) (lecteur réseau)

    eseutil /d "EX1\First Storage Group\Mailbox Database.edb" /t t:\\Y\temp.edb 

    ma commande est elle théoriquement juste ?

    jeudi 11 octobre 2012 15:12
  • Non

    C'est le chemin physique (l'emplacement du fichier EDB) qui est nécessaire, eseutil travaille directement au niveau fichier sans utiliser Exchange  ; il ne sait donc pas lire la configuration d'Exchange et l'emplacement des différents fichiers.

    Si sur votre EX1 le fichier est dans c:\mdb\base.edb, c'est ce chemin qu'il faut utiliser.

    jeudi 11 octobre 2012 17:31
    Modérateur
  • OK Bruce, maintenant j'ai décidé de copier la base de donné dans un autre emplacement sur un lecteur réseau d'une machine ou y a de l'espace (530GB libre) et la je fait la défragmentation sans utilisé le paramètre eseutil /t car sur ce nouveau emplacement y a énormément d’espace libre après fin de la défragmentation je recopie la nouvelle base dans l'emplacement initial que vous dite sur cette aidée ?:  mais la commande ne marche pas ?

    eseutil /d "X:\First Storage Group/Mailbox Database.edb"

    j'ai l'éerreur suivante :

    [PS] C:\Documents and Settings\dahamza>eseutil /d "X:\First Storage Group/Mailbox Database.edb"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 08.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating DEFRAGMENTATION mode...
                Database: X:\First Storage Group/Mailbox Database.edb

    Operation terminated with error -1019 (JET_errPageNotInitialized, Blank database
     page) after 0.438 seconds.

    Sachant que le nom de lecteur réseau est X ci-dessous les imprime écran pour bien éclairé la situation :



    jeudi 11 octobre 2012 23:09
  • Avez-vous utilisez robocopy pour faire la copie? une erreur de copie lors du transfère est possible, surtout avec le copier/coller. Sinon votre base peut être endommagé, dans ce cas il faudra réparer les erreurs avant de pouvoir la défragmenter, sous risque de perdre des données.

    Pour la réparation : isinteg http://technet.microsoft.com/fr-fr/library/bb125144(v=EXCHG.80).aspx

    à faire sur la base en production, suivi eventuellement de eseutil /p

    http://technet.microsoft.com/fr-fr/library/aa998249(v=exchg.80).aspx


    vendredi 12 octobre 2012 05:44
    Modérateur
  • non j'ai utilisé copier coller je vais utilisé un  robocopy et la faire réparer même avant de faire le rebocopy. mais les lien que vous m'avez envoyer sont des pages introuvable y a t'il d'autre page  ?
    vendredi 12 octobre 2012 09:09
  • La ) de fin ne faisait pas partie du lien, cela devrait fonctionner maintenant.
    vendredi 12 octobre 2012 12:25
    Modérateur
  • Bonjour Bruce, j'essaye maintenant de faire des essai de défragmentation sur une base de donné recup avant de le faire sur la base de donnée concernée.

    j’utilise la commande esseuil avec l'otion /t pour choisir un autre emplacement temporaire et /p pour ne pas supprimé la base initial voici ma commande :

    eseutil /d "E:\Basse donne Recupe\Secondestorage\boites aus lettres.edb" /p /t "Y:\"       ci-dessous le message d'erreur :


    [PS] C:\Documents and Settings\dahamza>eseutil /d "E:\Basse donne Recupe\Seconde
     storage\boites aus lettres.edb" /p /t "Y:\"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange ServerVersion 08.02Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating DEFRAGMENTATION mode...
                Database: E:\Basse donne Recupe\Seconde storage\boites aus lettres.edb

                      Defragmentation Status (% complete)

              0    10   20   30   40   50   60   70   80   90  100
              |----|----|----|----|----|----|----|----|----|----|

    Operation terminated with error -1201 (JET_errDatabaseDuplicate, Database alread
    y exists) after 0.438 seconds.

    j'ai pas compris pourquoi il me dit que la base de donnée existe déja ? c vrai y a une base de donnée de même nom (celle que je veux réellement la défragmenté) mais sur la commande c'est le chemin physique qui est spécifie, alors pourquoi ce message ?

    merci de m'aider bruce je suis vraiment pressé par le temps.

    lundi 15 octobre 2012 13:57
  • C'est bruce j'ai trouvé l'erreur c'était au niveau de la commande, la commande juste est :

    eseutil /d "E:\Basse donne Recupe\Seconde storage\boites aus lettres.edb" /p /t "Y:\temp.edb"

    test reussi.

    mon problème maintenant c'est que la commande robocopy ne marche pas avec moi sous Windows Entreprise  server 2003 64bit. est ce que c'est logique ? j'ai le message d'erreur ci-dessous :

    avez vousa une aidée sur cette erreur ?

    C:\Documents and Settings\dahamza>robocopy "G:\CProgram FilesMicrosoftExchange ServerMailboxLocalCopiesRecup" "Y:\"*.* /e /r:3 /w:5
    'robocopy' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes
    lundi 15 octobre 2012 15:26
  • Vous avez un répertoire ou un fichier qui porte deja le nom d'un fichier que eseutil veut créer.

    Essayer

    eseutil /d "E:\Basse donne Recupe\Seconde storage\boites aus lettres.edb" /p /t "Y:\temp\"

    lundi 15 octobre 2012 15:27
    Modérateur
  • C'est bon Bruce même pour ce problème j'ai installé rktools.exe est le poblème est réglé.

    maintenat j'ai la base de donnée temp.edb comment je fait pour la monté (sachant que la base de donnée de départ est démonter) et remplacé celle de départ??

     
    lundi 15 octobre 2012 16:25
  • Vous effacez l'ancienne et mettez la nouvelle à la place. C'est ce que fait eseutil si vous n'utilisez pas le /p
    mardi 16 octobre 2012 07:09
    Modérateur