所有類型複寫的考量
文件集的這一部分包含了實作複寫前應考慮的方面,例如識別資料行、條件約束以及資料類型。本主題涵蓋了影響所有類型複寫的各個方面,下列主題還提供其他資訊:
- 快照式複寫考量
- 交易式複寫考量
- 合併式複寫考量
- 複寫國際性考量
- 使用 NOT FOR REPLICATION 控制條件約束、識別和觸發程序
- 複寫回溯相容性
- 在複寫拓撲中使用多個 SQL Server 版本
除了這些主題以外,每個複寫功能的主題也說明了實作功能的注意事項。
SQL Server Agent
複寫使用了名為代理程式的獨立程式,以執行與追蹤變更和散發資料有關的工作。依預設,複寫代理程式會作為 SQL Server Agent 下排程的作業來執行。若要執行作業,必須執行 SQL Server Agent。依預設,安裝 SQL Server 2005 時會停用 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 2005 Compact Edition 的「訂閱者」使用字元模式快照集。如果使用字元模式快照集,LOB 類型便會轉換為 Unicode,使快照集檔中 LOB 資料的大小變為發行集資料庫中相同資料的四倍。當資料複製到訂閱資料庫時,它會再次被轉換,最終結果是它的大小與發行集資料庫中的資料相同。
資料類型對應
如果複寫拓撲包含了舊版的 SQL Server、SQL Server 2005 Compact Edition、非「SQL Server 發行者」或非「SQL Server 訂閱者」,資料類型便會在資料庫之間對應。若需資料類型對應的清單,請參閱:
- 在複寫拓撲中使用多個 SQL Server 版本
- 資料類型與複寫 (SQL Server 2005 Compact Edition)
- Oracle 發行者的資料類型對應
- Oracle 訂閱者
- IBM DB2 訂閱者
識別資料行
若要在具有多個節點更新的複寫拓撲裡使用識別資料行,複寫拓撲中的每個節點必須使用不同的識別值範圍,以免出現重複。複寫會處理所有發行集與訂閱類型的識別資料行,讓您能夠手動管理資料行,或者讓複寫自動管理這些資料行。如需詳細資訊,請參閱<複寫識別資料行>。
計算資料行
複寫只會將計算資料行的定義複製到「訂閱者」。「訂閱者」端每一資料行的值取決於「訂閱者」端的資料以及資料行的計算是否使用了非決定性函數。如果「發行者」端與「訂閱者」端的資料在某一給定的時間點上相同,且計算僅使用決定性函數,則資料行的計算值相同。如果資料不同或是計算使用一或多個非決定性函數,「發行者」端與「訂閱者」端的值便可能不同。如需函數決定論的詳細資訊,請參閱<決定性與非決定性函數>。