下列非 SQL Server 的訂閱者可以使用推送訂閱來訂閱快照式發行和交易式發行。 支援使用所列 OLE DB 提供者的最新版本訂閱每個資料庫列出的兩個最新版本。
非 SQL Server 訂閱者的異質性複寫已被淘汰。 Oracle 發行功能不再建議使用。 若要移動資料,請使用異動資料擷取和 SSIS 建立方案。
謹慎
這項功能將在未來的 SQL Server Microsoft 版本中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。
| 資料庫 | 作業系統 | 供應商 |
|---|---|---|
| Oracle公司 | Oracle 支援的所有平臺 | Oracle OLE DB 提供者(由 Oracle 提供) |
| IBM DB2 | MVS、AS400、Unix、Linux、Windows,不包括 9.x | Microsoft主機整合伺服器 (HIS) OLE DB 提供者 |
如需建立 Oracle 和 IBM DB2 訂閱的相關信息,請參閱 Oracle 訂閱者和IBM DB2 訂閱者。
非 SQL Server 訂閱者的考慮
複寫至非 SQL Server 訂閱者時,請記住下列考慮:
一般考慮
復寫支援將數據表和索引檢視表發行為非 SQL Server 訂閱者(索引檢視無法複寫為索引檢視表)。
在 [新增發行集精靈] 中建立發行集,然後使用 [發行集屬性] 對話框為非 SQL Server 訂閱者啟用發行集時,不會為非 SQL Server 訂閱者指定訂閱資料庫中所有對象的擁有者,而對於Microsoft SQL Server 訂閱者,則會將它設定為發行集資料庫中對應對象的擁有者。
如果發行集將有 SQL Server 訂閱者和非 SQL Server 訂閱者,則必須先為非 SQL Server 訂閱者啟用發行集,才能建立 SQL Server 訂閱者的任何訂閱。
根據預設,快照集代理程序針對非 SQL Server 訂閱者所產生的腳本會使用 CREATE TABLE 語法中的非引號標識碼。 因此,名為 'test' 的已發佈數據表會復寫為 'TEST'。 若要使用與發行集資料庫中數據表相同的案例,請使用散發代理程式的 -QuotedIdentifier 參數。 如果發行的物件名稱(例如數據表、數據行和條件約束)包含非 SQL Server 訂閱者端資料庫版本中保留字的空格或字組,也必須使用 -QuotedIdentifier 參數。 如需此參數的詳細資訊,請參閱 復寫散發代理程式。
執行散發代理程式的帳戶必須具有 OLE DB 提供者安裝目錄的讀取許可權。
根據預設,非 SQL Server 訂閱者,散發代理程式會針對訂閱資料庫使用 [(預設目的地)] 的值(散發代理程式的 -SubscriberDB 參數):
針對 Oracle,伺服器最多有一個資料庫,因此不需要指定資料庫。
針對IBM DB2,資料庫會在 DB2 連接字串中指定。 如需詳細資訊,請參閱 建立非 SQL Server 訂閱者的訂閱。
如果 SQL Server 散發者是在 64 位平台上執行,您必須使用適當 OLE DB 提供者的 64 位版本。
複製會以 Unicode 格式傳輸數據,無論在發行者和訂閱者上使用的排序規則或代碼頁為何。 建議您在發行者與訂閱者之間複寫時,選擇相容的定序/代碼頁。
如果在發行集中新增或刪除文章,則必須對非 SQL Server 訂閱者重新初始化訂閱。
所有非 SQL Server 訂閱者唯一支援的條件約束是:NULL 和 NOT NULL。 主鍵約束條件會複製為唯一索引。
NULL 值會受到不同資料庫的不同處理,這會影響空白值、空字串和 NULL 的表示方式。 這反過來會影響插入到具有唯一約束條件的欄中的值的行為。 例如,Oracle 允許在被視為唯一的數據行中有多個 NULL 值,而 SQL Server 則只允許唯一數據行中的單一 NULL 值。
另一個因素是當數據行定義為 NOT NULL 時,NULL 值、空字串和空白值如何處理。 如需針對 Oracle 訂閱者解決此問題的詳細資訊,請參閱 Oracle 訂閱者。
拿掉訂閱時,不會從非 SQL Server 訂閱者刪除複寫相關的元數據(交易順序數據表)。
符合訂閱者資料庫的需求
發行的架構和數據必須符合訂閱者端資料庫的需求。 例如,如果非 SQL Server 資料庫的數據列大小小於 SQL Server,您必須確定已發佈的架構和數據不會超過此大小。
復寫到非 SQL Server 訂閱者的數據表將會採用訂閱者端資料庫的數據表命名慣例。
非 SQL Server 訂閱者不支援 DDL。 如需架構變更的詳細資訊,請參閱 在發行集資料庫上進行架構變更。
複寫功能支援
SQL Server 提供兩種類型的訂用帳戶:推送和提取。 非 SQL Server 訂閱者必須使用推送式訂閱,其中散發代理程式會在 SQL Server 散發者端執行。
SQL Server 提供兩種快照集格式:原生 bcp 模式和字元模式。 非 SQL Server 訂閱者需要字符模式快照。
非 SQL Server 訂閱者無法使用立即更新或佇列更新訂閱,或是點對點拓撲中的節點。
無法從備份自動初始化非 SQL Server 訂閱者。