2009年7月14日

如何製作整合 SQL Server 2008 SP1 的安裝檔

如果您欲將 SQL Server 2008 SP1 整合至原本的 SQL Server 2008 RTM,可以參考下面的文章進行操作: 若要燒錄成光碟,請注意:

  • 在 DefaultSetup.ini 裡的 PCUSOURCE 要使用相對路徑,例如: [SQLSERVER2008] .... PCUSOURCE=".\PCU"
  • 因整合後的檔案會比原本的 SQL Server 2008 DVD 還大(約 5.98G),所以用 DVD5(容量 4.7G)的片子會無法放入所有的檔案,請改用DVD9的(容量 8.5G)進行燒錄

2009年7月5日

安裝 SQL Server 出現「效能監視器計數器需求」、「效能計數器登錄區一致性」或「Performance counter registry hive consistency」 的錯誤

這篇文章原本是在 MSDN 論壇「資料庫與程式開發(SQL Server Development)」區中的「mssql 2005 安裝有問題」討論,特別將其整理在此。

在安裝 SQL Server 2005 時,會出現如下的錯誤提示:


在 SQL Server 2008 則是顯示「效能計數器登錄區一致性」或「Performance counter registry hive consistency」 的錯誤。

按下「訊息」按鈕所顯示的效能監視器計數器需求(錯誤) 之詳細說明

