Service Pack 4 for Microsoft SQL Server 2000

Database Components

2005 年 3 月 21 日

© Copyright Microsoft Corporation, 2004. 著作權所有並保留一切權利。

 
SQL Server 文件編製小組雖然無法答覆關於技術支援的問題,但仍歡迎您對於這份讀我檔案文件提出相關的建議與批評。您可以使用下列的連結,透過電子郵件的方式迅速且直接的傳送您的意見。請以英文傳送您的意見。

若要撰寫並送出您對此文件的意見,請按一下這裡:  送出意見
 

內容

1.0 簡介

    1.1 系統需求

    1.2 升級至 Database Components SP4 之前

    1.3 確認 Microsoft Data Access Components 的版本

    1.4 識別 SQL Server 2000 目前的版本

    1.5 其他關於 SP4 的資訊

    1.6 SQL Server 2000 線上叢書的更新已發行

2.0 到哪裡可以找到 Database Components SP4 並加以下載

    2.1 選擇正確的語言

    2.2 下載 Database Components SP4

    2.3 解壓縮 Database Components SP4 檔案

    2.4 下載及解壓縮階段性指導方針

    2.5 Database Components SP4 安裝程式文件

3.0 安裝 Service Pack

    3.1 安裝 Database Components SP4 的事前準備

    3.2 安裝 Database Components SP4

    3.3 重新啟動服務及應用程式

    3.4 在容錯移轉叢集上安裝

    3.5 在已複寫的伺服器上安裝 Database Components

    3.6 在複寫拓撲中套用 SP4 至唯讀資料庫或檔案群組

    3.7 升級連結伺服器的目錄

    3.8 解除安裝 Database Components SP4

    3.9 重新套用 Database Components SP4

4.0 其他安裝資訊

    4.1 自動安裝

    4.2 重新散發 Database Components SP4

    4.3 Systems Management Server 分散式安裝

5.0 文件注意事項

    5.1 資料庫增強功能

    5.2 複寫增強功能

    5.3 SQL Server 代理程式及共用工具增強功能

    5.4 SQL Server 連接元件增強功能

    5.5 Meta Data Services 增強功能

    5.6 資料轉換服務增強功能

    5.7 XML 增強功能

    5.8 虛擬備份裝置 API 增強功能

    5.9 錯誤報告

    5.10 服務性增強功能

    5.11 English Query 增強功能

    5.12 DB-Library 及 Embedded SQL for C

[回到頁首]

1.0 簡介

這份讀我檔案說明如何使用 Microsoft® SQL Server™ 2000 Service Pack 4 (SP4) 的 Database Components 部分,將現有的 SQL Server 2000 資料庫引擎執行個體升級至 SQL Server 2000 SP4。

安裝 SP4 的一般程序如下:

  1. 先確定您是否可使用 SP4;若是可以的話,需要安裝哪一 (些) 部分的 SP4。在您下載及安裝 SP4 前,請先檢閱 1.0 節的全部內容。

  2. 下載並解壓縮 Service Pack 安裝檔案。2.0 節說明取得 SP4 安裝檔案的方法。

  3. 準備升級至 SP4 的執行個體。3.1 節詳細說明安裝 SP4 前您應採取的預備步驟。

  4. 安裝 SP4。3.2 節詳細說明執行 SP4 安裝程式的選項。

SQL Server 2000 SP4 有四個部分:

所有的 SQL Server Service Pack 都是累計式的套件。SQL Server SP4 包含 SP1、SP2、SP3 和 SP3a 中隨附的修正檔。

Database Components SP4 只可用於來自 Enterprise Edition、Standard Edition、Developer Edition 或 Personal Editionon 之 SQL Server 2000 資料庫引擎的執行個體。SQL Server 2000 SP4 的其他部分可套用至 SQL Server 2000 的其他元件,例如:Analysis Services、MSDE 2000,或 SQL Server 2000 (64 位元)。個別的讀我檔案說明 Analysis Services SP4、MSDE 2000 SP4 和 SQL Server 2000 SP4 (64 位元) 的使用方法。其他讀我檔案可於 Microsoft 網站 (英文) 取得。

[回到頁首]

1.1 系統需求

此節說明系統需求的變更以及會影響到 Database Engine SP4 安裝的系統相關問題。SQL Server 2000 系統需求的一般資訊,可於 Microsoft 網站 (英文) 取得。

支援系統的變更
在支援系統上安裝的問題

如果下列任一安全性原則設為 [不允許安裝],則將無法安裝 Database Components SP4。

若您使用 [不允許安裝] 設定,則必須在安裝 Database Components SP4 之前將之變更為 [無訊息式成功]。若有需要,您可以在安裝完成之後將該原則還原回其先前的設定。

注意   [不允許安裝] 並非這些安全性原則的預設設定。

設定安全性原則

  1. 在 [控制台] 中連按兩下 [系統管理工具]。

  2. 連按兩下 [本機安全性原則]。

  3. 展開 [本機原則]。

  4. 選取 [安全性選項]。

  5. 安裝 Database Components SP4 之前,請先確定右邊窗格中的下列選項設為 [無訊息式成功]:

  6. 在 Windows XP 及 Windows 2003 上:[裝置: 未簽署的驅動程式安裝操作]。

  7. 在 Windows 2000 上:[未簽署的非驅動程式安裝操作]。

[回到頁首]

應用程式需求

若某應用程式正在使用您的 SQL Server 2000 執行個體,則在您升級至 Database Components SP4 前應先詢問該應用程式的提供者,在進行 SQL Server 2000 升級時,是否有任何適用於該應用程式的注意事項。

[回到頁首]

1.2 升級至 Database Components SP4 之前

此節說明使用 Database Components SP4 將 SQL Server 2000 資料庫引擎的現有執行個體升級前,您應注意的問題以及必須執行的工作。

Database Components SP4 執行個體所建立的資料庫或資料庫備份可以附加或還原於舊版的 SQL Server 2000。但是,對於複寫拓撲中的資料庫卻有所限制。相關資訊,請參閱 1.2.2 小節複寫或記錄傳送拓撲中執行個體的注意事項

Database Components SP4 安裝程式會自動偵測要升級之 SQL Server 2000 的執行個體上存在的 SQL Server 2000 版本。安裝程式只會升級為該執行個體所安裝的元件。例如,當 Service Pack 套用到一部執行 SQL Server 2000 Standard Edition 的電腦時,它將不會嘗試升級僅附隨在 SQL Server 2000 Enterprise Edition 的元件。

Database Components SP4 只能套用到 SQL Server 的單一「預設執行個體」或「具名執行個體」。如果要將 SQL Server 2000 的多個執行個體升級至 SP4,則必須為每個執行個體分別套用 SP4。當含有一個或多個 SQL Server 2000 執行個體的電腦上有一個執行個體升級到 SP4,則所有工具也將升級到 SP4。每一執行個體不會有不同的工具版本。

若某應用程式正在使用您的 SQL Server 2000 執行個體,請先與該應用程式的提供者確認,在進行 SQL Server 2000 升級時,是否有任何適用於該應用程式的注意事項。

[回到頁首]

# 1.2.1 決定移除 Database Components SP4 的方法

使用 Database Components SP4 將資料庫引擎現有的執行個體升級前,建議您先計畫好回復成執行個體先前狀態的方法,以防稍後必須如此執行。安裝 SQL Server 2000 Database Components SP4 時,會基於維護理由變更系統資料表。也會升級身為複寫拓撲成員的使用者及散發資料庫。因為這些變更的性質,所以無法輕易地移除 Database Components SP4。若要還原成安裝 Database Components SP4 前所執行的組建,您必須先解除安裝 SQL Server 2000 資料庫引擎的執行個體,然後再將其重新安裝。其次,若您執行舊版的 SQL Server 2000 Service Pack 或套用了任何 Hotfix,您必須重新套用該 Service Pack 及 Hotfix 至該執行個體。

注意   若要移除 SP4,您必須具有在套用 SP4 之前立即製作的 mastermodelmsdb 資料庫備份。如需如需相關資訊,請參閱 3.1.1 小節備份 SQL Server 資料庫

相關資訊,請參閱 3.8 小節解除安裝 SP4

[回到頁首]

1.2.2 複寫或記錄傳送拓撲中執行個體的注意事項

SQL Server 2000 SP4 安裝程式會升級身為複寫拓撲成員的使用者資料庫。此升級因素會影響到複寫使用者資料庫的備份及還原功能。安裝 SP4 前,請先確認複寫資料庫及檔案群組是可寫入的。如需關於將 SP4 套用至涵蓋在複寫拓撲中的資料庫之詳細資訊,請參閱 3.5 小節在已複寫的伺服器上安裝 Database Components。其他複寫時備份及還原的注意事項詳細說明於 5.2.6 小節合併式複寫的備份及還原問題

注意   若 SQL Server 的執行個體不是複寫拓撲的一部份,您可以在任何 SQL Server 2000 的其他版本上備份使用者資料庫並加以還原。

如果 SP4 安裝程式偵測到任何不可寫入的使用者資料庫或檔案群組,則它會進行下列操作:

除非列在安裝記錄中的部份資料庫為複寫拓撲的成員,否則無法忽略此項警告。如果列於安裝記錄中的任何不可寫入資料庫為複寫拓撲的成員,則您必須使那些資料庫成為可寫入,並重新將 SP4 安裝套用至 SQL Server 2000 的執行個體中。

如需關於讓資料庫成為可寫入的詳細資訊,請參閱 3.6 小節在複寫拓撲中套用 SP4 至唯讀資料庫或檔案群組。如需重新套用 SP4 的相關資訊,請參閱 3.9 小節重新套用 Database Components SP4

記錄傳送和 Database Components

因為不可寫入的資料庫不會導致安裝失敗,所以您不需要在升級至 Database Components SP4 之前移除記錄傳送。但是,如果資料庫正將記錄傳送至為複寫發行者之資料庫時,您就必須執行下列動作:

  1. 套用 SP4 之前使資料庫離線。

  2. 套用 SP4 至執行個體。

  3. 將資料庫上線。

  4. 登入 Query Analyzer 並執行下列指令碼:
    USE master
    GO
    EXEC sp_vpupgrade_replication
    GO

套用 SP4 前,若沒有將所有傳送記錄至發行集資料庫的不可寫入資料庫先行離線,則會收到此錯誤:

Error Running Script sp_vpupgrade_replication (1)

若您收到此錯誤,請遵循之前的程序。

注意   在安裝期間,安裝程式將無法區分唯讀資料庫和離線或可疑的資料庫。在安裝期間,若複寫的資料庫或檔案群組為離線或可疑狀態,並且和複寫拓撲有關,則必須在資料庫成為可寫入後,重新套用 Service Pack。

[回到頁首]

1.3 確認 Microsoft Data Access Components 的版本

Database Components SP4 安裝程式會決定是否將已安裝的 Microsoft Data Access Components (MDAC) 版本升級至 MDAC 2.8 SP1。

注意   請參閱知識庫文章 301202,以取得判斷您電腦上之 MDAC 版本的指示。

Database Components SP4 安裝 MDAC 2.8 SP1 時,MDAC 的語言版本會與 Database Components SP4 的語言版本相同。若您想要使用與 Database Components SP4 不同語言版本的 MDAC,則必須在執行 Database Components SP4 安裝程式前下載並安裝您想要的 MDAC 2.8 SP1 語言版本。您可以從此 Microsoft 網站 (英文) 下載 MDAC 2.8 SP1 的特定語言版本。

MDAC 2.8 SP1 包含可升級到 MSXML 3.0 SP7 的程式。MDAC 2.81 也可升級 Microsoft SQL Server 2000 所隨附的 SQLXML 1.0。此 Service Pack 不會安裝或升級 SQLXML 3.0。若您的應用程式要求 SQLXML 3.0,您必須從此 Microsoft 網站 (英文) 下載並安裝 SQLXML 3.0。如需 MDAC 2.8 SP1 的相關資訊,請參閱此 Microsoft 網站 (英文)。關於 MDAC 版本的相關資訊,請參閱知識庫文章 822758 (英文)。MDAC 2.8 SP1 中所隨附的修正檔記載於知識庫文章 884930 (英文)。

