在複寫拓撲中使用多個 SQL Server 版本

更新: 2007 年 9 月 15 日

複寫支援將資料複寫至不同版本的 Microsoft SQL Server。這個主題涵蓋:

  • 支援的 SQL Server 版本
  • 對應舊版的 SQL Server 2005 資料類型
  • 從舊版還原複寫的資料庫
  • 合併式發行集的相容性層級

如需有關將資料複寫到 Microsoft SQL Server 2005 Express Edition 和 Microsoft SQL Server Compact Edition 的資訊,請參閱<複寫資料至 SQL Server Express>和<複寫資料至 SQL Server Compact Edition>。如需有關各版 SQL Server 所支援功能的資訊,請參閱<SQL Server 2005 版本支援的功能>。

ms143241.note(zh-tw,SQL.90).gif附註:
有關這個主題,請參閱「安裝說明」文件集和《SQL Server 2005 線上叢書》。在「安裝說明」文件集中,以粗體文字表示的主題連結只會參考《 線上叢書》中的主題。

支援的 SQL Server 版本

SQL Server 7.0 版 Service Pack 4 (SP4) 是 SQL Server 2005 參與之複寫拓撲所需的最低版本。如果您使用的是 SQL Server 2000,則必須具有 SP3 或更新版本。

當您在 SQL Server 的不同版本之間複寫時,通常受限於所使用之最舊版的功能。例如,如果您將散發者升級到 SQL Server 2005 的執行個體,但您有一個執行 SQL Server 2000 執行個體的發行者,以及一個執行 SQL Server 7.0 執行個體的訂閱者,您就只能使用 SQL Server 7.0 的一般功能和複寫功能。

ms143241.note(zh-tw,SQL.90).gif附註:
因為 SQL Server 磁碟儲存格式在 64 位元與 32 位元環境下都相同,所以複寫拓撲可以將執行於 32 位元環境與 64 位元環境中的伺服器執行個體結合在一起。

針對所有複寫類型,散發者的版本都不能比發行者的版本還舊 (大部分情況下,散發者和發行者會是相同的執行個體)。您可以使用 SQL Server 2005 作為 SQL Server 2005 和 SQL Server 2000 的遠端散發者,但不能作為 SQL Server 7.0 的遠端散發者。下列表格提供 SQL Server 的何種版本可以參與相同拓撲的相關資訊。如需有關各種 SQL Server 版本中所支援之複寫功能的詳細資訊,請參閱<SQL Server 2005 版本支援的功能>。

具有唯讀訂閱者的交易式複寫和快照式複寫

散發者

SQL Server 7.0

SQL Server 2000

SQL Server 2005

發行者

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

訂閱者

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

上表顯示交易式發行集的唯讀訂閱者可以是兩個發行者版本內的任何版本。例如:SQL Server 7.0 發行者可以有 SQL Server 2005 訂閱者;SQL Server 2005 發行者可以有 SQL Server 7.0 訂閱者。

具有更新訂閱者的交易式複寫

散發者

SQL Server 7.0

SQL Server 2000

SQL Server 2005

發行者

SQL Server 7.01

SQL Server 7.01

SQL Server 20002

SQL Server 20002

SQL Server 20053

訂閱者

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

1 如果是 SQL Server 7.0 發行者,只支援 SQL Server 7.0 訂閱者。

2 如果是 SQL Server 2000 發行者,支援 SQL Server 7.0、SQL Server 2000 和 SQL Server 2005 訂閱者。

3 如果是 SQL Server 2005 發行者,支援 SQL Server 2000 和 SQL Server 2005 訂閱者。

合併式複寫

散發者

SQL Server 7.0

SQL Server 2000

SQL Server 2005

發行者

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

訂閱者

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 7.0

SQL Server 2000

SQL Server 2005

上表顯示合併式發行集訂閱者的版本可以是任何不晚於發行者的版本。如需有關與舊版相容性的詳細資訊,請參閱本主題稍後的「合併式發行集的相容性層級」。

SQL Server 7.0 和 SQL Server Management Studio

SQL Server Management Studio 可以連接到執行 SQL Server 2000 或更新版本的執行個體。如果是執行 SQL Server 7.0 的訂閱者:

  • 可以用 SQL Server 7.0 工具、SQL Server 2000 工具、SQL 分散式管理物件 (SQL-DMO) 或預存程序來建立訂閱和發行集。
  • 提取訂閱的代理程式不可以從 Management Studio 或複寫監視器啟動。在建立訂閱時,代理程式可指定為依排程執行,或從命令提示字元視需要執行。

執行 SQL Server 7.0 的訂閱者,其訂閱在建立後會出現在 Management Studio 和複寫監視器中。如需有關建立訂閱和發行集以及執行代理程式的詳細資訊,請參閱《SQL Server 7.0 線上叢書》。

使用 SQL Server 2005 散發者來搭配執行 SQL Server 2000 發行者

SQL Server 2005 可以作為執行 SQL Server 2000 之發行者的遠端散發者。若要變更這個案例的代理程式屬性,請在散發者端執行下列預存程序。這些程序可讓您變更 SQL Server 2005 新增的屬性:

如果您有執行 SQL Server 2000 的發行者和散發者,可以使用 sp_changedistpublishersp_changesubscriber,變更代理程式用來建立連接的認證。不過,如果您將散發者升級到 SQL Server 2005,則無法使用這些程序來變更現有代理程式作業中使用的認證 (但這些程序的確會影響呼叫程序之後建立的代理程式作業)。若要變更現有代理程式作業的認證,請呼叫上述四個程序的其中一個。

