設定網頁同步

適用於:SQL Server

SQL Server 合併複製的網頁同步選項透過網際網路使用 HTTPS 協定實現資料複製。 要使用網頁同步,請先完成以下設定步驟:

  1. 建立新的網域帳戶並對應 SQL Server 登入帳戶。

  2. 將正在執行 Microsoft Internet Information Services (IIS) 的電腦設定為同步處理訂閱。

  3. 將合併發行集設定為允許 Web 同步。

  4. 將一個或多個訂閱設定為使用 Web 同步處理。

注意

如果您打算複寫大量資料或使用大型資料類型 (例如 varchar(max) ),請參閱本主題的<複寫大量資料>一節。

要成功設定網頁同步,您必須決定如何配置安全以符合您的特定需求與政策。 在嘗試設定 IIS、出版物和訂閱之前,先做出這些決策並建立必要的帳號。

以下程序描述一種簡化的安全設定,使用本地帳號。 這種簡化的組態適用於 IIS 以及 SQL Server 的 Publisher 和 Distributor 都在同一部電腦上執行的安裝環境,儘管在生產環境安裝中,更常見且也建議採用多伺服器拓撲。 在這些程序中,您可以用網域帳戶來取代本機帳戶。

建立新帳號並映射 SQL Server 登入

SQL Server 複寫接聽程式(replisapi.dll)會模擬您為與複寫網站相關聯的應用程式集區所指定的帳戶,以連線到發行者。

您用於 SQL Server 複寫監聽器的帳號需要在 合併代理程式 Security 中「Connect to the Publisher or Distributor」章節中描述的權限。總結來說,該帳號必須:

  • 成為發佈存取清單 (PAL) 的成員。

  • 對應至出版資料庫中與某位使用者相關聯的登入帳戶。

  • 對應至與發佈資料庫中使用者相關聯的登入帳戶。

  • 具有快照共用的讀取權限。

如果你是第一次使用 SQL Server Replication,還需要為複製代理建立帳號和登入。 欲了解更多資訊,請參閱本文中的「設定出版」與「設定訂閱」章節。

在設定網頁同步之前,請閱讀本文中的「網頁同步安全最佳實務」章節。 如需有關 Web 同步處理安全性的詳細資訊,請參閱< Security Architecture for Web Synchronization>。

設定正在執行 IIS 的電腦

Web 同步處理要求您安裝並設定 IIS。 你需要先取得複製網站的網址,才能設定出版品使用網頁同步。

IIS 5.0 版開始支援 Web 同步處理。 IIS 7.0 版本不支援配置網頁同步精靈。 從 SQL Server 2012 開始,若要在 IIS 伺服器上使用 Web 同步元件,請安裝帶有複寫功能的 SQL Server。 例如,免費的 SQL Server Express Edition。

Web 同步處理需要使用 TLS。 你需要由認證機構核發的安全憑證。 如果只是為了測試,您可以使用自行核發的安全性憑證。

設定 IIS 以進行 Web 同步處理

打造網路花園

SQL Server 複寫接聽程式支援每個執行緒可同時進行兩項同步作業。 超過此限制可能導致複製監聽器停止回應。 應用程式池的最大工作者程序屬性決定分配給 replisapi.dll的執行緒數量。 預設情況下,此屬性設為 1。

您可以透過提高 [工作者處理序數上限] 屬性值,讓每個 CPU 支援更多並行同步作業。 透過增加每個 CPU 的工作處理序數目來進行向外擴展,稱為建立「Web garden」。

網路園藝允許超過兩個訂閱者同時同步。 同時也會使 CPU 利用率提高 replisapi.dll,這可能對整體伺服器效能產生負面影響。 在選擇最大工人流程數值時,請權衡這些考量。

若要增加 IIS 7 中工作者處理序的數目上限

  1. [Internet Information Services (IIS) 管理員] 中,展開本機伺服器節點,然後按一下 [應用程式集區] 節點。

  2. 選取與 Web 同步處理網站相關聯的應用程式集區,然後按一下 [動作] 窗格上的 [進階設定]

  3. 在 [進階設定] 對話方塊的 [處理序模型] 標題底下,按一下標示為 [工作者處理序數上限] 的列。 變更屬性值,然後按一下 [確定]

設定發佈

若要使用 Web 同步處理,請以建立標準合併拓撲發行集的相同方式來建立發行集。 如需詳細資訊,請參閱發行資料和資料庫物件

建立出版後,啟用以下方法之一允許網頁同步的選項:SQL Server Management Studio、Transact-SQL 或複寫管理物件(RMO)。 要啟用網路同步,您需要提供訂閱者連線的網頁伺服器位址。

如果您是第一次使用 Publisher,還必須設定 Distributor 和快照共用。 各訂閱者上的合併代理程式都必須具有快照共用的讀取權限。 如需更多資訊,請參閱設定發佈保護快照資料夾

gen 是 websync XML 檔案中的保留詞。 不要嘗試發佈包含名為 gen. 的欄位的資料表。

設定訂閱

啟用發行並完成 IIS 設定之後,請建立提取式訂閱,並指定該提取式訂閱應使用 IIS 進行同步處理。 (Web 同步僅支援提取訂閱。)

從早期版本的 SQL Server 升級

