[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 224
  • Last Modified:

Proactive for Exchange database corruption

I would like to know if there is a way to tell if the database started getting corrupt at the first bit.
I mean it would be nice to tell if the DB has started to get corrupt from the beginning so that you can step in to fix it ?
Initially, I though in Exchange 2010 if the primary copy gets corrupt the data will not replicate to the passive copy, but from reading online I found out I was wrong.

So I need to be alerted when the DB starts getting corrupt and how to fix that ?

Thank you
0
jskfan
Asked:
jskfan
  • 9
  • 3
  • 2
  • +3
8 Solutions
 
n2fcCommented:
You can schedule periodic repairs of the database and monitor the progress via the Event Log...

For more info (& "how to's") see the following article:

http://blogs.technet.com/b/exchange/archive/2010/08/23/3410708.aspx
0
 
jskfanAuthor Commented:
I believe I will have to have some kind of monitoring system, to tell if database started getting corrupt..
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
There are no absolute way to know if your Exchange database are about to crash. There are however guidelines/best practices to ensure that your Exchange/database are as healthy as they can be. Some of the things I would recommend following are list below...

- Configure Database Maintenance Schedules accodingly (business/backup needs)
- Checking the Logs frequently to ensure database maintenance has completed successfully
- Checking database for free whitespace available (within logs)
- Ensure that your database are not exceeding 400-500GB (there are database maximums but i would tend not to grow your databases this large as it affects backups and performance)
- Monitor Database Growth
- Ensure ExBPA is error free
- Invest in a good monitoring solution like Solarwinds or SCOM
- Check Message Queues to ensure Mail is flowing

Aside from that you can be as proactive as you like there will always be issues that arise. It is where you apply the best practices which help leverage a heathly Exchange/Database environment.

Will.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
BahloulCommented:
HI,

First of all Backup , and check the below topic it's very useful :--

http://blogs.technet.com/b/exchange/archive/2011/12/14/database-maintenance-in-exchange-2010.aspx

Bahloul
0
 
Satyendra TiwariCommented:
Though, Exchange server automates many common maintenance tasks to get rid such weird issues However, you may refer to this informative resource that covers all the required aspects and provides some helpful tips to keep your exchange server into their best running position : http://windowsitpro.com/systems-management/10-tips-keep-your-microsoft-exchange-server-humming
0
 
jskfanAuthor Commented:
I appreciate your advises Guys!
I want to know, at the moment I realize that there is a corruption in a certain database.. what should be my first reactions:

for instance :
-Do not panic (:)
- Suspend the Active Database replication, and dismount the database.
- Follow the steps to do a "Dial tone"
0
 
BahloulCommented:
Make sure it's not a dirty shutdown of database it can be fixed review this article :-

but before beginning take a backup from it

http://www.msexchange.org/articles-tutorials/exchange-server-2010/management-administration/eseutil-part1.html

then if repaired create a new database and migrate all it's content to the new you , then you are save and grt return back to perform your backup and maintenance .

Bahloul.
0
 
jskfanAuthor Commented:
Bahloul.

when there is a corruption in the database, I believe you cannot go right away and start using ESEUTIL. this tool will take forever to repair the database.

Well. to explain it clearly, let' s say  we realized that there is corruption in the database at 1pm today..

So the whole data seeded today will be considered corrupt since we cannot isolate the corrupt data from the good one and repair just the corrupt one.

At this stage we need user to keep using their emails, that 's priority.
if we try to repair the whole database with ESEutil it will take forever.  
SO the best approach if possible, will be to move the database somewhere, isolate just the corrupt data ,and repair just the corrupt data.
That's in theory...I am not sure how to accomplish this ?
It happened to our department in Ukraine one time, I cannot remember the procedure taken to fix it without downtime for end users.
0
 
Rodney BarnhardtServer AdministratorCommented:
Jskfan,

As others have mentioned, there is no way to be notified exactly when a database becomes corrupt. There are many ways data can be corrupted. At first, the database may continue to work just fine for hours or more. You can implement some tools like System Center with the Exchange pack to improve notification. However, the best solution is to always have a backup of your data. There are things you can do to improve your recovery time and protect from a fatal database problem. One is to keep multiple DAG copies, with one DAG on at least a 24 hour delay. This would give you 24 hours to realize a database corruption, and still have a clean copy to mount. I have even seen some recommendations to keep one at 48 or even 72 hours to cover a weekend. With this type of configuration, Microsoft claims there is not even a need to backup Exchange 2010 or 2013. While I do not buy into this premise, it is supposedly a process they use and never backup their Exchange servers. I wrote an article about this a year or so ago:

http://www.experts-exchange.com/Software/Server_Software/Email_Servers/Exchange/A_13638-Microsoft-Claims-No-Need-to-Backup-Exchange-2013.html

If you are running Exchange in a virtual environment, there are third party, application aware products such as Xerto that will take snapshots of the system at specific time intervals. This would also allow for a quick recovery with the least amount of lost email.

Once again, as others have said, there is no way to tell the moment an Exchange database becomes corrupt until there is some type of interruption.
0
 
jskfanAuthor Commented:
I replied to Bahloul on my comment : ID: 40556873
it is about after realizing there is a corruption what are the steps to take to get users going while you are cleaning the corruption OR whether there is a better approach ?
0
 
jskfanAuthor Commented:
I Thought about Dial Tone recovery, while in the meantime  using ESEUtil to remove the corrupt data....This the classic way, but it takes too long....
Any better approach?
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Dial Tone Recovery is a good method to get your users a mailbox again to start sending and receive mail. However the recovery is tricky when using this. You will need to reply the logs before the corruption and then you will also need to take another backup of the mail items they have accumulated while using the dial tone mailbox.
performing a dial tone recovery

Will.
0
 
jskfanAuthor Commented:
First...I need to know if Dial tone is the right procedure to go for, in case there is corruption in the database, may be there is a better approach to opt for...do you know of any better approach ?

Second....you mentioned the replay of the logs before corruption. If they are already committed to the database then I believe it is purposeless to replay them.
for the logs that are not committed after we realized that the database is corrupt then I believe we 'll need to do a full backup so that the logs will be committed, then we'll dismount the database and run ESEUtil to repair it.
0
 
jskfanAuthor Commented:
I was talking to an Exchange Admin, about how to be proactive when a mailbox or database gets corrupted...his approach was:

Create a Spare Mailbox database ahead of time, one Active and one Passive......do not put any mailbox in it.

When you realize there is a corruption in any of mailbox databases that are in production, then, Restore from last night backup to the spare Mailbox database, that way users will still be able to work and the only thing they will be missing are the emails from today..
Dismount the corrupted database and repair it with ESEUtil or ISinteg..

I wonder if this can be a good approach, easier than dial tone. ?
0
 
jskfanAuthor Commented:
I believe Exchange 2010/2013 came up with a tool to repair individual mailbox as well as mailbox database:
https://technet.microsoft.com/en-us/library/ff625221(v=exchg.141).aspx
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
I would like to know if there is a way to tell if the database started getting corrupt at the first bit.

Your initial question is in regrads to being Proactive. Everything you mention above is a reactive measure (dealing with something after it has happened), that is not being proactive it is reactive.

So that being said there are several things you can do as best practices to ensure your databases/mailboxes/servers are healthy. However natively there is no way to tell if your database will be come corrupt.

You check the database maintenance logs and check to see if there are any logs that state integrity issues etc but live production monitoring is not possible natively.

Following best practice guidelines and also monitoring on a daily basis will help prevent database corruption. Also making sure that you do not have disks errors will also help be proactive.

Will.
0
 
jskfanAuthor Commented:
Thank you Guys
0

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

  • 9
  • 3
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now