注意   SQL Server 2000 SP4 的發行前版本安裝了 MSXML 3.0 SP7 的發行前版本。若您安裝了 SQL Server 2000 SP4 的發行前版本,建議您從 Microsoft 網站 (英文) 下載並安裝 MSXML 3.0 SP7 的確定發行版本。

[回到頁首]

1.4 識別 SQL Server 2000 目前的版本

執行安裝程式前,您必須識別所要升級之 Database Components 執行個體的版本。

識別 SQL Server 2000 Database Components 已安裝版本的方法

  1. 使用 isqlosql 或 Query Analyzer,對資料庫引擎的執行個體執行下列其中一項查詢。
  2. 使用下表找出您的 Database Components 版本。
    SQL Server 2000 版本和層級 @@VERSION 產品層級
    SQL Server 2000 原始版本 8.00.194 RTM
    Database Components SP1 8.00.384 SP1
    Database Components SP2 8.00.534 SP2
    Database Components SP3、SP3a 或 MSDE 2000 Release A。 8.00.760 SP3
    Database Components SP4 8.00.2039 SP4

    注意   如果您在安裝產品或安裝舊版的 Service Pack 後套用了 Hotfix,則您的產品版本可能會與這些值有所不同。例如:套用安全性修正檔 MS03-031 至 SQL Server 2000 SP3a 後,@@VERSION 會傳回值 8.00.818。

  3. (選擇性) 若您不確定您所執行的是 SQL Server 2000 資料庫引擎還是 MSDE 2000 的版本,可使用 isqlosql 或 Query Analyzer 針對有問題的執行個體執行下列查詢。

    若此查詢傳回 "Desktop Engine",則您所執行的是 MSDE 2000 的執行個體,否則,您所執行的就是 SQL Server 2000 資料庫引擎的執行個體。

[回到頁首]

1.5 其他關於 SP4 的資訊

此 Service Pack 中所含的修正檔清單將在微軟知識庫文章 888799 (英文) 中提供。888799 (英文) 當中所列的每個修正檔都有一個該修正檔所解決之問題的知識庫文章連結。請造訪各個知識庫文章的連結以查看每個修正檔的相關資訊。

任何與 SQL Server 2000 Service Pack 4 相關但未能即時涵蓋於此讀我檔案中的資訊將在微軟知識庫文章 884525 (英文) 中發行。

此份讀我檔案中所提到的知識庫文章可於 Microsoft 技術支援服務知識庫取得。

尋找知識庫中的文章

  1. 在 [進階搜尋] 下的 [搜尋] 文字方塊中,輸入您要搜尋的文件編號。

  2. 在 [搜尋類型] 下選取 [文章編號]。

  3. 按一下 [執行搜尋] 的向右箭號按鈕。
Hotfix

所有公開發行的 SQL Server 2000 SP3a 和 SQL Server 2000 (64 位元) 安全性公告均涵蓋於 SP4 中。

如果您是在 2004 年 12 月 2 日之後收到 SQL Server 2000 Hotfix,則該 Hotfix 可能不會涵蓋在 SP4 中。請聯絡您的主要支援提供者,瞭解如何為 SQL Server 2000 SP4 取得相同的 Hotfix。

SQL Server 2000 SP4 包含了服務性增強功能,讓您可以將日後的 Hotfix 解除安裝。相關資訊,請參閱 5.10 小節服務性增強功能

與 Slammer 蠕蟲相關的修正檔

