所有類型複寫的考量
文件集的這一部分包含了實作複寫前應考慮的方面,例如識別欄位、條件約束以及資料類型。 本主題涵蓋了影響所有類型複寫的各個方面,下列主題還提供其他資訊:
除了這些主題以外,每個複寫功能的主題也說明了實作功能的注意事項。
SQL Server Agent
複寫使用了名為代理程式的獨立程式,以執行與追蹤變更和散發資料有關的工作。 依預設,複寫代理程式會作為 SQL Server Agent 下排程的作業來執行。 若要執行作業,必須執行 SQL Server Agent。 依預設,安裝 SQL Server 時會停用 SQL Server Agent 服務,除非明確選擇在安裝期間自動啟動該服務。如需有關啟動 SQL Server Agent 服務的詳細資訊,請參閱<啟動 SQL Server Agent>。
安全性考量
瞭解如何確保安全的複寫環境,以便於應用程式中保護資料和商務邏輯,這是很重要的。 基本上,確保複寫環境的安全性也就是要瞭解您的驗證與授權選項,瞭解如何適當使用複寫篩選功能,並學習確保各複寫環境 (包括散發者、發行者、訂閱者和快照集資料夾) 安全性的特定方法。 如需詳細資訊,請參閱<安全性與保護 (複寫)>。
管理考量
設定複寫之後,請務必瞭解如何管理複寫拓撲。 如需管理複寫之最佳作法的詳細資訊,請參閱<複寫管理的最佳作法>。 這個主題提供各個範疇的基本最佳作法指導,並可透過連結方式分別取得進一步資訊。 除了依照此主題中呈現的最佳作法指導以外,請考慮閱讀常見問答集,以更加熟悉一般問題: 複寫管理員的常見問題集。
網路和效能考量
在以下方面,有一些與效能相關的最佳作法要遵循:
伺服器和網路硬體
資料庫設計
散發者組態
發行集設計與選項
篩選設計與使用
訂閱選項
快照集選項
代理程式參數
維護
如需詳細資訊,請參閱<效能 (複寫)>。
如果您正透過速度較慢的連接進行複寫,可以自訂複寫涉及之代理程式的設定檔。 組態選項因要設定之設定檔所屬的特定代理程式而異。 如需詳細資訊,請參閱<複寫代理程式設定檔>和<低速網路將引起問題>。
當套用初始快照集時,網路速度通常是最重要的問題。 累加式資料變更的量可能較小,但最初散發的資料量可能較大。 可能的解決方案包括:
使用 CD-ROM 或磁帶裝置傳送快照集。 如需詳細資訊,請參閱<替代快照集資料夾位置>和<壓縮的快照集>。
不使用快照集初始化訂閱。 如需詳細資訊,請參閱<不使用快照集初始化交易式訂閱>和<不使用快照集初始化合併訂閱>。
指定複寫拓撲中的伺服器名稱
當指定參與複寫的伺服器執行個體名稱時,必須以 SQL Server 註冊伺服器執行個體名稱的格式提供該名稱。 例如,當您在命令列中指定複寫預存程序的「發行者」或「訂閱者」參數,或複寫代理程式連接設定時,必須使用 SQL Server 執行個體名稱。 如果 SQL Server 執行個體的網路名稱與註冊執行個體名稱不同,代理程式的複寫連接便會失敗。 如果執行個體的網路名稱與 SQL Server 執行個體的名稱不同,請考慮將 SQL Server 執行個體名稱新增為有效的網路名稱。 設定另一可用網路名稱的方法之一,是將它加入本機主機檔案。 本機主機檔案預設位於 WINDOWS\system32\drivers\etc 或 WINNT\system32\drivers\etc。如需進一步資訊,請參閱 Windows 文件集。
例如,若電腦名稱為 comp1,電腦 IP 位址是 10.193.17.129,且執行個體名稱為 inst1/instname,請將下列項目加入主機檔案:
10.193.17.129 inst1
資料完整性
對於允許在「訂閱者」端更新的拓撲,您必須確定在每個「訂閱者」端保留了應用程式的完整性。 所有用於在「發行者」端驗證資料變更的控制項 (如條件約束),「訂閱者」端均應存在,或者應在應用程式中得到處理。 如需「訂閱者」端之複寫代理程式和條件約束的詳細資訊,請參閱<使用 NOT FOR REPLICATION 控制條件約束、識別和觸發程序>。
資料衝突
對於允許在「訂閱者」端更新的拓撲,請設計應用程式以將衝突的可能縮到最小。 如果「訂閱者」只需讀取資料而無需更新資料,衝突便可避免。 根據地理位置或商務用途邏輯性地分割資料,同樣可以阻止使用者更新同一資料值,從而避免衝突。 如需分割資料的詳細資訊,請參閱<篩選發行的資料>。
大型物件 (LOB) 資料類型
資料類型 text、ntext 和 image 已被取代。 建議您分別使用資料類型 varchar(max)、nvarchar(max) 和 varbinary(max)。 如果您使用 text、ntext 和 image 資料類型,請參閱下列主題中的「大型物件 (LOB) 資料類型」章節,以便獲得詳細資訊: <交易式複寫考量>和<合併式複寫考量>。
非「SQL Server 發行者」、非「SQL Server 訂閱者」和執行 Microsoft SQL Server Compact 3.5 SP2 的「訂閱者」使用字元模式快照集。 如果使用字元模式快照集,LOB 類型便會轉換為 Unicode,使快照集檔中 LOB 資料的大小變為發行集資料庫中相同資料的四倍。 當資料複製到訂閱資料庫時,它會再次被轉換,最終結果是它的大小與發行集資料庫中的資料相同。
資料類型對應
如果複寫拓撲包含了舊版的 SQL Server、SQL Server Compact 3.5 SP2、非「SQL Server 發行者」或非「SQL Server 訂閱者」,資料類型便會在資料庫之間對應。 若需資料類型對應的清單,請參閱:
Data Types and Replication (SQL Server Compact 3.5 SP2)
識別欄位
若要在具有多個節點更新的複寫拓撲裡使用識別欄位,複寫拓撲中的每個節點必須使用不同的識別值範圍,以免出現重複。 複寫會處理所有發行集與訂閱類型的識別欄位,讓您能夠手動管理資料行,或者讓複寫自動管理這些資料行。 如需詳細資訊,請參閱<複寫識別欄位>。
計算資料行
複寫只會將計算資料行的定義複製到「訂閱者」。 「訂閱者」端每一資料行的值取決於「訂閱者」端的資料以及資料行的計算是否使用了非決定性函數。 如果「發行者」端與「訂閱者」端的資料在某一給定的時間點上相同,且計算僅使用決定性函數,則資料行的計算值相同。 如果資料不同或是計算使用一或多個非決定性函數,「發行者」端與「訂閱者」端的值便可能不同。 如需函數決定論的詳細資訊,請參閱<決定性與非決定性函數>。