將舊版對應至 SQL Server 2005 資料類型

SQL Server 2005 導入一些新的資料類型。如果使用來自 SQL Server 2005 散發者的發送訂閱,則這些新的資料類型會對應至訂閱者端的相容資料類型。

SQL Server 2005 資料類型 SQL Server 2000 或 SQL Server 7.0 資料類型

xml

ntext

CLR 使用者自訂類型 (UDT)

image

varchar(max)

text

nvarchar(max)

ntext

varbinary(max)

image

如果 varchar(max)nvarchar(max)varbinary(max)xmlL 和 CLR 使用者自訂類型複寫到執行舊版 SQL Server 的訂閱者 (依預設,會對合併式發行集的發行項執行這個動作),則必須確認是否已適當對應這些類型。這些類型的對應行為是由 sp_addarticlesp_addmergearticle 的結構描述選項 0x200x100000000x20000000所控制。如需有關設定結構描述選項的詳細資訊,請參閱<如何:指定結構描述選項 (SQL Server Management Studio)>和<How to: Specify Schema Options (Replication Transact-SQL Programming)>。

SQL Server 2000 導入兩種資料類型,其對應至 SQL Server 7.0 相容的資料類型。如果使用來自 SQL Server 2005 或 SQL Server 2000 散發者的發送訂閱,則這些新的資料類型會對應至訂閱者端的相容資料類型。

SQL Server 2005 或 SQL Server 2000 資料類型 SQL Server 7.0 資料類型

SQL_VARIANT

IMAGE

BIGINT

DECIMAL

從舊版還原複寫的資料庫

從舊版還原複寫資料庫的備份時,可以保留複寫設定。如果您要還原備份的伺服器和資料庫,其名稱與執行備份的伺服器和資料庫相同,或是您指定了 KEEP_REPLICATION 選項,則複寫設定會保留。如需詳細資訊,請參閱<RESTORE (Transact-SQL)>。還原資料庫之後,請執行 sp_vupgrade_replication (Transact-SQL) 升級結構描述和系統資料,以目前的產品層級支援複寫。

雖然從舊版的備份還原之後可以保留複寫,但很少利用這種方式作為升級選項。常見的方法是升級產品時同時升級複寫資料庫,或是利用一組指令碼重新建立資料庫和複寫組態。

合併式發行集的相容性層級

合併式複寫使用發行集相容性層級,決定給定資料庫之發行集可使用的功能。值的範圍是從 70RTM (不安裝 Service Pack 的 SQL Server 7.0) 到 90RTM。相容性層級指定方式如下:

下列功能需要 90RTM 或更高的相容性層級:

下列功能並不依賴相容性層級,不過它們的確需要 SQL Server 2005 所隨附的合併代理程式;即使這項功能未啟用,執行舊版 SQL Server 的訂閱者依然可運作:

SQL Server 2005 中的發行集相容性層級行為

瞭解發行集相容性層級行為很重要:

  • 這個發行集相容性層級與資料庫相容性層級沒有連接。
  • 如果您使用 sp_addmergepublication 或透過複寫管理物件 (RMO) 建立發行集,則發行集相容性層級是預設為 80RTM。如果您在「新增發行集精靈」中建立發行集,則會依據精靈的 [訂閱者類型] 頁面上所選擇的選項來決定發行集相容性層級。
  • 在舊版的 SQL Server,如果您啟用一個需要更高相容性層級的功能,就會自動增加發行集相容性層級。但是在 SQL Server 2005 中,要啟用需要相容性層級為 90RTM 的功能之前,您必須手動將發行集相容性層級設定為 90RTM。
    如果您從 SQL Server 7.0 升級發行者,然後選取一或多個需要相容性層級 80RTM 的功能,就會自動增加相容性層級。
  • 只有當快照集代理程式尚未啟動且沒有訂閱發行集時,才可降低發行集相容性層級。
  • 相同資料庫中的所有發行集都必須有相同的相容性層級。此需求會有下列結果:
    • 如果資料庫包含相容性層級較低 (例如 80RTM) 的發行集,而您想要在相同資料庫中加入另一個層級為 90RTM 的發行集,則您必須在加入新發行集之前,先手動提高第一個發行集的層級。
    • 如果資料庫包含兩個或以上之較低相容性層級的發行集,而您想要在相同資料庫中加入具有 90RTM 層級的另一個發行集,則您必須只保留一個現有的發行集,卸除其他所有發行集、將剩餘發行集的層級增加到 90RTM、以 90RTM 層級重新建立已卸除的發行集,再建立具有 90RTM 層級的新發行集。

請參閱

概念

複寫回溯相容性
升級複寫的資料庫

其他資源

複寫的增強功能

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2007 年 9 月 15 日

新增內容:
  • 新增有關 SQL Server 磁碟儲存格式在 64 位元與 32 位元環境下都相同的注意事項。

2006 年 4 月 14 日

變更的內容:
  • 新增表格以釐清可以在相同複寫拓撲中使用的 SQL Server 版本。
  • 新增有關用來對應資料類型之結構描述選項的資訊。
  • 移除表示 SQL Server 7.0 可以使用 SQL Server 2005 的執行個體作為遠端散發者的資訊。這項組態不受支援。