Microsoft SQL Server 2000 (SP4 加入變更至 SQL Server 2000 元件,處理 Slammer 蠕蟲所引起的問題:

SQL Server CE 及 SQL Mobile Server 工具更新

已升級或計劃將 SQL Server 2000 資料庫和發行者伺服器升級至 SP4 的 Microsoft SQL Server 2000 Windows® CE Edition (SQL Server CE) 與 SQL Server 2005 Mobile Edition (SQL Mobile) 使用者,也應該升級 Microsoft Internet Information Services (IIS) 伺服器上的伺服器複寫元件。SQL Server CESQL Mobile 有更新的伺服器工具安裝程式可使用。

注意   即使您升級至 SQL Server 2000 SP3 或 SP3a 後曾更新您的伺服器複寫元件,您仍須將與 SP4 相關的最新更新安裝至伺服器工具元件。

OPENXML 更新

SQL Server 2000 SP4 消除了對由作業系統所安裝之 MSXML 版本執行 OPENXML 的需要。Database Components SP4 會安裝 MSXML 技術的內部版本,此版本對 MSXML 2.6 具有回溯相容性。

[回到頁首]

1.6 SQL Server 2000 線上叢書的更新已發行

《SQL Server 2000 線上叢書》為 Database Components 2000 主要的使用者文件集。線上叢書會定期更新修正檔和最新資訊。

更新的 SQL Server 2000 範例已發行

SP3 和 SP3a 中所更新的 SQL Server 2000 資料庫引擎及 Analysis Services 範例已發行。這些更新範例可從此 Microsoft 網站 (英文) 下載。

[回到頁首]

2.0 到哪裡可以找到 Database Components SP4 並加以下載

SQL Server 2000 SP4 是以下列方式散發:

[回到頁首]

2.1 選擇正確的語言

SQL Server 2000 Database Components Service Pack 有區分語言。若要升級 SQL Server 2000 的執行個體,您必須取得與您執行個體語言相同的 Service Pack。您可於 SQL Server 2000 SP4 CD 上取得 Service Pack,或者是下載 Database Components SP4 檔案。例如,若您要升級使用日文的 SQL Server 2000 執行個體,您必須取得日文版的 Database Components SP4。

若您不確定 SQL Server 2000 的執行個體所使用的語言,請:

[回到頁首]

2.2 下載 Database Components SP4

下載 Database Components SP4 自動解壓縮的安裝套件:

[回到頁首]

2.3 解壓縮 Database Components SP4 檔案

下載包含安裝套件的自動解壓縮檔後,您必須將 Database Components SP4 檔案解壓縮:

[回到頁首]

2.4 下載及解壓縮階段性指導方針

從網際網路下載及解壓縮 Database Components SP4 安裝檔案時,請使用下列指導方針:

[回到頁首]

2.5 Database Components SP4 安裝程式文件

Database Components SP4 安裝檔案包含更新的安裝文件,您可以在安裝 Database Components SP4 期間,按一下 [說明] 來存取該份文件。此份安裝文件不會針對已安裝在電腦上的《SQL Server 2000 線上叢書》版本進行更新。如需取得《SQL Server 2000 線上叢書》更新版的相關資訊,請參閱 1.6 小節 SQL Server 2000 線上叢書的更新已發行。如果您只要存取更新的 SQL Server 2000 SP4 安裝程式文件,而不要更新《SQL Server 線上叢書》,請執行 Setupsql.chm 檔案。Setupsql.chm 位於 SP4 光碟片、本機資料夾或網路共用資料夾上,包含已解壓縮之 Service Pack 檔案的資料夾的 \Books 子資料夾。

[回到頁首]

3.0 安裝 Service Pack

若要安裝 Database Components SP4,請使用下列章節中的安裝指示。在您安裝 Database Components SP4 前,請先檢閱 1.0 節簡介的全部內容。安裝 Database Components SP4 的步驟如下:

  1. 安裝 Database Components SP4 的事前準備

  2. 安裝 Database Components SP4

  3. 重新啟動服務及應用程式

[回到頁首]

3.1 安裝 Database Components SP4 的事前準備

安裝 Database Components SP4 之前,您必須先進行下列動作:

  1. 備份 SQL Server 資料庫

  2. 確認系統資料庫有足夠的可用空間

  3. 停止服務及應用程式

[回到頁首]

3.1.1 備份 SQL Server 資料庫

安裝 Database Components SP4 前,請先備份 mastermsdbmodel 資料庫。安裝 SP4 會修改 mastermsdbmodel 資料庫,使他們與 SQL Server SP4 之前的版本不相容。如果您決定重新安裝不含 SP4 的 SQL Server 2000,就需要使用這些備份。

儘管 SP4 只會更新身為複寫拓撲成員的使用者資料庫,但是備份您所有的使用者資料庫仍是比較小心的做法。

負責複寫的現存備份配置讓您在 SP4 升級之後得以將資料庫還原至已知的點以防止失敗。在套用 SP4 之後,建議為任何包含在複寫拓撲中的使用者資料庫進行記錄或完整的資料庫備份。如此一來,當複寫資料庫失敗時,就不需要在資料庫還原後重新套用 SP4。

[回到頁首]

3.1.2 確認系統資料庫有足夠的可用空間

如果並未對 mastermsdb 資料庫選取 autogrow 選項,則資料庫必須至少有 500 KB 的可用空間。若要確認它們是否有如此的空間,請對 mastermsdb 資料庫執行執行 sp_spaceused 系統預存程序。如果任一個資料庫中的未配置空間少於 500 KB,請增加資料庫的大小。如需相關資訊,請參閱《SQL Server 2000 線上叢書》的<展開資料庫>。

如果已對資料庫的 mastermsdb 資料庫選取了 autogrow,而且有足夠的磁碟空間,您可以略過先前空間確認的步驟。

若要確認是否已在 SQL Server 2000 中選取 autogrow 選項,請開啟 SQL Server Enterprise Manager,在資料庫的圖示上按一下滑鼠右鍵,然後按一下 [屬性]。確認是否已勾選了 [檔案自動成長] 核取方塊。

[回到頁首]

3.1.3 執行 Database Components SP4 安裝程式前先停止服務及應用程式

安裝 Database Engine SP4 前,您應該停止所有的應用程式和服務,包括 [控制台]、 [新增/移除程式]、SQL Server 2000 Reporting Services、SQL Server 2000 Notification Services,以及連線至升級的資料庫引擎執行個體的所有應用程式。

您可以不關閉服務就套用 Database Components SP4,但若不重新啟動系統某些服務將無法啟動。如果您不關閉服務,安裝完成時將會提示您重新啟動電腦。您若不重新啟動系統,下列服務將無法啟動:

您可以減少在安裝 Database Components SP4 後必須重新啟動電腦的機會。若要降低這種可能性,請在執行安裝程式前停止前述清單中的服務與應用程式。

您無法在叢集環境中停止服務。如需如需如需如需如需如需相關資訊,請參閱 3.4 小節在容錯移轉叢集上安裝

[回到頁首]

3.2 安裝 Database Components SP4

下列資訊僅適用於 SQL Server 2000 的 Database Components 部分。

從下列位置之一執行 Setup.bat 指令碼:

注意   若要從網路共用位置安裝資料庫元件,您必須先執行下列其中一個動作:

執行 Database Components SP4 安裝程式

安裝程式會顯示一個提示您輸入資訊的對話方塊,例如,您是要使用 SQL Server 驗證還是 Windows 驗證。如果您選擇 SQL Server 驗證,則必須為安裝程式提供 sa 登入密碼。如果您選擇 Windows 驗證,則執行安裝程式時,用來登入 Windows 的 Windows 登入帳戶必須屬於您要升級的 SQL Server 2000 執行個體的 sysadmin 固定伺服器角色成員。

安裝程式接著會進行下列工作:

[回到頁首]

驗證模式對話方塊

[驗證模式] 對話方塊預設不會為安裝選取目前的設定。對話方塊的預設設定為 Windows 驗證。請利用非空白的 sa 登入密碼,使用此對話方塊來切換 Windows 驗證或混合模式驗證。

注意   在變更驗證模式或 sa 的登入密碼之前,請先確定這項變更不會影響現有的應用程式。例如,如果將 SQL Server 的執行個體從混合模式驗證變更為僅使用 Windows 驗證,則嘗試以 SQL Server 驗證進行連線的現有應用程式,必須等到驗證模式設為 Windows 驗證後,才可連線。此外,如果您變更 sa 登入密碼,則使用舊密碼的應用程式或系統管理程序,必須在設定為使用新密碼後,才可進行連線。

重要事項  基於安全性的理由,切勿使用空白的 sa 登入密碼。

安裝程式會在 Sqlsp.log 檔案中存放其執行動作的記錄。此記錄檔存放在安裝程式執行所在電腦的 Windows 資料夾中。升級多個執行個體時,只有最新的升級會記錄在此記錄檔中。

[回到頁首]

回溯相容性檢查清單對話方塊

[回溯相容性檢查清單] 對話方塊會列出 Service Pack 套用至 SP3 之前的 SQL Server 版本時,可能會產生哪些問題。檢查清單上所出現的相容性問題,會隨著要升級的 SQL Server 2000 執行個體的設定而有所不同。

此對話方塊中可能會提出下列回溯相容性問題:

[回到頁首]

3.3 重新啟動服務及應用程式

當安裝程式完成時,可能會提示您重新啟動系統。3.1.3 小節執行 Database Components SP4 安裝程式前先停止服務及應用程式提供了何時需要重新啟動的相關指導方針。系統重新啟動後 (或在安裝程式完成卻未要求重新啟動的情況下),請使用 [控制台] 中的 [服務] 應用程式,來確定您在套用 Service Pack 前所停止的任何服務都在執行中。您在套用 Service Pack 前可能停止的服務包括 DTC 與 Microsoft Search、MSSQLServer、MSSQLServerOLAPService 與 SQLServerAgent 等服務,或其執行個體特定的等同項目。

重新啟動您在執行 Service Pack 安裝程式之前關閉的應用程式。

此外,建議您在此時備份升級的 mastermsdb 資料庫。

[回到頁首]

3.4 在容錯移轉叢集上安裝

下列資訊只適用於屬於容錯移轉叢集的 SQL Server 2000 元件:

在容錯移轉叢集上安裝此 Service Pack:

  1. 若有在任何資源中加入了 SQL Server 資源的依存性,則這些依存性必須在安裝 SP4 之前移除或離線。若未移除這些依存性,SP4 安裝程式就會使這些資源離線。

    注意   當叢集資源離線時,叢集服務也會使所有依存資源離線。

  2. 從擁有群組 (含有您計劃升級的虛擬伺服器) 的節點執行此 Service Pack。這樣可將 Service Pack 檔案安裝在容錯移轉叢集的所有節點上。

  3. 在 [安裝] 對話方塊中,鍵入要升級之虛擬伺服器的名稱。

  4. 安裝期間,請將所有叢集節點保持在線上狀態。這樣可確保升級將套用到叢集的每一個節點。

  5. 如果您在步驟 1 將依存性移除或使之離線,請還原依存性或將資源連線。

注意   安裝程式可能需要重新啟動容錯移轉叢集節點。重新啟動後即會以更新的檔案取代在安裝過程中使用的檔案。

如果您要將預設 (非叢集) 的 SQL Server 執行個體升級至虛擬伺服器,則必須先將預設 (非叢集) 的執行個體更新為虛擬執行個體,再套用 SP4。如需升級的相關資訊,請參閱《SQL Server 2000 線上叢書》的<如何從 SQL Server 7.0 主動/被動容錯移轉叢集進行更新 (安裝程式)>。

有關如何在容錯移轉叢集上安裝 SP4 的其他資訊,請參閱知識庫文章 811168 (英文)。

如果您需要在容錯移轉叢集中重新建置節點

  1. 在容錯移轉叢集中重新建置節點。有關重新建置節點的詳細資訊,請參閱《SQL Server 2000 線上叢書》的<如何復原案例 1 中的容錯移轉叢集失敗>。

  2. 執行原始 SQL Server 2000 安裝程式以將節點新增回容錯移轉叢集。

  3. 在您所新增的節點上執行 Database Components SP4 安裝程式。此安裝程序只會將新節點上的二進位檔案更新為 SP4。

注意   若您從虛擬伺服器執行所在的節點執行安裝程式,則必須對所有節點重新套用 SP4。您還必須再次執行資料庫升級指令碼。

[回到頁首]

3.5 在已複寫的伺服器上安裝 Database Components

下列資訊僅適用於屬於複寫拓撲的現有 SQL Server 2000 執行個體:

[回到頁首]

在擔任發行者和訂閱者的伺服器上安裝 SP4

在下列情況中,您可能必須靜止系統 (停止所有更新) 並同時升級所有伺服器。

範例 1:需要同步升級的拓撲

下表所含的伺服器可同時發行及訂閱可在訂閱者進行更新的發行集。如先前提醒的,對於允許在訂閱者進行更新的拓撲而言,您必須遵照散發者、發行者和訂閱者這樣的升級順序。此順序的要求是,若為合併式發行集,則先升級伺服器 A;若為含有更新訂閱者的交易式發行集,則先升級伺服器 B。在此情況下,您必須靜止系統並同時升級伺服器。

伺服器 A 伺服器 B
合併式複寫的發行者/散發者 合併式複寫的訂閱者
含更新之交易式複寫的訂閱者 含更新之交易式複寫的發行者/散發者

範例 2:允許循序升級的拓撲

在此例中,您可以先升級伺服器 A,因為唯讀交易式發行集允許在發行者/散發者之前升級訂閱者。

伺服器 A 伺服器 B
合併式複寫的發行者/散發者 合併式複寫的訂閱者
唯讀交易式複寫的訂閱者 唯讀交易式複寫的發行者/散發者

[回到頁首]

3.6 在複寫拓撲中套用 SP4 至唯讀資料庫或檔案群組

下列資訊僅適用於屬於複寫拓撲的 SQL Server 2000 元件:

當有不可寫入的資料庫或檔案群組時,安裝程式將顯示下列訊息:

Setup has detected one or more databases and filegroups which are not writable.

通常,您可略過此警告而繼續安裝。然而,如果有任何列於安裝記錄中的不可寫入資料庫為複寫拓撲的成員時,您必須使這些資料庫成為可寫入,並將 SP4 安裝程式重新套用至該 SQL Server 2000 執行個體。

注意   此訊息不影響自動安裝。如需關於自動安裝的詳細資訊,請參閱 4.1 小節自動安裝

在安裝期間,安裝程式無法辨別不可寫入的資料庫以及離線或可疑的資料庫之間的差異。在安裝期間,若複寫拓撲中的資料庫或檔案群組無法寫入,您必須重新套用 Service Pack 以升級此資料庫。有關如何使資料庫連線的詳細資訊,請參閱《SQL Server 線上叢書》中的<附加及分離資料庫>主題。有關診斷可疑資料庫的詳細資訊,請參閱《SQL Server 線上叢書》中的<伺服器與資料庫疑難排解>主題。

將 Database Components SP4 套用至唯讀資料庫:

  1. 使唯讀資料庫可寫入,方法是使用 ALTER DATABASE 陳述式,如下所示:
    ALTER DATABASE database SET READ_WRITE
  2. 為所有唯讀資料庫重複步驟 1。

  3. 套用 (或重新套用) SP4。

  4. 如有需要,可使資料庫再次成為唯讀,方法是使用 ALTER DATABASE,如下所示:
    ALTER DATABASE database SET READ_ONLY

將 SP4 套用至唯讀檔案群組

  1. 使唯讀檔案群組可寫入,方法是使用 ALTER DATABASE,如下所示:
    ALTER DATABASE Database 
    MODIFY FILEGROUP filegroup_name READWRITE 
  2. 為所有唯讀檔案群組重複步驟 1。

  3. 套用 (或重新套用) Service Pack。

  4. 使檔案群組再次成為唯讀,方法是使用 ALTER DATABASE,如下所示:
    ALTER DATABASE Database 
    MODIFY FILEGROUP filegroup_name READONLY

如需 ALTER DATABASE 的詳細資訊,請參閱《SQL Server 2000 線上叢書》的<ALTER DATABASE>參考主題。如需重新套用 SP4 的相關資訊,請參閱 3.9 小節重新套用 Database Components SP4

[回到頁首]

3.7 升級連結伺服器的目錄

當您將 SQL Server 2000 資料庫引擎的執行個體升級至 Database Components SP4 時,可能必須確認某些系統的預存程序是否已在其他 SQL Server 或 MSDE 的執行個體中升級。

Database Components SP4 包含了將 Microsoft Data Access Components (MDAC) 升級至 2.8 SP1 MDAC 版的程式。MDAC 2.8 SP1 包含了升級 SQLOLEDB 提供者與 SQL Server ODBC 驅動程式的程式。如需相關資訊,請參閱 1.3 小節確認 Microsoft Data Access Components 的版本。當提供者或驅動程式連線至 SQL Server 或 MSDE 的執行個體時,提供者或驅動程式會使用一組稱為目錄預存程序的系統預存程序。執行個體上的目錄預存程序版本,必須與提供者或驅動程式所使用的版本相同,甚至更新。若您嘗試連接目錄預存程序版本較舊的 SQL Server 或 MSDE 執行個體,則會收到下列錯誤:

The ODBC catalog stored procedures installed on server <ServerName>
are version <OldVersionNumber>; version <NewVersionNumber> or later
is required to ensure proper operation. Please contact your system
administrator.

[回到頁首]

執行 Instcat.sql 指令碼

每個版本的提供者與驅動程式都會隨附名為 Instcat.sql 的指令碼。Instcat.sql 可針對任何目錄版本較舊的 SQL Server 或 MSDE 執行個體,升級其中的目錄預存程序。

安裝 Database Components SP4 後,您必須針對任何版本比 SQL Server 2000 SP4 舊,而且具有下列特性的 SQL Server 或 MSDE 執行個體,執行 Database Components SP4 所提供的 Instcat.sql 指令碼:

使用 Windows 驗證模式升級執行個體上的目錄預存程序:

  1. 使用屬於 SQL Server sysadmin 固定伺服器角色成員的登入,來登入 Windows。

  2. 開啟命令提示字元視窗。

  3. 執行 osql 公用程式:

使用混合模式升級執行個體上的目錄預存程序:

  1. 使用任何登入來登入 Windows。

  2. 開啟命令提示字元視窗。

  3. 執行 osql 公用程式:

其中:

Instcat.sql 指令碼可產生許多訊息。通常這些訊息並不會指出任何錯誤;它們只是通知您指令碼中的每個 Transact-SQL 陳述式各影響到多少資料列。最後一則訊息應會指出指令碼的執行是否成功。

[回到頁首]

3.8 解除安裝 Database Components SP4

若要移除 Database Components SP4,請遵循本節中的步驟。

注意   MDAC 更新無法解除安裝。如需相關資訊,請參閱 1.3 小節確認 Microsoft Data Access Components 的版本

若要能夠回復到安裝 SQL Server 2000 元件 SP4 版之前的狀態,您必須在安裝 SP4 前先備份 mastermsdb model 資料庫。如需如需相關資訊,請參閱 3.1.1 小節備份 SQL Server 資料庫

如果有任何資料庫會參與複寫,則您必須停用發行。

停用發行:

  1. 在 SQL Server Enterprise Manager 中,依序展開 SQL Server 群組與伺服器,然後在 [複寫] 資料夾上按一下滑鼠右鍵,再按 [設定發行、訂閱者及散發]。

  2. 按一下 [發行集資料庫] 索引標籤。

  3. 清除每個參與複寫的資料庫的核取方塊。如此即可卸離資料庫。

還原至安裝 SP4 前的 SQL Server 版本

  1. 卸離所有使用者資料庫。相關資訊,請參閱《SQL Server 線上叢書》的<如何附加和卸離資料庫 (Enterprise Manager)>。

  2. 解除安裝 SQL Server。在 [控制台] 中連按兩下 [新增/移除程式],選取您要解除安裝的 SQL Server 執行個體,再按一下 [移除]。

  3. 從 光碟片或您當初安裝 SQL Server 的位置重新安裝 SQL Server 2000。

  4. 套用任何在 Database Components SP4 之前安裝的 Service Pack 和 Hotfix。

  5. 從安裝前所建立的最後一個備份,還原 mastermsdbmodel 資料庫。若資料檔案的位置並未變更,則此還原會自動附加任何在建立備份時便已附加的使用者資料庫。

  6. 附加任何在 master 資料庫最後一次備份後所建立的使用者資料庫。

  7. 必要時設定複寫。

    警告  還原至安裝 SP4 前的 SQL Server 2000 版本後,套用 SP4 後對資料庫 mastermsdbmodel 所做的所有變更都會遺失。

[回到頁首]

3.9 重新套用 Database Components SP4

下列資訊適用於所有元件:

在下列情況下,您必須重新套用 SP4:

若要重新套用 SP4,請遵循 3.0 小節安裝 Service Pack 中的步驟。

[回到頁首]

4.0 其他安裝資訊

本章節說明僅適用於特殊狀況的其他 Service Pack 安裝考量事項。

[回到頁首]

4.1 自動安裝

Database Components SP4 不再包含預先定義的安裝初始設定檔案 (.iss)。不過,每當您執行 Database Components SP4 自動安裝時,安裝選項就會寫入位於系統資料夾的 setup.iss 檔案中。此 .iss 檔案可在稍後用來執行 Database Components SP4 的自動安裝。如需執行自動安裝的詳細資訊,請參閱《SQL Server 2000 線上叢書》中的<執行自主式安裝>主題。

[回到頁首]

自動安裝注意事項

下列是自動安裝的相關注意事項:

自動安裝參數 描述
UpgradeMSSearch 在處理必要的全文檢索目錄重新建置時,必須使用此參數。啟用 [全文檢索搜尋] 時,您必須將此參數設為 1。如需相關資訊,請參閱 5.1.4 小節在安裝程式完成後重新建置全文檢索目錄
MSXTSXUpgraded 在處理主要/目標伺服器設定的升級相關問題時,必須使用此參數。若您要將 SP4 套用至主要或目標伺服器,則必須將此參數設為 1。如需相關資訊,請參閱 5.3.2 小節主要/目標伺服器設定的變更
EnableCrossDBChaining (選擇性) 此參數可用來啟用跨資料庫擁有權鏈結。若要啟用跨資料庫擁有權鏈結,請將此參數設為 1。如需相關資訊,請參閱 5.1.10 小節跨資料庫擁有權鏈結
EnableErrorReporting (選擇性) 此參數可用來啟用錯誤報告。若要啟用錯誤報告,請將此參數設為 1。如需相關資訊,請參閱 5.9 小節錯誤報告

[回到頁首]

4.2 重新散發 SP4 Database Components

Database Components SP4 含有自動解壓縮檔案 Sqlredis.exe。當 Sqlredis.exe 執行時,它會:

  1. 執行 Microsoft Data Access Components (MDAC) 2.8 Service Pack 1 中的 Mdac_typ.exe。這會安裝 MDAC 2.8 SP1 核心元件 (如果未偵測到相同或較新版本) 及 SP4 中所含的 SQL Server 和 Desktop Engine 用戶端連接元件版本。如需相關資訊,請參閱 1.3 確認 Microsoft Data Access Components 的版本

  2. 安裝 Microsoft Jet ODBC 驅動程式及連接元件。

您可以根據 SP4 所附的 Redist.txt 檔中所說明的條款和條件,重新散發 Sqlredis.exe 檔。

[回到頁首]

4.3 Systems Management Server 分散式安裝

您無法從遠端位置安裝 Database Components SP4。不過,您可以使用 Microsoft Systems Management Server 在多部執行 Windows Server 2003、Windows XP 或 Windows 2000 的電腦上自動安裝 SP4。若要執行此作業,您必須使用套件定義檔案 (Smssql2ksp4.pdf) 在 Systems Management Server 中自動建立 SQL Server 套件。然後,SQL Server 套件便可散發並安裝在執行 Systems Management Server 的電腦上。Sms2kdef.bat 是批次檔,它會使用 Systems Management Server 啟動自動安裝。在這類的安裝中,安裝程式會自動偵測其所需的相關系統資訊。使用者無需輸入。

[回到頁首]

5.0 文件注意事項

本節將說明套用 Database Components SP4 後可能產生的問題,以及您在執行 SP4 時可使用的新功能。當您執行 Service Pack 從任何舊版的 SQL Server 2000 升級時,需要注意這些問題。本節不會完整說明 SP4 中提供的所有修正檔。如需這些修正檔的完整清單,請參閱微軟知識庫文章 888799 (英文)。

任何與 SQL Server 2000 Service Pack 4 相關但未能即時涵蓋於此讀我檔案中的資訊將在微軟知識庫文章 884525 (英文) 中發行。

[回到頁首]

5.1 資料庫增強功能

下列增強功能適用於安裝有 Database Components SP4 的 SQL Server 2000 執行個體。

[回到頁首]

5.1.1 移除雜湊組

於 SP1 推出

雜湊組已被移除。因為 SQL Server 2000 的某些增強功能,使雜湊組不再具備其在 SQL Server 7.0 版中所提供的效能優勢。此外,移除雜湊組將使得 SQL Server 2000 更穩定。

因此,查詢最佳化程式不再使用雜湊組產生查詢計劃。

在極少數的情況下,移除雜湊組可能會導致查詢處理的速度更慢。您可以分析這類的查詢,瞭解建立更適合的索引是否可使得查詢效能回復為原先的水準。

[回到頁首]

5.1.2 新增 Affinity Mask 參數

於 SP1 推出

此 Service Pack 中已新增兩個 Affinity Mask 參數。

Affinity Mask I/O 參數

利用此 Service Pack,您可以指定要使用哪些 CPU 來執行磁碟 I/O 作業的執行緒。這個參數必須和 affinity mask 選項搭配使用。如需相關資訊,請參閱文章 298402 (英文)。

Affinity Mask Connection 參數

利用此 Service Pack,您可以設定已啟用 Virtual Interface Architecture (VIA) 的系統,將來自特定網路卡的 SQL Server 連線繫結至一個或一組處理器。這個參數必須和 affinity mask 選項搭配使用。如需相關資訊,請參閱文章 299641 (英文)。

[回到頁首]

5.1.3 篩選的索引檢視

於 SP2 推出

如果您遇到如微軟知識庫文章 306467 (英文) 中所提到的 SQL Server 2000 錯誤 355069,則此 Service Pack 將只能防止將來因資料修改而產生的非預期結果。因此,除了套用此修正檔之外,所有根據篩選條件檢視的索引都需要重新建立。

[回到頁首]

5.1.4 在安裝程式完成後重新建置全文檢索目錄

於 SP3 推出

安裝 SP4 以升級 SP2 或更舊的版本時,會重新建置所有的全文檢索目錄。重新建置的動作是自動而且會耗用許多資源。針對全文檢索目錄的查詢可能在重新建置程序完成之前只會傳回部份結果或無任何結果。安裝 SP4 之後,系統事件日誌將包含一些訊息,用以說明目錄已毀損、為舊版本,以及應重新建置。

如需相關資訊,請參閱知識庫文章 327217 (英文),此文章中也會討論在重新建置過程中繼續使用全文檢索搜尋、以及避免自動重新建置的可行方式。

[回到頁首]

5.1.5 sp_change_users_login 的語法變更

於 SP3 推出

當您以 @Action=Auto_Fix 引數執行 sp_change_users_login 時,必須在此時指定密碼。sp_change_users_login 會將密碼指派給任何它為使用者建立的新登入。下列範例顯示新的 @Password 引數:

sp_change_users_login [ @Action = ] 'action' 
    [ , [ @UserNamePattern = ] 'user' ] 
    [ , [ @LoginName = ] 'login' ]
    [ , [ @Password = ] 'password' ]

請只將 @Password 引數搭配 @Action=Auto_Fix 使用。下列範例顯示在使用 Auto_Fix 時,sp_change_users_login 命令可使用的新語法。《SQL Server 線上叢書》中的其他範例沒有變動。

USE pubs
go
EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-36'
Go

[回到頁首]

5.1.6 預設停用臨機操作存取 OLE DB 提供者

於 SP3 推出

若未明確設定 DisallowAdhocAccess 登錄選項,則依預設將不允許臨機操作存取 OLE DB 提供者。這意謂著臨機操作查詢語法 (如 OPENDATASOURCE 及 OPENROWSET) 將無法在遠端伺服器上作用。若要允許臨機操作存取,您必須明確將 DisallowAdhocAccess 選項設為 0

[回到頁首]

5.1.7 新的 SqlServerLike 提供者選項

於 SP3 推出

為了更有效地進行處理包含 LIKE 述詞的遠端查詢,SP3 中加入了 SqlServerLike 選項。SQL Server 2000 SP3 或更新版本目前有兩種選項可傳送 LIKE 運算至連結的伺服器。若連結伺服器的 OLE DB 提供者支援 SQL Server 的 LIKE 運算子與萬用字元語法,您即可指定 SqlServerLIKE 選項,讓 SQL Server 使用 SQL Server 語法傳送 LIKE 運算。若連結伺服器的 OLE DB 提供者報告它可支援初級 ANSI/ISO SQL-92 語法,或傳回 SQLPROP_ANSILIKE 屬性,則 SQL Server 將使用 SQL-92 語法傳送 LIKE 運算至連結的伺服器。如需 SQLPROP_ANSILIKE 的相關資訊,請參閱《SQL Server 2000 線上叢書》中的<撰寫 SQLPROPSET_OPTHINTS 屬性集程式>主題。

您必須新增登錄機碼值,才能為 OLE DB 提供者啟用 SqlServerLIKE 選項。

安全性注意事項  錯誤地編輯登錄,可能會造成嚴重的問題而必須重新安裝作業系統。Microsoft 不保證能夠解決因登錄編輯錯誤而導致的問題。編輯登錄前,請先備份重要的資料。

  1. 開啟 Regedit32。

  2. 尋找適當的登錄機碼:
  3. 在 <Provider Name> 機碼中,新增名為 SqlServerLIKE 的 DWORD 值,並將其值設為 1。

[回到頁首]

5.1.8 分散式查詢的擴充錯誤訊息

於 SP3 推出

對於分散式查詢,SQL Server 不但會傳回伺服器錯誤資訊,還會傳回提供者錯誤資訊。當相連結的伺服器之間的查詢導致錯誤時,SQL Server 會檢查提供者是否支援 IErrorRecords OLE DB 介面。如果支援這個介面,則 SQL Server 會呼叫 GetErrorInfo 函數以從提供者取得其他錯誤資訊,並將這個資訊當作錯誤訊息的一部份傳回給使用者。如果不支援 IErrorRecords 介面,SQL Server 的行為就不會有改變:SQL Server 會傳回一般錯誤。

例如,對使用 MSDASQL (MSDASQL 不支援 sql_variant) 的伺服器執行下列查詢:

SELECT * FROM remote2k.dqtable.dbo.sqlvariantnotnull 
--Remote2k is a loopback server.

在 SP3 之前,SQL Server 會傳回下列錯誤訊息:

Server: Msg 7356, Level 16, State 1, Line 1

OLE DB provider 'msdasql' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.

套用 SP3 或更新版本後,SQL Server 會傳回下列錯誤訊息:

Server: Msg 7356, Level 16, State 1, Line 1

OLE DB provider 'msdasql' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.

OLE DB error trace [Non-interface error:  Column 'sql_variant' (compile-time
ordinal 3) of object '"dqtable"."dbo"."sqlvariantnotnull"' was reported
to have a DBCOLUMNFLAGS_ISFIXEDLENGTH of 16 at compile time and 0 at run time].

[回到頁首]

5.1.9 新函數 fn_get_sql 可傳回 SQL 陳述式

於 SP3 推出

SP3 與更新版本中含有新函數 fn_get_sql,可為指定的 SQL 控制代碼傳回 SQL 陳述式文字。此外,為支援此函數,sysprocesses 系統資料表中加入了三個新的資料行:sql_handlestmt_startstmt_end

fn_get_sql 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊,請參閱 1.6 小節 SQL Server 2000 線上叢書的更新已發行。這是 fn_get_sql 參考主題的英文版。

[回到頁首]

5.1.10 跨資料庫擁有權鏈結

於 SP3 推出

這個 Service Pack 提供開啟及關閉跨資料庫擁有權鏈結的新選項。

在安裝 Database Components SP4 時,安裝程式的 [回溯相容性檢查清單] 對話方塊會顯示設定跨資料庫擁有權鏈結的選項。安裝程式預設會關閉所有使用者資料庫的跨資料庫擁有權鏈結。您可以啟用所有資料庫的跨資料庫擁有權鏈結。如需相關資訊,請參閱回溯相容性檢查清單對話方塊

注意   不建議您為所有資料庫啟用跨資料庫擁有權鏈結。

您可以在安裝之後,使用下列方法來開啟及關閉執行個體中所有資料庫的跨資料庫擁有權鏈結:

如果該執行個體的跨資料庫擁有權鏈結遭到關閉,您可以將其設定為個別的資料庫。請使用下列方法,來開啟或關閉資料庫的跨資料庫擁有權鏈結:

如需相關資訊,請在執行安裝程式時按一下 [回溯相容性檢查清單] 頁面上的 [說明] 按鈕,下載更新版的 SQL Server 2000 線上叢書,或請參閱知識庫文章 810474 (英文)。

[回到頁首]

5.1.11 追蹤旗標 1204 增強功能

於 SP3 推出

追蹤旗標 1204 會傳回造成死結的鎖定類型,以及目前受到影響的命令。在 SP3 或更新的版本中,當開啟這個追蹤旗標時,死結資訊會自動寫入錯誤記錄中。

[回到頁首]

5.1.12 sp_changedbowner 使用權限變更

於 SP3 推出

只有 sysadmin 固定伺服器角色的成員才能夠執行 sp_changedbowner 系統預存程序。

[回到頁首]

5.1.13 偵錯功能變更

於 SP3 推出

Microsoft Visual Studio® 6.0 及更舊的版本,或是 SP3 之前的 SQL Server Query Analyzer,預設會關閉偵錯預存程序的功能。預設也會關閉應用程式偵錯 (偵錯用戶端應用程式時,在 SQL Server Transact-SQL 中斷點停止)。若要啟用偵錯功能,請執行 sp_sdidebug 並傳遞 legacy_on 參數。若要停用偵錯,請將 legacy_off 傳遞給此程序。

注意   不建議您在實際執行的伺服器上執行 sp_sdidebug 預存程序。

如需相關資訊,請參閱微軟知識庫文章 328151 (英文)。

注意   線上叢書所說明的是用戶端偵錯元件 sqldbreg.exe。在 SP3 中,此元件已重新命名為 sqldbreg2.exe。

[回到頁首]

5.1.14 無法停用叢集伺服器上的具名管道

於 SP3 推出

套用 Service Pack 後,您便無法在加入容錯移轉叢集的資料庫引擎執行個體上停用「具名管道」通訊協定。

[回到頁首]

5.1.15 UDP 連接埠 1434 上的作業

於 SP3a 推出

從 SQL Server 2000 SP3a 開始,設定為不支援網路通訊的 SQL Server 2000 資料庫引擎與 MSDE 2000 的執行個體將會停止使用使用者資料包通訊協定 (UDP) 連接埠 1434。設定為支援網路通訊的執行個體則會繼續使用 UDP 1434。

執行個體在升級至 SP3a 或更新版本後,當該執行個體的所有伺服器網路程式庫 (共用記憶體網路程式庫除外) 都停用時,就會停止使用 UDP 1434。當您啟用任何伺服器網路程式庫時,執行個體就會開始使用連接埠 1434。如需停用或啟用伺服器網路程式庫的相關資訊,請參閱《SQL Server 2000 線上叢書》中的<SQL Server 網路公用程式>主題。

電腦不會停止使用 UDP 連接埠 1434,除非電腦上所有的 SQL Server 2000 與 MSDE 2000 執行個體都已升級至 SP3a 或更新版本,而且已設定為不支援網路通訊。

共用記憶體網路程式庫的狀態並不會影響到 UDP 連接埠 1434 的開啟或關閉。共用記憶體網路程式庫僅適用於本機連線,而不會使用網路。共用記憶體網路程式庫一律為作用中,您無法加以啟用或停用。

您無法在安裝或升級 SQL Server 2000 資料庫引擎的執行個體時,停用所有的伺服器網路程式庫。

[回到頁首]

5.1.16 最大網路封包大小的變更

於 SP4 推出

在 SP4 中,網路封包大小選項 (使用 sp_configure 設定) 的最大值為 32767。此值略小於先前最大值 65536 的二分之一。在升級的過程中,現有的值若大於 32767 就會自動調整為 32767。若有指令碼嘗試使用 sp_configure 來設定大於 32767 但是小於或等於 65536 的值,則此值也會設為 32767。若將網路封包大小設為大於 65536 的值,則會產生錯誤。

[回到頁首]

5.1.17 最佳化含有大型 IN 清單或大量 OR 子句的查詢

於 SP4 推出

SP4 對 SQL Server 最佳化工具的行為做了變更,這項變更會影響述詞中含有大型 IN 清單或大量 OR 子句的查詢。更明確地說,這項變更 (於 SQL Server 2000 Hotfix 789 中推出) 會影響含有下列項目的查詢,或影響可使用含有下列項目的等同運算式加以重寫的查詢:

由於這項變更,SQL Server 得以在編譯這些類型的陳述式時使用較少記憶體,因而避免發生記憶體不足的錯誤。當這類查詢在具有大量記憶體且平行處理作業較少的系統上執行時 (這種情況很少見),最佳化工具可選擇效能較低的查詢計劃。為覆寫最佳化工具行為的變更,此 Service Pack 中提供了追蹤旗標 9060。追蹤旗標 9060 預設為 OFF。當追蹤旗標為 ON 時,就會啟用 Hotfix 789 之前的 SP3 行為。若在追蹤旗標為 ON 時產生錯誤 701 (系統記憶體不足),請考慮為 IN 清單中的值使用暫存資料表或資料表變數,藉以重寫查詢。若為數值範圍,請使用 BETWEEN 子句或大於 (>) 或小於 (<) 運算子。如需使用追蹤旗標的相關資訊,請參閱《SQL Server 線上叢書》的<追蹤旗標>。

[回到頁首]

5.1.18 未來的網路通訊協定支援

於 SP4 推出

SP4 支援 Banyan VINES、Multiprotocol、AppleTalk 與 NWLink IPX/SPX 等網路通訊協定。但這些通訊協定將不受 SQL Server 2005 與後續版本的支援。請依此進行規劃。

[回到頁首]

5.1.19 監視以 Windows-on-Windows 64 模式執行的 SQL Server 執行個體

於 SP4 推出

當您在 Windows Server 2003 x64 SP1 或更新版本中執行 Windows-on-Windows 64 (WOW) 模式時,無法使用預設的 64 位元版 Windows 效能監視器來存取用來監視 SQL Server 2000 SP4 執行個體的 SQL Server 效能計數器。您必須改用 32 位元版本的 Windows 效能監視器。32 位元的版本位於:

%systemdrive%\WINDOWS\SysWOW64\perfmon.exe

在 WOW 模式中,只有當 32 位元版的效能監視器執行於與 SQL Server 2000 SP4 執行個體相同的電腦上時,才可以檢視 SQL Server 效能計數器。

此項限制不適用於 64 位元 Itanium 型系統的 Windows Server 2003。

[回到頁首]

5.2 複寫增強功能

本節討論 SP4 中所包含之 SQL Server 2000 複寫的增強功能。

[回到頁首]

5.2.1 交易式複寫 UPDATE 自訂預存程序

於 SP1 推出

在交易式複寫安裝期間,會在訂閱資料庫中建立插入、刪除及更新動作的自訂預存程序。不管有多少個資料行受到 UPDATE 陳述式影響,更新自訂預存程序都會更新訂閱資料表中所有的資料行。所有未變更的資料行都會重設至更新前就已存在的相同數值。這個動作通常不會造成任何問題。不過,如果這些資料行有任何一行會編製索引,則這個重設可能會變得很費時。

若您使用交易式複寫且在訂閱資料表上有數個索引,但只有若干資料行的值會因更新而變更,則在訂閱者中套用變更時,為維護索引而產生的負荷可能會使效能受到影響。例如,用於報告目的的訂閱資料庫可能比發行集資料庫具有更多的索引。在執行時期動態建置 UPDATE 陳述式可改善效能。更新將只涵蓋已變更的資料行,因而建立最理想的 UPDATE 字串。

這個 Service Pack 包含新的預存程序 sp_scriptdynamicupdproc,它可以產生自訂的預存程序供您在訂閱者中使用,以在執行時期動態建置 UPDATE 陳述式。然而,在執行時期建置動態的 UPDATE 陳述式需要額外的處理。

sp_scriptdynamicupdproc 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊,請參閱 1.6 小節 SQL Server 2000 線上叢書的更新已發行。這是 sp_scriptdynamicupdproc 參考主題的英文版本。

[回到頁首]

5.2.2 唯一資料行上的交易式複寫 UPDATE 陳述式

於 SP1 推出

在交易式複寫中,通常會複寫 UPDATE 陳述式來作為更新。但是,如果更新會變更任何資料行,而此資料行是唯一索引、叢集索引或是用來作為唯一條件約束之運算式的一部分,則在訂閱者執行更新的方式,就會變成 DELETE 陳述式後面再跟著 INSERT 陳述式。這樣做是因為這種更新可能會影響多個資料列,如果逐列傳遞更新,便可能會發生唯一性違規。

如果更新只影響一個資料列,則不可能發生唯一性違規。因此,這個 Service Pack 中已加入追蹤旗標 8207,容許在發生任何只會影響一個資料列的唯一資料行更新時,使用 UPDATE 陳述式的方式來複寫更新。我們特別加入此最佳化,讓應用程式可在訂閱者中安裝使用者定義的 UPDATE 觸發程序,並要求這些觸發程序在發生只會影響一個資料列的唯一資料行更新時啟動。

若要使用追蹤旗標 8207,請先從命令提示字元 (sqlservr.exe -T8207) 加以開啟 (或在執行時期使用 DBCC TRACEON(8207, -1) 加以開啟),再啟動記錄讀取器代理程式。

重要事項  通常追蹤旗標 8207 會與唯讀交易式複寫一起使用。如果主索引鍵 UPDATE 會在訂閱者中發生,請勿對可更新的訂閱使用此追蹤旗標。

[回到頁首]

5.2.3 已移除並行快照處理的限制

於 SP1 推出

在 SQL Server 2000 中,如果發行資料表具有不是主索引鍵或叢集索引鍵的唯一索引,則不建議您執行並行快照處理。在產生並行快照時,如果修改了叢集索引鍵的資料,則複寫可能會在套用並行快照到訂閱者時,因為有重複索引鍵錯誤而失敗。使用這個 Service Pack 會移除使用並行快照處理的限制。

[回到頁首]

5.2.4 交易式複寫指令碼自訂預存程序

於 SP1 推出

設定非同步訂閱 (也就是不會接收起始快照的訂閱) 時,必須以手動方式建立 INSERT、UPDATE 及 DELETE 陳述式的自訂預存程序。一般而言,當傳遞起始快照時,這些陳述式將建立在訂閱者中。已加入新的預存程序sp_scriptpublicationcustomprocs,這個預存程序可讓您在發行集層級產生自訂的預存程序指令碼。這個新功能可讓您更輕易地設定非同步的訂閱。

sp_scriptpublicationcustomprocs 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊,請參閱 1.6 小節 SQL Server 2000 線上叢書的更新已發行。這是一份記載 sp_scriptpublicationcustomprocs 的英文版參考主題。

[回到頁首]

5.2.5 合併複寫保留性中繼資料清除

於 SP1 推出

當合併複寫系統資料表包含大量的中繼資料時,清除中繼資料可以改善效能。在 SQL Server 2000 SP1 之前,執行 sp_mergecleanupmetadata 可清除中繼資料。不過,SQL Server 2000 SP1 及以上版本包含保留性中繼資料清除,也就是說可以自動從下列系統資料表中刪除中繼資料:

注意   如果在發行集上啟用了 @keep_partition_changes 同步最佳化選項,就會有事前影像資料表。

保留性中繼資料清除發生的過程如下:

sp_add_agent_parameter 的其他參數

系統預存程序 sp_add_agent_parameter 現在已有 MetadataRetentionCleanup 參數,可讓您從合併代理程式設定檔新增或移除中繼資料保留清除。數值 1 表示設定檔應該包含清除;數值 0 則表示它不該包含清除。例如,若要將中繼資料保留清除新增至設定檔,請執行下列程式碼:

EXEC sp_add_agent_parameter @profile_id=<my_profile_id>,
  @parameter_name='MetadataRetentionCleanup', @parameter_value=1
不同版本 SQL Server 拓撲中的中繼資料清除

若要在合併式複寫的相關資料庫中執行自動保留性清除,則該資料庫及合併代理程式都必須位在執行 SQL Server 2000 SP1 或更新版本的伺服器上。例如:

在某些伺服器上而未在其他伺服器上執行自動清除,頂多只會造成假衝突,但機率應該不高。若為包含 SQL Server 2000 SP1 之前版本的 SQL Server 版本的拓撲,您可以在所有不會自動清除的伺服器上執行 sp_mergemetadatacleanup,即可看到其效能優勢。

防止假衝突

保留性中繼資料清除可防止其他節點上發生無交集及無訊息覆寫變更。不過,如果符合下列條件,就可能會發生假衝突:

例如,如果發行者的中繼資料已遭到清除,但訂閱者的中繼資料尚未清除,而發行者進行了更新,則即使資料表面上已同步,但仍會發生衝突。

若要防止這種衝突,請確實在大致相同的時間內清除相關節點的中繼資料。如果 -MetadataRetentionCleanup 設定為 1,則在開始合併之前會自動清除發行者及訂閱者,以確定會同時清除節點。如果發生衝突,請使用合併複寫衝突檢視器來檢視衝突,且依需要變更結果。

如果發行項屬於數個發行集,或是處於重新發行的狀況,則發行者及訂閱者中的特定資料列的保留期限有可能不同。若要減少清除某一邊而未清除另一邊的中繼資料的機會,建議不同的發行集最好有類似的保留期限。

注意   如果系統資料表包含大量必須清除的中繼資料,則執行合併處理可能會花費很長的時間。定期清除中繼資料可以避免這個問題。

[回到頁首]

5.2.6 合併式複寫的備份及還原問題

於 SP1 推出

還原自備份的發行集資料庫應先與具有全域訂閱 (也就是具有指定優先順序值的訂閱) 的訂閱資料庫進行同步,以確保正確的交集行為。同步處理可確保發行集資料庫中因還原作業而失去的變更,能夠正確地重新套用。

請勿使發行集資料庫與具有匿名訂閱的訂閱資料庫同步處理。因為匿名訂閱沒有足夠的中繼資料可以將變更套用至發行集資料庫,這樣的同步處理可能導致非交集的資料。

當您計劃合併式複寫的備份及還原作業時,請考慮下列其他問題:

僅在備份不超過訂閱者所訂閱的所有發行集的最短保留期限時,才從備份還原訂閱資料庫。例如,如果訂閱者分別訂閱了三個保留期限為 10、20 及 30 天的發行集,則用來還原資料庫的備份不應該超過 10 天。

強烈建議您在執行備份前,先使訂閱者與發行者同步。不然,如果從這個備份還原訂閱者,系統就可能無法正確地交集。雖然備份檔本身可能是新的,但是上次與發行者同步的時間可能與保留期限一樣久。例如,假設有個保留期限為 10 天的發行集。上次同步是在 8 天前,而現在執行了備份。如果在 4 天後套用備份,則上次同步已發生在 12 天前,超出了保留期限。如果訂閱者剛好在備份前進行了同步,則訂閱資料庫將在保留期限內。

如果您需要變更發行集保留值,請用手動方式初始化訂閱者,以避免產生非交集的資料。當到達發行集保留期限時,保留性中繼資料清除功能將刪除合併系統資料表中過時的中繼資料。

發行集保留值可用來判斷未在保留期限內進行同步的訂閱何時到期。清除之後,如果發行集保存期間拉長了,而且訂閱嘗試要與發行者合併 (而其已經刪除了中繼資料),則該訂閱會由於保留期限值的增加而不會到期。此外,發行者沒有足夠的中繼資料可將變更下載到訂閱者,進而會導致非交集的情況。

[回到頁首]

5.2.7 從不同版本的 SQL Server 還原已複寫的資料庫

於 SP1 推出

將備份還原到相同的伺服器與資料庫 (與建立備份的來源伺服器使用相同的版本),可保留您的複寫設定。如果您把已複寫的資料庫還原到不同於用來備份資料庫的版本的 SQL Server,請考慮下列問題:

[回到頁首]

5.2.8 記錄讀取器代理程式的新 -MaxCmdsInTran 參數

於 SP1 推出

從 SP1 開始已加入了新的命令提示參數 -MaxCmdsInTran,供記錄讀取器代理程式使用。對於影響大量命令 (通常為大量更新或大量刪除) 的交易而言,散發代理程式必須等到記錄讀取器代理程式將整個交易寫入到散發資料庫後,方可開始將交易傳播到訂閱者。這個延遲會阻礙散發代理程式,並減少兩個代理程式之間的平行處理。

使用 –MaxCmdsInTran,記錄讀取器代理程式可將大型交易分成若干較小的區塊,每一個區塊所含的命令不超過 -MaxCmdsInTran 輸入所含的命令。因此,散發代理程式可以在記錄讀取器代理程式仍處理同一交易的後段區塊時,開始處理前段的交易區塊。

記錄讀取代理程式與散發代理程式之間的這項平行處理改善,提高了整體複寫產能。不過請注意,交易區塊在訂閱者中會作為個別交易來認可,因而打破了不可部分完成的屬性,這是 ACID (不可部分完成性、一致性、隔離性、持久性) 四個屬性中的其中一個屬性。在大多數情況中,這個結果雖不至於構成問題,但還是建議您進行測試以確定。

定義 –MaxCmdsInTran 參數

請指定正整數 (1 或以上) 作為 -MaxCmdsInTran 參數值。指定值為 0 則等於不使用該參數。因為這個參數僅在交易非常大時才會改善效能,所以值 5000 或更大對於這個參數是很平常的。例如:

logread.exe -MaxCmdsInTran 10000. 

若要使用這個參數,發行者必須執行 SQL Server 2000 SP 1 或更新版本,而記錄讀取器代理程式與散發資料庫必須升級到 SP3 或更新版本。否則會略過 -MaxCmdsInTran

[回到頁首]

5.2.9 非唯一叢集索引的限制

於 SP2 推出 (僅限於交易式複寫)。

您無法在為交易式複寫發行資料表之後,才在其上建立非唯一的叢集索引。建立索引前,您必須先卸除任何包含該資料表的發行集。

[回到頁首]

5.2.10 快照代理程式的新 -MaxNetworkOptimization 命令列引數

於 SP2 推出。

在一般處理過程中,合併複寫能夠傳送 DELETE 命令至訂閱者來刪除不屬於訂閱者資料分割的資料列。這種類型的 DELETE 命令稱為不相關的刪除。不相關的刪除並不會影響資料完整性或交集,但可能產生不必要的網路傳輸量。

若要減少由不相關的刪除所造成的網路傳輸量,您可以將新的快照代理程式參數
-MaxNetworkOptimization 與合併複寫發行集搭配使用。參數設為 1 會將不相關刪除的機會最小化,也就是讓網路最佳化。

注意   只有在合併發行集的同步最佳化選項設定為 true 時,才應將此參數設為 1 (sp_addmergepublication@keep_partition_changes 參數)。

預設值為 0 是因為將參數設為 1 時,會增加中繼資料的儲存量,如果存在多層聯集篩選及複雜子篩選,就會造成發行者的效能降低。您應該小心存取您的複寫拓撲,而且只有在不相關刪除的網路傳輸量高到無法接受時,才將 -MaxNetworkOptimization 設為 1。

您可以經由執行系統程序 sp_add_agent_parameter 來將此參數新增至快照代理程式設定檔,如下所示:

EXEC sp_add_agent_parameter 1, 'MaxNetworkOptimization', 1

[回到頁首]

5.2.11 合併複寫使用新角色

於 SP3 推出

SP3 與更新版本會自動建立新的角色供合併複寫使用。新角色名稱的格式為 MSmerge-<publication ID>。每個合併複寫發行集的角色會在發行者上建立,並作為發行集存取清單 (PAL) 來控制發行者上合併式複寫的存取權。如果這個角色已卸除,則您可以執行 SP3 或更新版本所包含的新預存程序 sp_createmergepalrole 來重新建立角色。預存程序會在發行者的發行集資料庫上執行以重新建立角色。

sp_createmergepalrole 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊,請參閱 1.9 小節SQL Server 2000 線上叢書的更新已發行。這是一份記載 sp_createmergepalrole 的英文版參考主題。

[回到頁首]

5.2.12 非系統管理員使用者所建立之訂閱的新需求

於 SP3 推出

如果建立訂閱的使用者不是 sysadmin 固定伺服器角色的成員,您必須進行下列任一操作:

注意   遠端代理程式啟動功能一律會要求作業步驟在 sysadmin 固定伺服器角色中的使用者帳戶內容裡執行。

[回到頁首]

5.2.13 預存程序使用權限的變更

於 SP3 推出

數個用來執行、管理及監視複寫拓撲之預存程序上的使用權限已經遭到變更。這些變更大部分包含更嚴謹的使用權限 (執行預存程序所需)。如需新使用權限的相關資訊,請檢閱《SQL Server 線上叢書》更新版裡關於複寫預存程序的 Transact-SQL 參考說明文件。如需更新的《SQL Server 線上叢書》的詳細資訊,請參閱 1.6 小節 SQL Server 2000 線上叢書的更新已發行

[回到頁首]

5.2.14 sp_addmergearticle 及 sp_changemergearticle 的新參數

於 SP3 推出

新參數 @published_in_tran_pub 已經新增到 sp_addmergearticlesp_changemergearticle。這個參數是用來指出合併發行集中的發行項,也會在交易式發行集中發行。@published_in_tran_pub nvarchar(5),其預設值為 FALSETRUE 則指出發行項也會在交易式發行集中發行。

注意   當您在 sp_changemergearticle 中變更這個參數時,快照集必會無效,而且必須重新初始化訂閱者。

[回到頁首]

5.2.15 設定散發暨發行精靈的新頁面

於 SP3 推出

設定散發暨發行精靈目前含有一個新頁面:散發者密碼。如果您選擇讓一或多位發行者將伺服器當作遠端發散者使用,且那些發行者中有一或多個都需要密碼,則您必須在此頁面上鍵入密碼。發行者與遠端發散者之間的連線是連結伺服器與遠端伺服器的混合。連線會使用登入名稱 distributor_admin。根據預設,發行者在遠端散發者處會設定為非受信任,因此需要密碼。

注意   如果您已經下載並安裝最新版的《SQL Server 2000 線上叢書》,當您按一下新頁面上的 [說明] 按鈕時,便可以使用這項資訊。

[回到頁首]

5.2.16 Windows Synchronization Manager 支援的變更

於 SP3 推出

SQL Server 可讓您啟用現有訂閱 (使用 SQL Server Enterprise Manager (SQL-DMO) 及複寫預存程序來建立),以便與 Windows Synchronization Manager 搭配使用。您也可以使用 Windows Synchronization Manager 來建立新的訂閱。套用 Service Pack 之後,當您同步處理訂閱時,Windows Synchronization Manager 將會提示您輸入同步處理時連線到伺服器所需的密碼。

[回到頁首]

5.2.17 附加或還原複寫資料庫需求的變更

於 SP3 推出

在某些特定的情況下,複寫可能會在附加或還原發行資料庫的過程中產生問題。這些情況包括:

若這些情況全都屬實,則您應在附加或還原的資料庫上執行 sp_changedbowner 預存程序。請指派擁有權給 sa 內建系統管理員登入。如此可確保複寫功能正常運作。

注意   您必須是 sysadmin 固定伺服器角色的成員,才能執行 sp_changedbowner

如需跨資料庫擁有權鏈結的詳細資訊,請參閱 5.1.10 小節跨資料庫擁有權鏈結

[回到頁首]

5.2.18 複寫 ActiveX 控制項安全性指定的變更

於 SP4 推出

複寫 ActiveX® 控制項 (sqlinitx.dll、sqldistx.dll、sqlmergx.dll 與 replerrx.dll) 不再指定為「可安全地執行指令碼」與「可安全地初始化」。控制項的安全性與功能行為在 SP3 後便無變更,但安全性指定已變更為符合安全性標準。這些變更會影響在網頁中叫用內嵌式複寫 ActiveX 控制項的應用程式。

[回到頁首]

5.2.19 合併發行集中發行項的新參數

於 SP4 推出

當您呼叫 sp_addmergearticle 時,可以指定新的參數 @compensate_for_errors。此參數可指定是否要在同步處理期間發生錯誤 (如條件約束違規) 時採取補償動作。設為 TRUE (預設值) 時,如果在同步處理期間遇到無法將變更套用至某個節點的情況,將會產生補償動作來復原對所有其他節點的變更。在某些情況下這是很適當的行為,但在其他情況下,則可能會造成問題;例如,若有訂閱者是因設定不正確而產生了錯誤,也會導致發行者與所有其他訂閱者上的變更遭到復原。

指定 FALSE 值可停用這些補償動作,但錯誤仍會記錄下來,而後續的合併會繼續嘗試套用變更。雖然受到影響的資料列可能會有失去交集的資料,但只要您儘早解決錯誤,即可套用變更,資料也會交集。

注意   若發行項的來源資料表已在其他發行集中發行過,則兩個發行項的 @compensate_for_errors 值必須相同。

[回到頁首]

5.2.20 交易式發行集中複寫識別資料行的新結構描述選項

於 SP4 推出

在先前的版本中,交易式發行集中的識別資料行會複寫為基底資料型別 (如 int),而不會設定識別屬性。這個方法很適合不允許在訂閱者執行插入的應用程式。SQL Server 2000 SP4 針對交易式發行集推出了新的結構描述選項 (0x4),可用來將識別資料行複寫為識別資料行。這在許多情況下都有用處,包括雙向複寫時,以及使用訂閱者作為暖待命伺服器時。在這些情況下,可在訂閱者上執行插入,且這些插入會造成識別資料行的遞增。

指定將識別資料行複寫為識別資料行:

  1. 在發行者上建立資料表時,請針對識別資料行指定 NOT FOR REPLICATION 選項。如此可確保只有使用者插入 (而非複寫代理程式插入) 會使識別資料行遞增。如需相關資訊,請參閱《SQL Server 線上叢書》中的<CREATE TABLE>。

  2. 當新增含有識別資料行的發行項時,請針對 sp_addarticle@schema_option 參數設定選項 0x4。如需此參數的相關資訊,請參閱《SQL Server 線上叢書》中的<sp_addarticle>。

  3. 初始化訂閱者後,請針對每個含有識別資料行的資料表執行 DBCC CHECKIDENT。如此可讓您指定在訂閱者上的識別資料行中插入的起始值,使插入的值不會與在發行者上插入的值相同。例如,您可以指定在訂閱者上插入的值應從 1,000,000 開始:
    USE Northwind
    GO
    DBCC CHECKIDENT ('Employees', RESEED, 1000000)
    GO

如需相關資訊,請參閱《SQL Server 線上叢書》中的 DBCC CHECKIDENT。

5.2.21 以 Windows-on-Windows 64 模式執行的散發者不支援非 SQL Server 的訂閱者

於 SP4 推出

在執行 X64 或相容處理器的 Windows 2003 SP1 系統上執行 Windows-on-Windows 64 模式的 SQL Server 2000 (32 位元) 散發者執行個體無法擁有非 SQL Server 的訂閱者。雖然 SQL Server 2000 SP4 目前已支援 Windows-on-Windows 64 模式的執行,但用來連接散發者與非 SQL Server 訂閱者的驅動程式或提供者並不支援這種模式。

[回到頁首]

5.3 SQL Server 代理程式及共用工具增強功能

本節討論 SP4 中所包含之 SQL Server 代理程式與共用工具的增強功能。

[回到頁首]

5.3.1 SQL Server 代理程式記錄帳戶資訊

於 SP2 推出

SQL Server 代理程式作業歷程記錄現在會記錄用來執行每個作業步驟的 Windows 帳戶。此資訊可協助系統管理員診斷所排程作業的安全性問題,包括為複寫和資料轉換服務 (DTD) 工作所定義的已排程作業。

[回到頁首]

5.3.2 主要/目標伺服器設定的變更

於 SP3 推出

多重伺服器管理是跨多重 SQL Server 執行個體的自動化管理工作處理程序。若您管理兩部以上的伺服器,而且想要集中維護工作,請使用多重伺服器管理。

在 SP3 或更新版本中,除非您需要使用 SQL Server 代理程式的 Proxy 帳戶,否則 SQL Server 代理程式服務帳戶不需要是 Windows 系統管理員。如需 SQL Server 代理程式 Proxy 帳戶的相關資訊,請參閱 5.6.3 小節 SQL Server 代理程式 Proxy 帳戶的改善功能。SQL Server 代理程式服務帳戶必須是 sysadmin 固定伺服器角色的成員。

使用多重伺服器管理時,您至少必須有一部主要伺服器及一部目標伺服器。主要伺服器會將作業分配到目標伺服器,並接收其傳回的事件。對於目標伺服器上執行的作業,主要伺服器會儲存作業定義的中央複本。目標伺服器會定期連線到主要伺服器來更新要執行的作業清單。若新的作業存在,則目標伺服器會從主要伺服器下載作業,然後中斷連線。當目標伺服器完成作業後,它就會重新連線到主要伺服器來報告作業的狀態。

套用 SP4 之前,您必須完成升級 SQL Server 2000 主要/目標伺服器設定的數個步驟。SP4 所推出的變更,與 SQL Server 7.0 目標伺服器、或是任何未執行 SP3 或更新版本的伺服器不相容。這是對原始 SQL Server 2000 功能的變更。

升級您的主要/目標伺服器設定

  1. 在主要伺服器上建立新的 MSX (主要伺服器) 帳戶。目的是備妥 TSX 伺服器 (目標伺服器) 以供升級。若要完成此項操作,請執行下列命令。
    --Option A: Windows authentication
    EXEC sp_grantlogin 'DOMAIN\user'
    GO
    USE msdb
    GO
    EXEC sp_adduser 'DOMAIN\user', 'DOMAIN\user', 'TargetServersRole'
    GO
    
    --Option B: SQL Server authentication – see explanation below for 
    --details.
    EXEC sp_addlogin <MSXAccount>, <MSXAccountPassword>, 'msdb' 
    GO
    USE msdb
    GO
    EXEC sp_adduser <MSXAccount>, <MSXAccount>, 'TargetServersRole'
    GO

    其中 <MSXAccount> 代表您所選擇的 SQL 登入名稱,而 <MSXAccountPassword> 則代表相關的密碼。

    注意   這些值都必須加上單引號。

    選擇 MSX 帳戶時,您具有下列的選項:

    請勿指定 SQL Server 代理程式探查帳戶 (<computer_name>_msx_probe_login)。在升級至 SP3 或更新版本的過程中,SQL Server 會移除原有的探查帳戶,因為 TSX 伺服器不會再使用它們。

  2. 一次升級一部 TSX 伺服器到 SP4 (在您套用 Service Pack 之前,請參閱步驟 3,以取得升級時機的其他資訊)。

  3. 為儘可能減少停機時間,請在完成 SP4 更新之後,立即在每一部 TSX 伺服器上執行延伸預存程序 xp_sqlagent_msx_account

    注意   執行 xp_sqlagent_msx_account 後,必須在每部伺服器上停止 SQL 代理程式並重新啟動。

    如需 xp_sqlagent_msx_account 的相關資訊,請參閱 5.3.3 小節新增 SQL Server 代理程式延伸預存程序

  4. 套用 SP4 至您的主要伺服器。SP4 安裝程式會移除原有的 _msx_probe 帳戶,因為 TSX 伺服器不會再使用它們。如果帳戶擁有 SQL 代理程式作業,則該帳戶不會遭到移除,而您需要將作業的擁有者變更成另一名使用者,再手動移除這些帳戶。如果您要繼續使用擁有 SQL 代理程式作業的原有 _msx_probe 帳戶,您可能需要變更 _msx_probe 帳戶的密碼。

[回到頁首]

5.3.3 新增 SQL Server 代理程式延伸預存程序

於 SP3 推出

SP3a 包含新的延伸預存程序 (xp_sqlagent_msx_account),可讓您設定帳戶,讓 SQL Server 代理程式 TSX 伺服器用來從 MSX 伺服器下載指示。此帳戶又稱為 MSX 帳戶或是主要伺服器帳戶。

xp_sqlagent_msx_account 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊,請參閱 1.6 小節 SQL Server 2000 線上叢書的更新已發行。這是一份記載 xp_sqlagent_msx_account 的英文版參考主題。

[回到頁首]

5.3.4 SQL Server 代理程式使用權限檢查

於 SP3 推出

SQL Server 現在可進行檢查,以確定代理程式作業擁有者具有從每項作業附加或覆寫輸出記錄檔的使用權限。這會以三種方式發生:

在所有的情況下,作業都會使用 SQL Server 代理程式憑證寫入,但 SQL Server 現在可進行測試,確定使用者是否具有使用權限來寫入到伺服器上所選的作業輸出記錄檔位置。錯誤會出現在作業歷程記錄中,但如果無法寫入記錄檔,作業步驟就不會失敗。

[回到頁首]

5.3.5 SQL Agent Mail MAPI 設定檔

於 SP3 推出

在 SQL Server 2000 32 位元版本中,SQL Agent Mail 可設定為使用擴充式 MAPI 電子郵件設定檔來傳送電子郵件警示。您可以使用擴充式 MAPI 電子郵件應用程式 (如 Microsoft Outlook) 來建立擴充式 MAPI 設定檔。在 SQL Server 2000 64 位元版本中,SQL Agent Mail 只能使用簡易 MAPI 設定檔來傳送電子郵件警示。請勿在 SQL Server 2000 32 位元版本中使用簡易 MAPI 設定檔。

[回到頁首]

5.3.6 檢視設計者的說明主題無法使用

於 SP4 推出

在 SQL Server Enterprise Manager 中,[設計檢視表] 與 [建立檢視表] 中的<檢視表屬性>說明主題無法使用。更新的主題位於此 Microsoft 網站 (英文) 中。

[回到頁首]

5.4 SQL Server 連接元件增強功能

本節討論 SP4 中所包含之 SQL Server 2000 連接元件增強功能。

[回到頁首]

5.4.1 支援 QLogic Virtual Interface Architecture

於 SP3 推出

SQL Server 現在可支援 QLogic Virtual Interface Architecture (VIA) 系統區域網路 (SAN) 的實作方式。若要啟用 SQL Server 對 QLogic VIA 連線的支援,則用戶端及伺服器電腦都必須在名為 Vihosts 的檔案中提供 IP 位址解析,此檔案位於適當的 Windows system32\drivers\etc 資料夾中。

Vihosts 檔案的格式應如下所示:

<伺服器電腦的 VI IP 位址> <SERVER_COMPUTERNAME>

<用戶端電腦的 VI IP 位址> <CLIENT_COMPUTERNAME>

例如:

139.4.130.1  SQLCOMPUTER

139.4.130.2  SQLCLIENT

使用個別 QLogic VIA 網路卡的 IP 位址以及實際的電腦名稱。否則,會無法建立與具名執行個體或其他 IP 通訊協定 (如 TCP 或具名管道) 的連線。Giganet VIA 連接並不需要 Vihosts 檔。

注意   您必須使用用戶端網路公用程式,識別出用戶端電腦上的正確 VIA 廠商。請在 [廠商] 下拉式方塊中選取適當的值。同時也應透過伺服器網路公用程式在伺服器電腦上完成對應的動作。

[回到頁首]

5.5 Meta Data Services 增強功能

本節討論 Database Components SP4 中所包含之 SQL Server 2000 Meta Data Services 增強功能。

[回到頁首]

5.5.1 中繼資料瀏覽器匯出 Unicode

於 SP1 推出

中繼資料瀏覽器現在可匯出 Unicode 格式的 XML 型中繼資料。在 SQL Server 2000 SP1 之前,瀏覽器會匯出不支援非英語字元的 ANSI 字碼。這個功能上的變更對使用者而言並不可見。在這個 SP4 版本中,匯出的資料一律以 Unicode 顯示。您仍能以 ANSI 字碼匯出資料,只要將 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Repository\Engine\XMLExport 登錄機碼的值設定為 0 即可。下列清單呈現了您可以為此登錄機碼設定的值:

每一個旗標的相關資訊,請參閱《SQL Server 線上叢書》的<IExport::Export Method>。

[回到頁首]

5.5.2 停用指令碼支援

於 SP3 推出

資訊模型中的指令碼支援已停用。安裝 SP3a 或更新版本後,如果已定義您的應用程式所存取之屬性及方法的指令碼,則您會收到下列錯誤:

EREP_SCRIPTS_NOTENABLED

啟用指令碼支援

如果您需要繼續執行指令碼,您可以使用下列程序來建立可啟用指令碼支援的登錄設定。

  1. 開啟 [登錄編輯程式],並瀏覽到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

  2. 建立名為 Repository 的登錄機碼 (若不存在),然後建立名為 Engine 的子機碼,如此路徑就成為 Repository\Engine

  3. Engine 登錄機碼上,新增名為 AllowScripting 的新 DWORD 值,並將值設定為 1

如果您稍後要停用指令碼,請將這個新登錄機碼的值設定為 0

重要事項  基於安全性的理由,切勿使用空白的 sa 登入密碼。

[回到頁首]

5.5.3 存取儲存機制資訊的新 RepositoryUser 角色

於 SP3 推出

SQL Server 在 msdb 資料庫中加入一組資料表、預存程序和檢視表,用來儲存由 Meta Data Services 儲存機制引擎所使用的資訊。SP3 中新增了名為 RepositoryUser 的專用角色,您必須使用此角色才可存取及更新儲存機制資訊。這個角色具有這些物件的建立、讀取、更新、刪除及執行權限。public 角色不再擁有這些物件的使用權限。

這個變更會影響到現有儲存機制物件,以及未來由儲存機制引擎所建立的任何其他物件。透過 public 角色來存取儲存機制的使用者及應用程式,都必須要新增到 RepositoryUser 角色中

[回到頁首]

5.6 資料轉換服務增強功能

此節討論 SP4 中所包含之 SQL Server 2000 Data Transformation Services 增強功能。

[回到頁首]

5.6.1 DTS 精靈不再限制字串資料行為 255 個字元

於 SP2 推出

當您將資料匯出至文字檔時,DTS 匯入/匯出精靈現在可設定封裝,來將多達 8000 個字元寫入到包含字串型別資料的任何資料行。

[回到頁首]

5.6.2 記錄由 SQL Server 代理程式執行之 DTS 封裝的安全性內容

於 SP2 推出

SQL Server 代理程式會記錄作業執行時每個步驟所使用的安全性內容。在 SP3 或更新版本中,安全性內容會出現在 [作業歷程記錄] 對話方塊中。當您從作業的某一步驟執行 DTS 封裝時,SQL Server 代理程式會記錄用來執行該封裝的使用者帳戶。這個資訊能協助系統管理員診斷在 DTS 封裝根據排程在伺服器上執行時,所發生的使用權限與驗證問題。

[回到頁首]

5.6.3 SQL Server 代理程式 Proxy 帳戶的改善功能

於 SP2 推出

在 SP2 之前,無法使用 SQL Server 代理程式 Proxy 帳戶憑證來執行伺服器上儲存的 DTS 封裝,除非該 Proxy 帳戶可存取伺服器 (從 xp_cmdshell 執行作業時) 或代理程式 (執行代理程式作業時) 執行時所使用帳戶的使用者 Temp 資料夾。因此,使用者通常需要調整 SQL Server 或 SQL 代理程式啟動帳戶的 TEMP 環境變數,以指向可供啟動及 Proxy 帳戶存取的資料夾,如 C:\Temp。在 SP2 與更新版本中,DTS 已提升為在使用者的 Temp 資料夾無法使用時,即使用系統的 Temp 資料夾,因而大幅降低這些調整的必要性。

[回到頁首]

5.6.4 預設已停用 Meta Data Services 的儲存功能

於 SP3 推出

根據預設,SP3 與更新版本會停用在 Meta Data Services 中儲存 DTS 封裝的選項。這表示 [Meta Data Services] 選項不會出現在 [儲存 DTS 封裝] 對話方塊中的 [位置] 下拉式清單裡。此外,DTS 匯入/匯出精靈中的 [儲存、排程和複製封裝] 頁面上也停用了這個選項。

允許在 Meta Data Services 中儲存封裝

停用在 Meta Data Service 中儲存封裝的選項時,您可以從 Meta Data Service 載入現有的封裝,並對其進行編輯,然後使用 [儲存] 選項來將其儲存到 Meta Data Service。然而,[另存新檔] 選項無法使用 Meta Data Services。例如,您無法使用不同的名稱,將封裝重新儲存到 Meta Data Services。

[回到頁首]

5.7 XML 增強功能

下列主題討論 SP4 中 XML 及 SQLXML 的增強功能。

[回到頁首]

5.7.1 已改善的 XPath 運算式驗證功能

於 SP3 推出,於 SP4 更新

當您套用 SP4 時,OPENXML 會更新為使用對 MSXML 2.6 具有回溯相容性的自訂 XML 剖析技術。

在 SP3 之前,OPENXML 所使用的 XML 剖析器版本,允許 XPath 運算式中的述詞跟隨在用來識別目前內容節點的特殊字元縮寫之後 (在 XPath 語法中,這個特殊縮寫字元是以句點 (.) 表示)。這就違反了 XPath 語法規格,因其要求這個字元要跟隨在位置路徑運算式的後面。

根據新的 OPENXML 行為,述詞將無法緊接在目前內容節點縮寫的特殊字元之後。升級到 SP3 或更新版本後,在 SQLXML 查詢 (針對註解所對應的結構描述所執行的 XPath 查詢,和 XSLT 樣式表中撰寫來轉換 SQLXML 查詢結果的 XPath 查詢) 中使用錯誤語法的 XPath 運算式將會失敗。

若要避免這類失敗,請識別及修正任何使用錯誤語法的運算式。例如,在下列 xsl:if 元素中指定為 test 屬性值的 XPath 運算式語法無效,因為述詞 [@ResourceTypeID='2'] 緊接在用來識別目前內容節點的特殊字元縮寫之後。

下列的陳述式在以前並不會產生錯誤,但在安裝 SP3 或更新版本之後便會失敗。

<xsl:if test=".[@ResourceTypeID='2']">

若要避免失敗,則必須修改 XPath 運算式,如下所示:

<xsl:if test="@ResourceTypeID='2'">

[回到頁首]

5.8 虛擬備份裝置 API 增強功能

下列項目可套用至 SQL Server 2000 虛擬備份裝置 API。

[回到頁首]

5.8.1 使用單一快照集擷取多重資料庫

於 SP2 推出

虛擬備份裝置 API 可讓 ISV 將 SQL Server 2000 整合到本身的產品中。這個 API 設計的目的是提供最大的可靠性及效能。它可完全支援 SQL Server 2000 的備份及還原功能,包括完整範圍的熱備份及快照集備份的能力。

在 SP1 及更早的版本中,無法同時凍結或備份多個資料庫。而 SP2 或更新版本現在提供了伺服器端的支援,可透過 VDC_PrepareToFreeze 命令在單一快照集中凍結及擷取多個資料庫。

SP4 的虛擬備份裝置介面規格包含了 VDC_PrepareTo Freeze 命令的相關更新資訊。您也可以在 SP4 安裝資料夾的 \Devtools\Include 中,找到更新版本的虛擬裝置介面標頭檔案 (vdi.h)。

您可以從 Microsoft SQL Server 下載網站中的 Microsoft 下載中心,來下載更新的規格。

[回到頁首]

5.9 錯誤報告

於 SP3 推出

Microsoft SQL Server 錯誤報告預設為停用。您可透過 SQL Server 安裝程式或 Analysis Service 安裝程式,在安裝期間啟用錯誤報告,或是在安裝之後,透過 Enterprise Manager 中的 [伺服器屬性] 對話方塊或 [分析管理員] 中的 [伺服器屬性] 對話方塊來啟用錯誤報告。當您執行 SQL Server 安裝程式時啟用錯誤報告,可以報告 SQL Server 資料庫引擎及 SQL Server 代理程式的錯誤。當您執行 Analysis Services 安裝程式時啟用錯誤報告,可以報告 Analysis Services 的錯誤。如果您要啟用 SQL Server 及 Analysis Services 的錯誤報告,您必須分別為 SQL Server 及 Analysis Services 在執行 SQL Server 安裝程式時及執行 Analysis Services 安裝程式時啟用錯誤報告。

如果您啟用此功能,則會將 SQL Server 設定為在 SQL Server 資料庫引擎、SQL Server 代理程式或 SQL Server Analysis Services 發生嚴重錯誤時,自動將報告傳送至 Microsoft。Microsoft 會使用錯誤報告,來改善 SQL Server 的功能,並將所有資訊視為機密資訊。

錯誤的資訊會透過安全的 (HTTPS) 連線傳送至 Microsoft,並儲存在難以存取之處。另外,這些資訊也會傳送到您自己的 Corporate Error Reporting 伺服器。請參閱此 Microsoft 網站 (英文),以取得設定 Corporate Error Reporting 伺服器的相關資訊。

錯誤報告包含下列資訊:

Microsoft 不會刻意收集您的檔案、姓名、地址、電子郵件地址或任何其他形式的個人資訊。然而,錯誤報告可能包含客戶的特定資訊,而這些資訊來自造成錯誤之處理序的記憶體或檔案。雖然此資訊可能會用來判定您的身分識別,但 Microsoft 並不是因為這項目的而使用此資訊。

若想瞭解 Microsoft 錯誤報告資料收集原則,請參閱此 Microsoft 網站 (英文)。

如果您已啟用錯誤報告且發生了嚴重錯誤,您可在指向微軟知識庫文章的 Windows 事件日誌中檢視 Microsoft 對於特定錯誤的相關回應。以下是回應的範例:

Source = MSSQLServerOlapServicesDW 
EventID = 1010
data = http://support.microsoft.com/support/misc/kblookup.asp?id=Q123456
&iBucketTable=1&iBucket=39980&Cab=21474432.cab&LCID=1033
&OS=5.1.2600.2.00010100.0.0

若要停用 SQL Server 資料庫引擎及 SQL Server 代理程式的錯誤報告,請前往 Enterprise Manager 中的 [SQL Server 屬性] ([一般] 索引標籤),並清除 [啟用錯誤報告] 核取方塊。若要停用 Analysis Services 的錯誤報告,請前往 [分析管理員] 中的 [伺服器屬性],並清除 [啟用錯誤報告] 核取方塊。如果 SQL Server (資料庫引擎及 SQL Server 代理程式) 與 Analysis Services 都已經啟用錯誤報告,則您必須個別為 SQL Server 及 Analysis Services 停用錯誤報告。

[回到頁首]

5.10 服務性增強功能

於 SP4 推出

SQL Server 2000 SP4 推出了新的服務性功能,可讓您將執行於 Windows XP 與 Windows Server 2003 上的 SQL Server 2000 SP4 (或更新版本) 所套用的 Hotfix 解除安裝 (SQL Server 2000 SP3 也具有相同的功能,但必須先另外套用 Hotfix 才可使用)。

[回到頁首]

5.11 English Query 增強功能

於 SP1 推出

Microsoft 發行了 English Query 應用程式的安全性增強功能。這項增強功能並不會安裝為 Service Pack 的一部份。不過,如果您要使用 English Query,則建議您套用這項增強功能。安全性增強功能的位置在 SP4 光碟片上的 \EQHotfix 資料夾中。有關 English Query 增強功能的詳細資訊可在知識庫文章 297105 (英文) 中取得。

[回到頁首]

5.12 DB-Library 及 Embedded SQL for C

於 SP1 推出,於 SP4 更新

雖然 SQL Server 2000 仍支援 DB-Library 及 Embedded SQL for C API,但未來的 SQL Server 版本將不會包含使用這些 API 撰寫應用程式時所需的檔案或說明文件。使用 DB-Library 及 Embedded SQL for C 撰寫之現有應用程式的連線,在下一版 SQL Server 中仍會受到支援,但在未來版次中將會取消此項支援。撰寫新的應用程式時請勿使用 DB-Library 或 Embedded SQL。在修改現有的應用程式時,請摒除對這些技術的依賴。請不要使用 DB-Library 或 Embedded SQL for C,而應使用 NET Framework 的 System.Data.SQLClient 命名空間,或像 ADO、OLE DB 或 ODBC 這類的 API 來存取 SQL Server 中的資料。如需這些技術的相關資訊,請參閱《SQL Server 線上叢書》或 .NET Framework SDK。

[回到頁首]