Auteur de questions
défragmentation de la base de donnée Exchange 2007

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.
- Type modifié Dan BajenaruMicrosoft employee samedi 13 octobre 2012 20:54 Attente de feedback
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
-
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
0Avez 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,72033503558487merci pour votre soutient.
-
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".
- Modifié Bruce JDCModerator jeudi 11 octobre 2012 09:22
-
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 GBet 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.
-
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 ?
- Modifié Bruce JDCModerator jeudi 11 octobre 2012 12:34
-
ç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,695344887674pour 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.....
-
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.
-
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 "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 ?
-
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.
-
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 :
-
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
- Modifié Bruce JDCModerator vendredi 12 octobre 2012 12:25
-
-
-
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.
-
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 -
-
-