Answered How to view the LDM database size

  • Tuesday, January 22, 2013 6:55 PM
     
     

    I suspect that I'll soon reach the 300 datasources limit on one of my DPM servers, but would like to get this confirmed. Is is possible to see this somewhere, or perhaps there is a powershell command for this? Does anybody know if this limit is increased in Windows Server 2012?

    Amir

All Replies

  • Tuesday, January 22, 2013 7:20 PM
    Moderator
     
     Answered

    Hi,

    The limit for LDM records has not changed in Windows server 2012.  To see how close you are to the LDM record limit, you can run these on the DPM Server.

    C:\Program Files\Microsoft System Center 2012\DPM\DPM\Temp>find /i "CheckLdmOccupancy" msdpm*.errlog

    ---------- MSDPM73.ERRLOG
    1198    0BB8    01/16   23:29:04.487    16      engineservices.cpp(463)         6837C0A9-618B-4535-B50F-2B6EF3EA0630    NORMAL  CEngineServices::CheckLdmOccupan
    cyAndAlert called with arguments (6, 1)
    1198    0BB8    01/16   23:29:04.518    13      ReplicaAreaSetManager.cs(245)                   NORMAL  CheckLdmOccupancy returned [LdmOccupancyWithinLimits]; C
    urrentOccupancy=[0%], LdmWarningThreshold=[75%], LdmErrorThreshold=[90%]

    C:\Program Files\Microsoft System Center 2012\DPM\DPM\Temp>find /i "CurrLdmEntries" msdpm*.errlog

    ---------- MSDPM72.ERRLOG
    1198    0484    01/15   23:50:09.872    13      ReplicaAreaSetManager.cs(94)                    NORMAL  Updated LDM cache; nMaxLdmEntries=[2960], nCurrLdmEntrie
    s=[62]
    1198    0EA8    01/16   02:04:55.441    13      ReplicaAreaSetManager.cs(94)                    NORMAL  Updated LDM cache; nMaxLdmEntries=[2960], nCurrLdmEntrie
    s=[68]


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

  • Wednesday, January 23, 2013 8:28 AM
     
     

    Hello Mike,

    Thank you for the information. Helpful as always! :) Just another question, the "nMaxLdmEntries" value is 2960 according to above, but I thought the max. value was 300? I suppose the "ReplicaAreaSetManager.cs" value is the current no. of both replica/recovery point volumes in the LDM?

    Amir


    • Edited by Amir J Wednesday, January 23, 2013 8:48 AM
    •  
  • Wednesday, January 23, 2013 2:52 PM
    Moderator
     
     

    Hi,

    Those are LDM records, each volume created takes minimum of 3 LDM records.  So 300 datasources = 600 volumes * 3 = 1800 LDM records.


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

  • Monday, February 11, 2013 10:46 AM
     
     

    Hello Mike,

    This server currently holds a lot of SQL data, but as far as I can see it's not co-located on disk. I guess co-locating the SQL volumes would improve the entire situation? The server will also be upgraded from DPM 2010 to DPM 2012 SP1 soon - any improvements regarding the co-location feature? Is there any disadvantages by co-locating data generally?

    /Amir

  • Monday, February 11, 2013 6:00 PM
    Moderator
     
     Answered

    Hi,

    DPM co-location has not changed since it was first introduced in DPM 2010.  Read these to help understand some if the limitations / gotcha's.

    BLOG-About DPM2010 scalability and new features
    http://blogs.technet.com/b/dpm/archive/2010/02/26/about-dpm2010-scalability-and-new-features.aspx

    Moving Between Co-Located and Non-Co-Located Protection Groups
    http://technet.microsoft.com/en-us/library/ff399045.aspx

    Protect, Unprotect, Protect, Unprotect – Understanding how DPM 2010 retention works
    http://blogs.technet.com/b/dpm/archive/2010/11/03/protect-unprotect-protect-unprotect-understanding-how-dpm-2010-retention-works.aspx


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked As Answer by Amir J Tuesday, February 12, 2013 7:42 AM
    •  
  • Thursday, March 14, 2013 12:52 PM
     
     

    Hello Mike,

    This is a bit strange...I've recently cleared hundreds of non-colocated SQL databases from the DPM-server, but in spite of this the LDM entries seems to be exactly as many as before the removal of these databases. Also the size of the LDM database is unchanged. How come?

    /Amir

  • Thursday, March 14, 2013 2:49 PM
    Moderator
     
     

    Hi,

    If the DB's were not all co-located on the same replica volume, and only one SQL DB remains on a replica, then we cannot remove the replica volume to free up the LDM records.

    These two powershell scripts will give you a better sense of what volumes consume the most LDM records and what data sources are co-located together on the same replica so you know what needs to be dome to free some up.

    http://blogs.technet.com/b/dpm/archive/2010/03/30/what-volume-to-migrate-first.aspx

    Also run the following to list co-located data sources.

    # Get datasource path for co-located data sources
    # Where protectiongroupname = the protection group you want to get information for.
    # DataSources on the same replicaPath (volume GUID) are co-located.


    $pg = get-protectiongroup (&hostname) | ? { $_.friendlyname -eq '<protectiongroupname>'}
    get-datasource $pg  | sort-object -property replicapath | ft replicapath, name, diskallocation -AutoSize


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

  • Friday, March 15, 2013 12:11 PM
     
     

    OK, I've run the script above and after moving one of the volumes, it seems as if the LDM entries decreased with almost 25%. Another question about the find /i "CurrLdmEntries" msdpm*.errlog": I have plenty of errorlogs in the Temp directory, and I guess it's the msdpmcurr.errlog that contains the most recent info about the LDM entries? Is it safe to delete the other error logs? I also run find /i "CheckLdmOccupancy" msdpm*.errlog in order to view the current LDM database size, but it shows 0% for some reason:

    ---------- MSDPMCURR.ERRLOG
    1AC8    1AF4    03/15   09:10:08.736    16      engineservices.cpp(462)
    5B8CD7BB-74FE-42EA-9160-845853ECA242    NORMAL  CEngineServices::CheckLdmOccupan
    cyAndAlert called with arguments (0, 0)
    1AC8    1AF4    03/15   09:10:09.139    13      ReplicaAreaSetManager.cs(245)
                    NORMAL  CheckLdmOccupancy returned [LdmOccupancyWithinLimits]; C
    urrentOccupancy=[0%], LdmWarningThreshold=[75%], LdmErrorThreshold=[90%]
    1AC8    1AF4    03/15   09:15:40.785    16      engineservices.cpp(462)
    AC7A881E-008E-4A2B-9356-2B26E3BD9159    NORMAL  CEngineServices::CheckLdmOccupan
    cyAndAlert called with arguments (0, 0)
    1AC8    1AF4    03/15   09:15:41.176    13      ReplicaAreaSetManager.cs(245)
                    NORMAL  CheckLdmOccupancy returned [LdmOccupancyWithinLimits]; C
    urrentOccupancy=[0%], LdmWarningThreshold=[75%], LdmErrorThreshold=[90%]
    1FA0    1E50    03/15   10:40:01.815    16      engineservices.cpp(462)
    7ADA87A0-DCFC-4BA6-AD67-C6AF13630B60    NORMAL  CEngineServices::CheckLdmOccupan
    cyAndAlert called with arguments (0, 0)
    1FA0    1E50    03/15   10:40:02.136    13      ReplicaAreaSetManager.cs(245)
                    NORMAL  CheckLdmOccupancy returned [LdmOccupancyWithinLimits]; C
    urrentOccupancy=[0%], LdmWarningThreshold=[75%], LdmErrorThreshold=[90%]

    /Amir

  • Friday, March 15, 2013 2:44 PM
    Moderator
     
     

    Hi,

    It seems that the CurrentOccupancy is very low from a percentage point of view, thus the 0%, so use this query to get the absolute number of records in use.

    find /i "nCurrLdmEntries" msdpm*.errlog


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

  • Saturday, March 16, 2013 8:26 AM
     
     

    Thank you for your reply. However, this doesn't make any sense to me as there are plenty 80-90 msdpm*.errlog files, and each of them report a different number of LDM entries. How do I know which one of the log files that reports the real value?

    /Amir

  • Saturday, March 16, 2013 2:09 PM
    Moderator
     
     Answered
    Any time you add, remove, or change data sources, the ldm occupancy will be calculated. The most recent log is always *curr.errlog, so that would represent the most current number.

    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.


  • Sunday, March 17, 2013 3:02 PM
     
     

    Great Mike, that confirms my thoughts about this. All these logs - could I safely delete them or should I just let them be?

    /Amir

  • Sunday, March 17, 2013 9:03 PM
    Moderator
     
     

    Hi,

    They should be overwritten, but you can delete all the .errlog files, however they will accumulate again.


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.