複製程式設計概念

適用於:SQL ServerAzure SQL 受控執行個體

在開發使用複製功能的應用程式前,請遵循以下一般規劃步驟:

  1. 定義您的複製拓撲。

  2. 定義應用程式功能。

  3. 規劃安全性。

  4. 選擇開發環境。

  5. 選擇適當的複寫程式設計介面。

本文其餘部分將更詳細說明這些步驟。 為了幫助說明規劃過程,文中附有範例。

定義複製拓撲

程式設計複寫的第一個步驟是定義應用程式的複製拓撲。 如果你正在撰寫使用現有複製拓撲的應用程式,例如客戶端應用程式在現有訂閱者處存取資料,請繼續下一步。

注意

在某些情況下,部署複製拓撲是應用程式的唯一目的。

您定義的復寫拓撲取決於許多因素,包括下列各項:

  • 是否需要更新複製的資料,以及由誰更新。

  • 您的數據散發需要關於一致性、自主性和延遲。

  • 復寫環境,包括商務使用者、技術基礎結構、網路和安全性,以及數據特性。

  • 複寫和複寫選項的類型。

  • 複寫拓撲及其與復寫類型一致的方式。

如果你是 Microsoft SQL Server 複寫的新手,請參閱複寫類型

定義應用程式功能

在定義複製拓撲後,決定你的應用程式所提供的功能。 這些功能的範圍可以從腳本,將訂用帳戶同步處理至具有使用者介面的應用程式,以設定複寫。 複寫支援下列一般程式設計工作:

  • 設定複寫。

  • 同步處理訂閱者。

  • 維護複製拓撲。

  • 監視複製拓撲。

  • 針對複寫進行疑難解答。

同時,透過結合複製功能與 SQL Server 提供的其他功能來擴充應用程式也是常見做法。 下表醒目提示在複寫應用程式中可能提供的一些擴充功能。

功能 範例
使用 SQL Server 管理物件的伺服器管理 (SMO) 應用程式,可讓系統管理員在複製拓撲中附加和設定資料庫做為發行者。
使用 ADO.NET 進行資料存取 一個應用程式,讓使用者能在離線時以程式方式存取並更改本地訂閱者資料庫中複製的銷售資料,然後透過點擊按鈕連接並同步拉取訂閱。

安全規劃

安全性在任何應用程式中都很重要,寫程式碼前應該先做好安全規劃。 應用程式安全性可以分成三個主要部分:保護資料庫、保護複寫,以及撰寫安全程序代碼。

以下文章提供有關安全資訊:

選擇開發環境

在開發複製應用程式時,請考慮以下三種基本開發環境。 每個開發環境都能夠存取相同的複寫功能,但有一些例外狀況。 你可以在以下每種環境中開發複製應用程式。

  • Managed 程式代碼

    物件導向開發環境,利用 .NET Framework 程式設計與 .NET 通用語言執行環境(CLR)的優勢。 Managed 程式代碼是 .NET 開發與 SQL Server 應用程式的建議程式設計環境。 受管理複製介面讓你能以物件導向的方式編程複製管理,而無需熟悉 Transact-SQL。 它也提供一些無法從腳本中取得的複製代理程式回調功能。 Managed 程式代碼是開發可重複使用元件和使用者介面應用程式的最佳環境。

  • 指令碼

    以 Transact-SQL 腳本中的複寫系統預存程式或批處理檔中命令的形式執行一系列命令的簡單應用程式。 雖然你可以在受管環境中使用 SQL Server 的進程內管理提供者執行腳本,但你也可以透過受管複製介面獲得相同功能,這些介面同時提供回調功能。 腳本是執行只執行幾次且不需要回調功能的任務的最佳環境,例如安裝複製伺服器。

  • 機器碼

    物件導向開發環境,利用直接存取系統或 COM 物件,使程式碼不受 CLR 管理。 原生程式代碼復寫介面已被取代或停止。 如需詳細資訊,請參閱 SQL Server 複寫復寫回溯相容性中已被取代的功能。

選擇適當的複製程式介面

最後的規劃步驟是選擇適當的複寫程式設計介面,以實作所選開發環境所需的複寫功能。 下表顯示可用的複製程式介面。

介面 Environment 使用
複寫管理物件概念 受控碼 管理、監視和同步處理。
Microsoft.SqlServer.Replication 受控碼 同步處理。
Microsoft.SqlServer.Replication.BusinessLogicSupport 受控碼 建立商業規則處理程式,以整合自定義邏輯與合併同步處理程式。
複寫預存程式 (Transact-SQL) 指令碼 管理和監視。
複製代理執行檔概念 指令碼 同步處理。

範例

在 Adventure Works 中,必須針對全球 200 名銷售代表發佈數據。 銷售代表經常出差,需要使用筆記型電腦或個人數位助理(PDA)來更改顧客資料並新增訂單。 銷售代表需要在將筆電連接到網路時,與 Publisher 同步變更。

針對此應用程式,規劃步驟可能如下所示:

  1. 此應用程式的復寫拓撲已經存在。 不過,你必須在客戶端建立新的拉取訂閱。 在出版物中使用參數化過濾器,將獨特的資料複製給每位銷售代表。

  2. 除了銷售應用程式所需的一般數據存取之外,此應用程式應該可讓銷售人員按下按鈕來視需要同步處理提取訂閱。 由於銷售代表負責安裝與執行應用程式,因此也需要能夠設定訂閱並在客戶端套用初始快照。 可選擇性地,應用程式會利用 Windows 提供的無線連線感測基礎設施,當偵測到連線時自動同步訂閱內容。

  3. 請遵守所有複製的安全指引,包括在連接 Publisher 時使用 Windows 認證及虛擬私人網路(VPN)。 如果你實作網頁同步,請使用傳輸層安全(TLS),過去稱為安全套接層(SSL)的連線。 如需詳細資訊,請參閱 Configure Web Synchronization

  4. 為了利用 .NET Framework 的功能,請使用受管理程式碼語言開發應用程式。

  5. 根據這些需求,復寫管理物件 (RMO) 受控介面可以提供此應用程式所需的所有複寫功能。

你可以從 SQL Server 下載 AdventureWorks 範例應用程式,實作此範例情境。