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
jskfanAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Will SzymkowskiConnect With a Mentor Senior 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
 
n2fcConnect With a Mentor Commented:
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
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

 
Will SzymkowskiConnect With a Mentor Senior 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
 
BahloulConnect With a Mentor Commented:
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 TiwariConnect With a Mentor ManagerCommented:
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
 
BahloulConnect With a Mentor Commented:
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 BarnhardtConnect With a Mentor Server 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 SzymkowskiConnect With a Mentor Senior 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
 
jskfanAuthor Commented:
Thank you Guys
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.