Forum Discussion

OldEmployee's avatar
7 years ago
Solved

Index Volume count mismatch in Directory database and EV server event.

I ran this query on the directory server to get the number of index volumes being managed by the particular server:

Select Count (*) from Indexvolume
Where IndexRootPathEntryId in (Select IndexRootPathEntryId from IndexRootPathEntry where IndexServiceEntryId = '1F7BD637ADCCF784E8A2DDA4760D04EE91710000eito-kvs')

I get result in 20K.

However, the event 41392 on the EV server after the Index service restart shows about 530 Index volumes being synchronized.

Is the Indexing server actually missing volumes? Or is this just stale entries in SQL? How can I find out which one is not working correctly? Or is my query incorrect to begin with!

  • The Indexing Service will only synchronize Index Volumes that actually exist on disk (i.e., where at least one item has been indexed and the Index Volume's collection folder has been created in the IndexRootPath folder). The IndexVolume table lists all Index Volumes, including empty ones (those where no items have been indexed yet). My guess is the discrepancy you're seeing is because you have a large number of empty indexes, which will show in your query but which the service will not try to synchronize.

    Here is a query for your Directory database that may prove useful in illustrating this:

    SELECT 
    COUNT(IndexVolumeIdentity) AS AllIndexVolumes
    ,COUNT(IndexedItems) AS NonEmptyIndexVolumes
    ,ComputerName
    FROM IndexVolume AS IV JOIN IndexRootPathEntry AS IRP ON IRP.IndexRootPathEntryId = IV.IndexRootPathEntryId JOIN IndexingServiceEntry AS ISE ON ISE.ServiceEntryId = IRP.IndexServiceEntryId JOIN ComputerEntry AS CE ON CE.ComputerEntryId = ISE.ComputerEntryId
    GROUP BY ComputerName

    Hope that helps.

    --Chris

  • Hi,

    I amnot sure about the query, but you need to remember that the index for an archive can contain multiple locations. You can relatively simple check.

    open the properties of an archive managed by the server you are investigating. Go to tab Index Volumes. There you see a number. For most archives, this will be 1. For large archives (Journal ones) this might be high(er). Click Details, that shows you where the location of the index is.

    If you have (for instance) 50 large archives, each archive has 10 indexlocations, you already have 500 indexvolumes..

    • OldEmployee's avatar
      OldEmployee
      Level 5

      Thank you GertjanA.

      If that is the case, there are more than 18K archived on the VS  managed by this server. The event should show atleast the index volume count equal to the archives.

      • ChrisLangevin's avatar
        ChrisLangevin
        Level 6

        The Indexing Service will only synchronize Index Volumes that actually exist on disk (i.e., where at least one item has been indexed and the Index Volume's collection folder has been created in the IndexRootPath folder). The IndexVolume table lists all Index Volumes, including empty ones (those where no items have been indexed yet). My guess is the discrepancy you're seeing is because you have a large number of empty indexes, which will show in your query but which the service will not try to synchronize.

        Here is a query for your Directory database that may prove useful in illustrating this:

        SELECT 
        COUNT(IndexVolumeIdentity) AS AllIndexVolumes
        ,COUNT(IndexedItems) AS NonEmptyIndexVolumes
        ,ComputerName
        FROM IndexVolume AS IV JOIN IndexRootPathEntry AS IRP ON IRP.IndexRootPathEntryId = IV.IndexRootPathEntryId JOIN IndexingServiceEntry AS ISE ON ISE.ServiceEntryId = IRP.IndexServiceEntryId JOIN ComputerEntry AS CE ON CE.ComputerEntryId = ISE.ComputerEntryId
        GROUP BY ComputerName

        Hope that helps.

        --Chris

  • Turns out I had to rebuild the indexes for that server.

    It it now showing approximately the same numbers.