Search This Blog

Tuesday, December 21, 2010

DPM Service Failed When Erasing a Tape

Issue:-











1. I've checked the event log and found the following event


Log Name: Application
Source: MSDPM
Date: 12/20/2010 4:43:55 PM
Event ID: 943
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Secret
Description:

The description for Event ID 943 from source MSDPM cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

Unable to connect to the DPM database because the database is in an inconsistent state.


Problem Details:


<__System>19228712/20/2010 8:43:55 AMDpmThreadPool.cs163TrueDBCorruptionExceptionMore than one MediaPool reported for same Media aa1f597b-41d1-418d-b730-530c4f9efeb3Microsoft.Internal.EnterpriseStorage.Dls.DB.DBCorruptionException: More than one MediaPool reported for same Media aa1f597b-41d1-418d-b730-530c4f9efeb3
at Microsoft.Internal.EnterpriseStorage.Dls.DB.Catalog.IntegrityCheck(Boolean condition, String message)
at Microsoft.Internal.EnterpriseStorage.Dls.MMDatabase.ArchiveMedia.GetMediaPool(DbContext sqlContext)
at Microsoft.Internal.EnterpriseStorage.Dls.MMDatabase.MMCatalog.ValidateArchiveMediaNotInOtherAdminPool(DbContext sqlContext, Guid archiveMediaId)
at Microsoft.Internal.EnterpriseStorage.Dls.MMDatabase.MMCatalog.TriggerMediaEraseJob(Guid mediaId, Guid jobId)
at Microsoft.Internal.EnterpriseStorage.Dls.MMInterface.MediaManager.TriggerMediaEraseJob(Guid mediaId, Guid jobId)
at Microsoft.Internal.EnterpriseStorage.Dls.Engine.CMediaManagerServices.TriggerMediaEraseJob(_GUID mediaId, _GUID jobId)
at Microsoft.Internal.EnterpriseStorage.Dls.Engine.CCoreServices.TriggerMediaEraseJob(CCoreServices* , _GUID mediaId, _GUID jobId, tagSAFEARRAY** exceptionResult)


2. Ran the following query and found it returns more than one row

prc_Global_MM_ArchiveMedia_GetMediaPool 'aa1f597b-41d1-418d-b730-530c4f9efeb3'

3. According to Microsoft PSS, they have checked in their internal database and found it is a bug in DPM 2010 which is still under investigation. The workaround to fix the problem is to run the following command:

a) Backup the database
DPMBackup.exe -db

Note:- the command is at C:\Program Files\Microsoft DPM\DPM\bin

b) Copy the DPMDb.bak into another location

Note:- the original backup database is located in C:\Program Files\Microsoft DPM\DPM\Volumes\Shadow Capy\Database Backups

c) Execute below command
SetSharedDpmDatabase -RemoveDatabaseSharing

Note: the command is at C:\Program Files\Microsoft DPM\DPM\Setup

d) Open DPM Administrator Console.

4. After the command succeeded, we perform detailed inventory on the tape library, it succeeded. Then we tried to erase a tape, DPM service did not crash and the job is in progress. Meanwhile, I create a new protection group to backup something to tape; the job was also in progress.

A bug...Gosh..