如果您已設定現有的 Web 同步拓撲,並升級 SQL Server,請確保最新版本的 replisapi.dll 已複製到 Web 同步所使用的虛擬目錄中。 預設情況下,最新版本的replisapi.dll位於C:\Program Files\Microsoft SQL Server\<nnn>\COM

複製大量資料

為避免訂閱者電腦可能出現的記憶體問題,網頁同步預設最大大小為 100 MB,適用於用於傳輸變更的 XML 檔案。 透過設定以下登錄鍵來提高限制:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000

此金鑰可接受的值範圍為 100 MB 至 4 GB。 該值會以 KB 來指定。 把這個參數設為高值並不保證你能同步到那麼多資料。 有效的限制是由訂閱者電腦上可用的連續記憶體數量所限制。 如果必須有超過 100 MB 的值,請逐步增加這個值,並以一般工作負載測試訂閱者的記憶體消耗。

XML 檔案的大小上限為 4 GB,不過複寫會分批次同步處理來自該檔案的變更。 資料和中繼資料的批次大小上限為 25 MB。 你必須確保每批資料不超過約 20 MB,這樣可以容納元資料及其他額外負擔。 這項限制具有下列含意:

  • 你無法複製任何會使資料和中繼資料總計超過 25 MB 的欄位。 這個限制在你複製包含大型資料型態的列時可能會有問題,例如 varchar(max))。

  • 如果你複製大量資料,可能需要調整 合併代理程式 批次大小。

合併式複寫的批次大小是以 世代 為單位來衡量,而世代是指每個發行項目的一組變更。 使用 合併代理程式 的 -DownloadGenerationsPerBatch 和 -UploadGenerationsPerBatch 參數來指定批次的世代數。 如需詳細資訊,請參閱 Replication 合併代理程式

若為大量資料,請針對每個批次參數指定一個少量數目。 從 10 開始,然後根據應用需求和效能調整。 通常,你會在代理人設定檔中指定這些參數。 如需有關設定檔的詳細資訊,請參閱< Replication Agent Profiles>。

網頁同步的安全最佳實務

網頁同步為安全相關設定提供了許多選擇。 使用下列方法:

  • SQL Server 散發者和發行者可位於同一部電腦上(這是合併式複寫的典型設定)。 不過,請在另一台電腦上安裝 IIS。

  • 利用傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL)) 來加密訂閱者與執行 IIS 的電腦之間的連線。 網頁同步需要這種加密。

  • 對訂閱者與 IIS 之間的連接使用「基本驗證」。 透過基本認證,IIS 可代表訂閱者與 Publisher/Distributor 建立連線,無需委派。 如果使用「整合式驗證」,則需要委派。

    注意

    基本驗證是將認證傳遞至 IIS 的方法。 基本認證並不會阻止在連接到 IIS 時指定 Windows 網域帳號。

  • 指定 快照集代理程式 在 Windows 網域帳號下執行,並指定該代理以該帳號建立連線。 (這是預設設定。)指定每個 合併代理程式 在使用 Subscriber 電腦的使用者網域帳號下執行,並指定該代理以該帳號建立連線。

    欲了解更多代理所需權限,請參閱 複寫代理安全模型

  • 請指定網域帳戶,此帳戶應與您在指定 [新增訂閱精靈] 的 [網頁伺服器資訊] 頁面中帳戶和密碼,或指定 sp_addpullsubscription_agent@internet_url@internet_login 參數值時,合併代理程式所使用的網域帳戶相同。 此帳戶必須具有快照共用的讀取權限。

  • 每個發行集應使用個別的 IIS 虛擬目錄。

  • SQL Server 複製監聽器replisapi.dll() 所使用的帳號同時也是在同步時連接 Publisher 與 Distributor 的帳號。 此帳號必須對應至 Publisher 與 Distributor 上的 SQL Server 登入帳號。 如需詳細資訊,請參閱設定 Web 同步處理的 IIS 中的<設定 SQL Server Replication Listener 的權限>一節。

  • 你可以用 FTP 將快照從 Publisher 傳送到執行 IIS 的電腦。 執行 IIS 的電腦總是透過 HTTPS 將快照傳送給訂閱者。 如需詳細資訊,請參閱透過 FTP 傳送快照集

  • 如果複寫拓撲中的伺服器在防火牆後面,您可能需要在防火牆中開啟通訊埠,才能啟用 Web 同步處理。

    • 用戶電腦透過 HTTPS 使用 TLS 連線到執行 IIS 的電腦,而 HTTPS 通常設定為使用 443 連接埠。 SQL Server Compact 訂閱者也可透過 HTTP 進行連接,這通常設定為使用通訊埠 80。

    • 執行 IIS 的電腦通常透過埠 1433(預設實例)連接到 Publisher 或 Distributor。 當發行者或散發者為伺服器上的具名執行個體 (此伺服器具有另一個預設執行個體) 時,通常會使用通訊埠 1500 來連接至此具名執行個體。

    • 如果執行 IIS 的電腦被防火牆與分發器隔離,且使用 FTP 共享進行快照傳遞,你必須開啟用於 FTP 的埠口。 如需詳細資訊,請參閱透過 FTP 傳送快照集

重要

在防火牆中開啟通訊埠可能會讓您的伺服器面臨惡意攻擊的威脅。 請先確定您已了解防火牆系統,然後再開啟通訊埠。 如需詳細資訊,請參閱< Security Considerations for a SQL Server Installation>。