?
以前寫過一篇博文“MS SQL 日志記錄管理”,里面介紹了如何設置SQL Server的錯誤日志的最大歸檔數量,如果在SSMS的UI界面設置,可以從“Management”-> “SQL Server Logs” 右鍵單擊選項“Configure” 去設置錯誤日志的個數,如下所示:
?
如果里使用腳本設置,如下所示,這個腳本也能實現修改最大錯誤日志數量的功能
USE?[master];GO?EXEC?xp_instance_regwrite?N'HKEY_LOCAL_MACHINE',
????N'SoftwaremicrosoftMSSQLServerMSSQLServer',?N'NumErrorLogs',?REG_DWORD,
????10;
GO
以SQL Server 2008為例(默認實例),注冊表HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer 下是沒有這個參數NumErrorLogs的,這個參數實際位于HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLServer下面;
?
以SQL Server 2014為例(默認實例),注冊表HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer 下是沒有這個參數NumErrorLogs的,這個參數實際位于HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLServer下面;
當然如果是命名實例,注冊表路徑還是有所差別,但是上面存儲過程使用上面參數(同一參數)都能修改到注冊表NumErrorLogs參數,原本為N’HKEY_LOCAL_MACHINE’ 和 N’SoftwareMicrosoftMSSQLServerMSSQLServer’的值組合是參數在注冊表中具體路徑,但是實際驗證發現不是這么一回事,另外由于master.sys.xp_instance_regwrite是一個沒有文檔的存儲過程,所以不知道它內部是如何處理的,也就是說不知是其內部做了轉換還是其它原因。這個讓人相當困惑、不解的問題。
?