請依照下列步驟進行設定:

  1. 開啟「登錄編輯器」
    依序按一下「開始」「執行」,在「開啟」中輸入 regedit,然後按一下「確定」按鈕。
  2. 確認機碼值
    「登錄編輯器」,找到下列機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
    您會發現如下這兩個機碼名稱與機碼值(您的機碼值可能跟我的不一樣,那沒有關係):
    Last Counter=00001dd2 (7634)
    Last Help=00001dd3 (7635)

    如此圖

  3. 找出機碼最大值
    展開上圖中位於 Perflib 之下的「009」該節點(安裝英文版的 SQL Serer,是展開 009,若安裝的是正體中文版,請展開 004 ),在右邊窗格中的 CounterHelp 機碼上,用滑鼠連按兩次來察看其最大值是多少,將捲軸拉到最下面(如果作業系統為 Vista 或更新版本,則最大的機碼值未必會出現在最後,請見文末),即可查得。以下圖為例,Help 機碼的最大值為 7635

  4. 確認機碼最大值是否相符
    回到步驟 2 中,確認 Last Counter 值(以本範例而言,其值為 7634)與  Last Help 值 (以本範例而言,其值為 7635) 必須符合上個步驟 Perflib\009(安裝英文版的 SQL Serer,是檢查 009,若安裝的是正體中文版,請檢查 Perflib\004 中的 CounterHelp 機碼的最大值(以本範例為而,其值分別為 76347635)。
    若不符何時,請修改步驟 2 中的 Last Counter 值和 Last Help 值,修改方式如下:
    1. 以滑鼠右鍵按一下右邊窗格中的 Last Counter ,連按兩下滑鼠左鍵,接著按一下「底數」下面的 ○ 十進位(D) 選項鈕, 在「數值資料」文字方塊中,鍵入設定值 7634 (此數值請依照您實際的環境鍵入),然後按一下「確定」按鈕。
    2. 以滑鼠右鍵按一下右邊窗格中的 Last Help ,連按兩下滑鼠左鍵,接著按一下「底數」下面的 ○ 十進位(D) 選項鈕在「數值資料」文字方塊中,鍵入設定值 7635(此數值請依照您實際的環境鍵入),然後按一下「確定」按鈕。
    3. 關閉「登錄編輯器」
  5. 重新執行 SQL Server 安裝程式。

PS:

  1. 像此類關於 SQL Server 安裝的問題應該是要到「TechNet 論壇」「資料庫管理 (SQL Server Management)」提問才對,因為程式開發的問題是屬於 MSDN 論壇,而 Server 的管理就屬於 TechNet 論壇
  2. 如果所使用的作業系統為 Vista 或更新版本(例如:Windows Server 2008、Windows 7),則請注意下列兩點:
    1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 之下,看不到 004,因此如果安裝的是正體中文版 SQL Server,請改檢查 0404

    2. 最大的機碼值未必會出現在最後。


      您當然可以使用人工目視的方式,逐行比對,找出最大值為何。我的作法是:
      1. 「編輯多字串」視窗中,按下滑鼠右鍵,選擇「全選(A)」指令,接著再按下滑鼠右鍵,選擇「複製(C)」指令。

      2. 開啟一個新的 Excel 工作表。
      3. 將先前複製的內容貼上。
      4. 使用「從最小到最大排序」的排序方法,即可找出最大值。


2009年6月30日

SQL Server 2008 Management Studio Express 何處尋

Microsoft SQL Server 2008 Management Studio Express(簡稱 SSMSE)提供了一個免費的整合式管理介面,讓您存取、設定、管理、和開發 SQL Server 相關的元件。

如果您安裝了 SQL Server 2008 Express,而非 SQL Server 2008 Express with Tools 或 SQL Server 2008 Express with Advanced Services,就必須自行下載並安裝 Microsoft SQL Server 2008 Management Studio Express。

下載點:Microsoft SQL Server 2008 Management Studio Express

2009年6月19日

響應環保:MCP 證書數位化

為響應微軟環境計畫(Microsoft Environmental Initiative),從 2009 年 6 月 1 日開始,MCP 證書由傳統的紙本轉換成數位化,以求減少碳粉匣與對環境的衝擊。

從 2009 年七月開始,微軟不再寄送 Welcome Kit,如欲索取紙本證書需負擔運費與處理費才行。

證書數位化的好處在於:

  • 減少浪費碳粉匣
  • 立刻存取您的 MCP 證書
  • 不變的認證與福利

2009年6月10日

如何查詢 SQL Server 的授權狀態

在 SQL Server 7.0 的時代,要查詢授權狀態,只需使用控制台中的「授權」,即可查詢或新增授權。

到了 SQL Server 2000 時,欲查詢 SQL Server 授權狀態可以開啟控制台中的「SQL Server 2000 授權安裝程式」


或是使用 regedit.exe 也可以看到機碼的相關設定(黃色所圈選的地方):


第三種方式,就是使用 T-SQL 指令進行查詢:
SELECT ServerProperty('LicenseType') 授權方式, ServerProperty('NumLicenses') 授權個數


查詢結果:


如果是採用「以每一處理器」為授權模式,相關機碼所代表的意義如下:
名稱
類型
資料
說明
Mode
DWORD
2
每一處理器(Per Processor)
ConcurrentLimit
DWORD
4
處理器個數為 4 個
(會隨您安裝的環境顯示其實際的個數)

「以每一機座」為授權模式的機碼說明如下:
名稱 類型 資料 說明
Mode DWORD 0 每一機座(Per Seat)
ConcurrentLimit DWORD 10 可連線的用戶端個數為 10 個
(會隨您於安裝時,所設定的個數而異)


因此,如果要調整授權的類型,當然就是修改機碼,要記得於修改機碼之後,重新啟動 SQL Server 服務,才能透過先前的 T-SQL 指令來查詢授權模式。

執行的結果第 1 個欄位(亦即授權方式)值是下列 3 種之一:
  • PER_SEAT
    每一基座模式
  • PER_PROCESSOR
    每一處理器模式
  • DISABLED
    停用授權


執行的結果第 2 個欄位(授權個數)是:
  • 如果在每一基座模式中,便是這個 SQL Server 執行個體所登錄的用戶端授權數目。
  • 如果在每一處理器模式中,便是這個 SQL Server 執行個體所登錄的處理器數目。
  • 當第 1 個欄位的結果是 DISABLED 時,便會傳回 NULL


但是從 SQL Server 2005 開始,於安裝時,根本就沒有讓我們選擇「以每一處理器」「以每一機座」的授權模式,所以於安裝完畢之後,在控制台裡的授權安裝程式當然也沒了。此時,欲查詢授權狀態只能找出當初購買 SQL Server 的紙本授權書,如下圖所示即為 1 個用戶端授權(Client Access License)


根據 Microsoft SQL Server Support Blog 裡的 Tracking License Information in SQL 2005 一文指出,可以自行加入並編輯相關的機碼,以便透過 T-SQL 進行查詢。SQL Server 2005 的授權模式機碼位置在:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\MSSQLLicenseInfo\MSSQL9.00

但是個人怎麼測試,結果都如下圖:

如果有人成功設定完成,麻煩告訴我,讓我知道要如何去改!