none
How to resolve "Performance counter registry hive consistency check" failed?

    Question

  • I want to install SQL Server 2008 November CTP Developer Enu. When "System Configuration Check" it shows:

    Rule "Performance counter registry hive consistency check" failed.

    The performance counter registry hive is corrupted.

     

    And cannot continue installing. How to solve this problem?

    Wednesday, November 21, 2007 4:52 AM

Answers

  • If you were like me and had no values in "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009", and was unable to add any.  You might try the knowledge base below, it worked for me.  Now running SQL Server 2008 November CTP on Windows XP SP2.  Hope this helps.

     

    How to manually rebuild Performance Counter Library values

    http://support.microsoft.com/kb/300956

    Wednesday, April 16, 2008 5:08 PM

All replies

  • Me too...I Install nov 2008 on Win XP SP2....

     

    How to resolve,MS answer me!

    Friday, November 23, 2007 10:55 AM
  •  

    Me, too...

     

    Who can help us to resolve this trouble? I tried to install it at Windows Server 2008 RC 1 (CHN), and I already (& only) have Visual Studio 2008 Beta2 (CHN) installed.

    • Proposed as answer by Dsureshkumar Thursday, December 02, 2010 2:49 PM
    Wednesday, January 16, 2008 5:20 PM
  •  

    TEMP WORKAROUND:

     

    Ok, I have the same issue after I have to do a system restore and was trying to reinstall SQL Server 2008 Nov CTP. I guess the perflib counter was a bit mess up. I read a couple of post and the offical Microsoft answer is reinstalled your OS. But for people like you and me, we're installing CTP to play with the new features, the last thing I wanted to do is to spend next 2 days to reinstall the whole stack. So, this is a temp workaround, just enough to let you install the Katmai.

     

    1) The installation tried to look at this registry key. It does a calculation on Last Counter and Last Help. So, use tools like Regmon to figure out which key it is trying to read. Here is a number of possibility based on your OS version.

     

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\4040

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\7C40

     

    2) Once you figure out which key it is (my key for XP is 009). Open the text value of

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Counter and scroll to the second last line. You will see a number like this, write down the number. This is the Last Counter number the system uses

    e.g.:

    11838
    Cumulative Guest Run Time

    3) do the same for

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Help and write down the number. This is the Last Help number the system uses

     

    e.g.:

    11839
    The guest run time represents the number of microseconds the .....

     

     

    4) Now go to

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Last Counter

     

    Put the number from (2) as the new value of Last Counter

     

    5)

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Last Help

     

    Put the number from (3) as the new value of Last Help

     

     

    Now, you should be able to pass the SQL Server 2008 Installation. Got your perfmon counter messed up is a sign that something else is corrupted.

     

     

    Scott Ma

    • Proposed as answer by hksonngan Wednesday, May 05, 2010 4:24 PM
    Thursday, February 07, 2008 11:41 PM
  • Thank you so much, i was looking for long time what they meen "max value" for theses keys.

    • Proposed as answer by mviscarraz Sunday, January 29, 2012 4:37 AM
    Tuesday, April 08, 2008 11:23 AM
  • Win VISTA: Doesnt work and i've done exactly the things you sugest. What else can i do?!?!

     

    best regards

    Thursday, April 10, 2008 12:38 AM
  • If you were like me and had no values in "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009", and was unable to add any.  You might try the knowledge base below, it worked for me.  Now running SQL Server 2008 November CTP on Windows XP SP2.  Hope this helps.

     

    How to manually rebuild Performance Counter Library values

    http://support.microsoft.com/kb/300956

    Wednesday, April 16, 2008 5:08 PM
  • Check out this arcticle:
    https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=312847
    It's quite helpful.

    Or, try this:
    Put this at any Console application:
    string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    Watch the result. At mine it was "016".

    Then you go to the registry at this key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

    and create another one with the name you got from the string.Format result. In my case:
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\016"

    and copy the info that is on any other key in this Perflib to this key you just created. Run the instalation again. Done!

    • Proposed as answer by Abaddon Saturday, April 25, 2009 8:36 PM
    Thursday, April 24, 2008 12:08 AM
  • Thanks Aaron. You got me pointed in the correct direction.

    However there was something else I had to do that was not referenced anywhere.

     

    http://ferventcoder.com/archive/2008/08/10/possible-performance-counter-corruption-or-performance-counters-are-just-disabled.aspx

     

    I just found a solution I don't know if anyone else has seen yet. It has to do with having Performance Counters Disabled and many of the symptoms are the same.

     

    Basically if you try to load Performance counters (Control Panel -> Administrative Tools -> Performance) and you can not see any, it may mean you are having the same issues I was.

     

    Sunday, August 10, 2008 10:31 PM
  • I've also got the failure of "performance counter registry hive consistency check".

    I've checked that I DO have the same value for Perflib.Last counter in comparison with the last value in Perflib.009.counter. Both are 8108. The former actually is '1fac' (but in decimal it's 8108). I also have the same value which is 8109 for both Perflib.Last Help and the last value in Perflib.009.Help. Both are 8109.

     

    Can any disabled services cause the problem? Any advice?

    Wednesday, August 27, 2008 5:06 AM
  • I had the same problem with my VISTA ULTIMATE SP1 Spanish, and i resolved this problem with this https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=312847 instructions.

    Friday, September 12, 2008 3:08 AM
  • For those using Vista Business (I have Spanish SP1 Version), below what worked for me:

    - I followed KB note 300956 already mentioned in this post. I have an OEM version of Vista and as I could not find the Perfc009.da_ and Perfh009.da_ in the recovery disk provided with the machine, I copied the files from an XP Pro machine.

    - I also copied the Counter and Help Registry entries from:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009

     

    to:

     

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\00A (this entry was empty).

     

    Hope this help!

     

    • Proposed as answer by Igor Gushchin Tuesday, August 17, 2010 5:51 AM
    Sunday, September 14, 2008 8:43 PM
  • Thanks a lot, Scott. It works! But I had to solve another problem before I used your solution. I found my keys in the path 009 somehow damaged. I couldn't see any "normal" number. Just non-readable text, it looked like ASCII code. So after an hour of thinking I tried to open my wife's notebook to see, how it looked in its registry. It was readable and I could see the normal number!

    I got an idea to copy it into my registry. I was affraid but I tried it! I re-ran setup rules in the installation of MSSQL Server and it works!!! So If you see text which looks like ASCII code, do not afraid to copy both registry items from another computer. And then follow the Scott's solution.

    But I'm still affraid of restarting Windows. I hope that Windows won't crash tomorrow when the system realises that I have cheated the registry!



    Thanks,
    Albert
    Sunday, September 21, 2008 8:57 PM
  •  

    Hello all, could you please take a look at my thread?

    http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=4104080&SiteID=17

     

    I've tried all possible solutions on this thread, on the microsoft help and support pages, and on other forums also linked on this thread.

     

    I still can't solve my problem and I've already reinstalled windows vista home premium x86 seven times, I'm really desperate since I really need MSSQL 2008 for work and I'm getting delayed.

     

    Thanks.

    Tuesday, November 11, 2008 8:38 PM
  •  

    This is still a problem with the release version of SQL 2008. I use a Swedish version of XP. I tired the solutions described in this thread and I found my 009 key in registry but nothing was wrong with the counters.

    I then tried something else that I found in a blog somewhere that it had something to do with culture settings.

    This is how I solved my problem
    I created a simple console application in visual studio that did this

    Code Snippet

    string str2 = string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    Console.Write(str2);

     

     

    It returned the value 01D on my computer

     

    I then opened the registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 

    and created a new key with the name 01D and then copied the information from

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

    to my new key

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\01D

    After that the installation check was ok

    The problem seems to be that it checks the culture settings and use that when it wants to find the registry key and somehow the registry keys for this are not in sync with the culture settings and therefore the key is missing 

    • Proposed as answer by Kjaps Wednesday, January 25, 2012 6:39 PM
    Friday, November 21, 2008 12:38 PM
  • hi Marten, can you supply the app that you used, i new to this, and im facing the same problems to install sql 2008.

    thanks in advance
    Thursday, April 02, 2009 4:50 PM
  • After spending an afternoon on this, I found that the referenced KB file is for Windows Server.  I was using XP, and perhaps some of the posters that the KB didn't fix their issue, might be running XP as well.

    I was unable to add values into my 009 folder like some of the above posters.  I exported both the 009 and perflib from my desktop to my laptop(the pc I was installing on).

    I first tried the 009 and then "re-run" and it still failed, after running the perflib.reg, it passed.

    After continuing through the screens, it did a version check of Visual Studio 2008(you have to have SP1 installed), and it failed.  A colleague had this issue as well, and he did some checking and found that the install is checking the wrong file.

    From this blog:  referenced blog

    You need to change this value:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VS\Servicing\9.0

    I changed mine to 9.0a, and then changed it back once installed.

    Hope this helps.
    • Edited by Wade Salley Wednesday, June 03, 2009 8:39 PM
    Wednesday, June 03, 2009 8:37 PM
  • I'm running Windows 7 and encountered the same problem when installing SQL Server 2008.

    I followed the steps above, but they did not help, as I could not find out what registry key was missing. The one I found from running

    string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    as suggested above gave me the number 014, but that was already there. So, to find out what key was missing, I downloaded the Process Monitor found here and ran that. I filered for the process setup100.exe and registry monitor and found the to missing registry keys. I exported the contents of 009 and imported again with the two missing keys instead of 009.

    Then it all worked well.

    Jan Erik
    Thursday, February 25, 2010 12:15 PM
  • This Realy Works!

    I have the same problem when try to install SQL Server 2008 Standart Edition in a OS Win7 (after uninstall mi old version SQL Server 2005)… and the registry key:
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib09″ has values and
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib0A” was emty.
    So, I do a copy from 009 to 00A (values Counter/Help);
    And that’s it!!!

    Here we could find some values for diferent regional configurations (LCID), if we needed: http://javascripts.astalaweb.com/Ayuda/html/vsmsclcid.asp

    Yo tenia el mismo problema cuando trate de instalar SQL Server 2008 Standart Edition en un OS Win7 (después de desinstalar mi vieja version de SQL Server 2005)… y la llave del registro:
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib09″ tenía valores y
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib0A” estaba vacía.
    Asi que hice una copia del valor 009 al 00A (valores Counter/Help);
    Y eso es todo!!!

    Acá podemos encontrar algunos valores para diferentes configuracione regionales (LCID), si los necesitamos: http://javascripts.astalaweb.com/Ayuda/html/vsmsclcid.asp

    Best Regards...

    Thursday, March 11, 2010 12:50 AM
  • Thanks for the solution!

    My case was just a little different. I have Windows 7, and I did the following and it worked!

    Copy Counter & Help FROM

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009

    to:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\012

    Now I've got Server 2008 Expressed installed.

    Tuesday, March 16, 2010 8:47 AM
  • Check out this arcticle:
    https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=312847
    It's quite helpful.

    Or, try this:
    Put this at any Console application:
    string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    Watch the result. At mine it was "016".

    Then you go to the registry at this key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

    and create another one with the name you got from the string.Format result. In my case:
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\016"

    and copy the info that is on any other key in this Perflib to this key you just created. Run the instalation again. Done!

    it's useful for me when i install the sql 2008 on win7
    Sunday, March 28, 2010 2:49 PM
  • Check out this arcticle:
    https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=312847
    It's quite helpful.

    Or, try this:
    Put this at any Console application:
    string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    Watch the result. At mine it was "016".

    Then you go to the registry at this key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

    and create another one with the name you got from the string.Format result. In my case:
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\016"

    and copy the info that is on any other key in this Perflib to this key you just created. Run the instalation again. Done!

    it's useful for me when i install the sql 2008 on win7
    Sunday, March 28, 2010 2:49 PM
  • I want to install SQL Server 2008 November CTP Developer Enu. When "System Configuration Check" it shows:

    Rule "Performance counter registry hive consistency check" failed.

    The performance counter registry hive is corrupted.

     

    And cannot continue installing. How to solve this problem?


    Thursday, April 29, 2010 6:08 AM
  • As Scott Ma:

    1) The installation tried to look at this registry key. It does a calculation on Last Counter and Last Help. So, use tools like ProcessMonitor to figure out which key it is trying to read. Here is a number of possibility based on your OS version.

    in my case is

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\012

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0412

    0412 is not created, I make new Key 0412, Re-run and ProcessMonitor shows

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0412\Counter

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0412\Help

    I create 2 keys Counter and Help in 0412 with their values copy from

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

    Countinue as

    2) Once you figure out which key it is (my key for XP is 009). Open the text value of

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Counter and scroll to the second last line. You will see a number like this, write down the number. This is the Last Counter number the system uses

    e.g.:

    11838
    Cumulative Guest Run Time

    3) do the same for

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Help and write down the number. This is the Last Help number the system uses

     

    e.g.:

    11839
    The guest run time represents the number of microseconds the .....

     

     

    4) Now go to

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Last Counter

     

    Put the number from (2) as the new value of Last Counter

     

    5)

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Last Help

     

    Put the number from (3) as the new value of Last Help

     

    Now setup pass :)

     

     

    Wednesday, May 05, 2010 3:47 PM
  • Here`s the solution (in spanish) but it works.

    i tryed all that microsoft (and everybody) recommends, and it doesnt work.

    only this...

    http://www.sextantis.cl/articulos.aspx?Id=90988D4A10BEAB11!156

     

     

    Tuesday, May 11, 2010 6:40 PM
  • I'm using Chinese traditional Windows 7, and tried all above changing perflib/last counter and last help to 009 or 0404 (or current language)  but ms sql 2008 express setup

    Performance counter registry hive consistency check

    still persist. Any other ideas? My asp project had been stuck with this problem for over 2 weeks, i'm really getting fedup with microsoft.

    • Proposed as answer by MyMinchi Thursday, March 24, 2011 12:18 AM
    • Unproposed as answer by MyMinchi Thursday, March 24, 2011 12:18 AM
    Sunday, June 13, 2010 2:45 PM
  • Hi, I'm  using Chinese traditional Windows XP, and I'm Chinese . My QQ number is 1651252550.Why not have a talk?
    Tuesday, July 13, 2010 9:41 AM
  • thanks very much ... it resolved my probled....
    Thursday, August 05, 2010 4:53 AM
  • In my case the solution was simple: as my OS language was Polish and dafault value of the setting "language for applications that do not support Unicode" (in the language and regional settings part of control panel) was English, the only thing I needed to change was changing value of this option to Polish (in general case, change it to your OS main language).

    It seems that there is a bug in SQL Server instalator checker.

    Saturday, September 11, 2010 8:28 PM
  • Thanks, Scott Ma.. it works for me.. get the last value :) Cheers!!!
    Wednesday, September 29, 2010 7:47 AM
  • this works for me.

    follow these steps

    1) go to the following location in registry.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

    2)

    double clickk on name "Counter", Then Scroll Down to last Line of its Value. most Likely second Last line will have some integer Value. copy that Number.

    3)

    Go to follwoing location HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

    4)

    double click the name "Last Counter", and select "Decimal" radio button, then past copied number here.

    5)

    Got to following Location "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009"

    6)

    double clickk on name "Help", Then Scroll Down to last Line of its Value. most Likely second Last line will have some integer Value. copy that Number.

    7)

    Go to follwoing location HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

    8)

    double click the name "Last Help", and select "Decimal" radio button, then past copied number here.

    And you are all set.

    Thanks.

    • Proposed as answer by kshew97 Friday, May 27, 2011 7:53 PM
    Monday, October 04, 2010 8:08 PM
  • This worked for me. I copy this command at a new C# application and it I also got the same answer, 016. Thank you.
    Sunday, October 17, 2010 1:34 AM
  • Guys,

    I tried the earlier solutions, but it did not worked for me. So. after a lot of searching i got a cmd which solved this issue.

    I thought to write the cmd here, it can be useful for someone.

    go to cmd promt: lodctr /r:PerfStringbackup.ini

    This cmd solved my issue.

    Thanks.

    • Proposed as answer by fotant Sunday, October 24, 2010 10:04 PM
    Tuesday, October 19, 2010 9:31 AM
  • durgesh7,

    as I was reading all these answers that they are possibly right, I was getting more and more confused because I don't know what this is all about. Your  solution seemed quick and a piece of cake so I tried it. I didn't believe it would work but it did!!! My installation proceeded! I hope to be successfully completed at the end!

    Thanx !

    Sunday, October 24, 2010 10:04 PM
  • Thank you! This really worked for me!
    Monday, October 25, 2010 12:53 AM
  • On windows Vista, from the command line run "lodctr /r" to create the keys from system settings.
    • Proposed as answer by Dsureshkumar Thursday, December 02, 2010 2:51 PM
    Tuesday, October 26, 2010 4:01 AM
  • Hi Chris,

    I have worked on a thorough solution for the WIN performance counters issue.

    You may find a good solution in : http://naftalyshprai.blogspot.com/2009/08/rebuild-procedure-for-corrupt-windows.html

     

    Yours Truly,

    Naftaly Shprai

    naftalysh@gmail.com


    naftaly s
    Monday, December 20, 2010 8:59 AM
  • Hi Kane,

    I have worked on a thorough solution for the WIN performance counters issue.

    You may find a good solution in : http://naftalyshprai.blogspot.com/2009/08/rebuild-procedure-for-corrupt-windows.html

     

    Yours Truly,

    Naftaly Shprai

    naftalysh@gmail.com


    naftaly s
    Monday, December 20, 2010 9:00 AM
  • Hi Scott ,

    I have worked on a thorough solution for the WIN performance counters issue.

    You may find a good solution in : http://naftalyshprai.blogspot.com/2009/08/rebuild-procedure-for-corrupt-windows.html

     

    Yours Truly,

    Naftaly Shprai

    naftalysh@gmail.com


    naftaly s
    Monday, December 20, 2010 9:01 AM
  • I have made a simple console program that will tell you what you need to do in the registry to get this to work. The changes are a bit different depending on installed culture of the OS and the program checks this and give you the right settings.

    The program is simple so it will only tell you what you need to do and will not do it for you.

    You will find the progam here:
    http://www.publech.com/PCRHCC.zip

     


    MH
    • Proposed as answer by Mårten Holm Thursday, January 20, 2011 1:03 PM
    Thursday, January 20, 2011 12:29 PM
  • Check out this arcticle:
    https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=312847
    It's quite helpful.

    Or, try this:
    Put this at any Console application:
    string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    Watch the result. At mine it was "016".

    Then you go to the registry at this key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

    and create another one with the name you got from the string.Format result. In my case:
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\016"

    and copy the info that is on any other key in this Perflib to this key you just created. Run the instalation again. Done!

    it's useful for me when i install the sql 2008 on win7
    I had a clean install of Windows 7 and experienced this problem.  This technique resolved it.
    Thursday, January 27, 2011 11:57 PM
  • I was trying to install SQL Server 2008 Express (SQLExpr32_x86_esn.exe Spanish) on a Windows XP SP3 (Spanish). I did the next: 1. Export the key [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009] 2. then change the file you created to: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\00A] 3. click in Re-Run, and you will see it passed. That's all.
    Tuesday, March 01, 2011 6:02 AM
  • I was trying to install SQL express 2008 on WS 2008 R2 German; through my product installer.i did received same error "performance counter hive corrupted ..."

    i fixed it manually by exporting key values from[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\007 (German OS)

    after merging reg values installer worked.I just wanted know if Microsoft released any path for this issue;because this issue exists in WS 2008 R2 ENT German.i have verified it on multiple m/c its there under 007 no values are present. Is there any other solution which does not requires manual operation like coping key from one to another?

    Friday, March 04, 2011 7:56 AM
  • Pffft, all long winded processes to fix a simple problem.

    Open Regedit and goto:

    HKLM\Software\Microsoft\Windows NT\CurrentVersion\Perflib and change  "Disable Performance Counters" from '1' to '0'. 

     

    Rerun the SQL Setup Report Rules and job done. 


    • Proposed as answer by Rawns Wednesday, March 23, 2011 11:43 AM
    Wednesday, March 23, 2011 11:43 AM
  • I've actually solved the problem for my Vista and Win 7 (traditional chinese version).

    After revising %systemroot%\system32\WmiApRpl.ini:

    "[info]

     

    drivername=WmiApRpl

    symbolfile=WmiApRpl.h 

    [languages]

    004=Chinese (Traditional)

    009=English

    [objects]

    WMI_Objects_004_NAME=WMI Objects

    WMI_Objects_009_NAME=WMI Objects

    MSiSCSI_ConnectionStatistics_00000_004_NAME=iSCSI Connections

    MSiSCSI_ConnectionStatistics_00000_009_NAME=MSiSCSI_ConnectionStatistics

    MSiSCSI_InitiatorInstanceStatistics_00001_004_NAME=iSCSI Initiator Instance

    MSiSCSI_InitiatorInstanceStatistics_00001_009_NAME=MSiSCSI_InitiatorInstanceStatistics

    MSiSCSI_InitiatorLoginStatistics_00002_004_NAME=iSCSI Initiator Login statistics

    MSiSCSI_InitiatorLoginStatistics_00002_009_NAME=MSiSCSI_InitiatorLoginStatistics

    MSiSCSI_MMIPSECStats_00003_004_NAME=iSCSI HBA Main Mode IPSEC Statistics

    MSiSCSI_MMIPSECStats_00003_009_NAME=MSiSCSI_MMIPSECStats

    MSiSCSI_NICPerformance_00004_004_NAME=MSiSCSI_NICPerformance

    MSiSCSI_NICPerformance_00004_009_NAME=MSiSCSI_NICPerformance

    MSiSCSI_QMIPSECStats_00005_004_NAME=iSCSI HBA Quick Mode IPSEC Statistics

    MSiSCSI_QMIPSECStats_00005_009_NAME=MSiSCSI_QMIPSECStats

    MSiSCSI_RequestTimeStatistics_00006_004_NAME=iSCSI Request Processing Time

    MSiSCSI_RequestTimeStatistics_00006_009_NAME=MSiSCSI_RequestTimeStatistics

    MSiSCSI_SessionStatistics_00007_004_NAME=iSCSI Sessions

    MSiSCSI_SessionStatistics_00007_009_NAME=MSiSCSI_SessionStatistics

    ProcessorPerformance_00008_004_NAME=處理器效能

    ProcessorPerformance_00008_009_NAME=ProcessorPerformance

    Video_Scheduler_Statistics_00009_004_NAME=Video Scheduler

    Video_Scheduler_Statistics_00009_009_NAME=Video_Scheduler_Statistics"

     

     

    I have realized that the code 009 is for english language and 004 for chinese traditional and in my "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib" did only exist 009 and 0404 key.

    Hence, i've created a new 004 key and copied 009 counter and help contents to this newly created key.

    Without restarting the OS, I was able to install smoothly MS SQL server express RC2.

     

    I'm so happy to have overcome this problem.

     

    But just out of curiosity does anyone know the syntax for the language codes? (009 for English, 004 for Chinese and 0404?

    • Proposed as answer by MyMinchi Thursday, March 24, 2011 12:19 AM
    Thursday, March 24, 2011 12:19 AM
  • Create a shortcut to the setup file using the following parameters:

    X:\setup.exe .exe /ACTION=install /SKIPRULES=PerfMonCounterNotCorruptedCheck

    Replace X with your drive letter.:)

    Monday, April 18, 2011 9:52 AM
  • In My Machine WIN 2008 R2 German above registry location have not "Disable Performance Counters" key. Can you pls suggested?


    Monday, May 02, 2011 1:07 PM
  • MauroPreg's answer worked for me.

    OS: Windows 7 Professional 32 bits

    SQLServer: 2008 R2 Enterprise x86 & x64 es

     

    This Realy Works!

    I have the same problem when try to install SQL Server 2008 Standart Edition in a OS Win7 (after uninstall mi old version SQL Server 2005)… and the registry key:
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib09″ has values and
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib0A” was emty.
    So, I do a copy from 009 to 00A (values Counter/Help);
    And that’s it!!!

    Here we could find some values for diferent regional configurations (LCID), if we needed: http://javascripts.astalaweb.com/Ayuda/html/vsmsclcid.asp

    Yo tenia el mismo problema cuando trate de instalar SQL Server 2008 Standart Edition en un OS Win7 (después de desinstalar mi vieja version de SQL Server 2005)… y la llave del registro:
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib09″ tenía valores y
    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib0A” estaba vacía.
    Asi que hice una copia del valor 009 al 00A (valores Counter/Help);
    Y eso es todo!!!

    Acá podemos encontrar algunos valores para diferentes configuracione regionales (LCID), si los necesitamos: http://javascripts.astalaweb.com/Ayuda/html/vsmsclcid.asp

    Best Regards...


    Thursday, June 09, 2011 4:27 AM
  • this answer does not solve all perflib problems 
    Monday, July 18, 2011 8:35 AM
  • this is great! worked for me, thank you very much for going to the trouble
    Monday, July 18, 2011 8:36 AM
  • Hi there, thank you for this solution. As it worked for me, i've make a small patch for this problem.

    I've included the sourcefiles too as someone might improve the patch.

    Some improvements might be getting all the keys from the 009 registry, as for now only the Counter and Help key are being copied!

    http://www.uploadarchief.net/files/download/sql2008r2_patch.zip

     

    Still use patches like these at your own risk! Make a backup of your Registry with the System Restore program!! I'm in no way responsible for f**king up you registry, check the sources if you don't trust them and do a rebuild!

     

    Best regards..

    Tuesday, July 26, 2011 9:05 AM
  • Thanks Mårten Holm. I fixed the problem with the info of your exe. I exported 009 , edited the key and imported it as 022 bac to the registry . Now installation continues...
    Thursday, August 18, 2011 7:32 PM
  • awesome
    Monday, September 05, 2011 5:59 PM
  • Thank you Martin

     

    Your solution worked great in (french) Canada as well (00C)

     

    Cheers!

    Monday, October 31, 2011 4:51 PM
  • This is great, I have tried a lot of solution only this one worked fine

    mssql 2008 / win 7 64

    Thank you

     

    Wednesday, January 25, 2012 10:03 AM
  • This worked perfectly for me. I have the norwegian installation and tried to install on Windows 7 x64. My key was

    7C14

    Wednesday, January 25, 2012 6:41 PM
  • Great!

    This worked perfectly fine! (Win 7 Ultimate x64; SQL Server 2008)

    From the console:
    1. OPEN RegEdit
    2. FIND HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    3. Create a new name with name: XXX
    4. Copy information
    from:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    to:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\ XXX

    If any more than I hit by stupid blunder ...

    When you created the new key (step 4 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\ XXX) you also have to paste the Multi-String Values (such as "Counter" and "Help") from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009)! This is not done automatically... (stupid me!)

    Tuesday, February 21, 2012 8:28 AM
  •  

    This is still a problem with the release version of SQL 2008. I use a Swedish version of XP. I tired the solutions described in this thread and I found my 009 key in registry but nothing was wrong with the counters.

    I then tried something else that I found in a blog somewhere that it had something to do with culture settings.

    This is how I solved my problem
    I created a simple console application in visual studio that did this

    Code Snippet

    string str2 = string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");

    Console.Write(str2);

     

     

    It returned the value 01D on my computer

     

    I then opened the registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 

    and created a new key with the name 01D and then copied the information from

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

    to my new key

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\01D

    After that the installation check was ok

    The problem seems to be that it checks the culture settings and use that when it wants to find the registry key and somehow the registry keys for this are not in sync with the culture settings and therefore the key is missing 

    I tried lots of things, but this worked for me.
    1) str2 gave me "013"
    2) I exported the 009 tree with regedit to PerfLib.reg
    3) Opened PerfLib.reg with notepad and replaced "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]" to "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\013]" and saved the file
    4) Double clicked PerfLib.reg file

    Did re-run in setup and it was fine :-)

    Friday, October 19, 2012 1:56 PM