從 Oracle 資料庫建立發行集
適用於:SQL Server
本主題說明如何使用 SQL Server Management Studio 或 Transact-SQL,從 SQL Server 中的 Oracle 資料庫建立發行集。
本主題內容
開始之前:
若要從 Oracle 資料庫建立發行集,請使用:
開始之前
必要條件
- 建立發行集之前,您必須先在「Microsoft SQL Server 散發者」上安裝 Oracle 軟體,也必須設定 Oracle 資料庫。 如需詳細資訊,請參閱設定 Oracle 發行者。
使用 SQL Server Management Studio
使用「新增發行集精靈」從「Oracle 資料庫」建立快照式或交易式發行集。
第一次從 Oracle 資料庫建立發行集時,必須在「SQL Server 散發者」端識別「Oracle 發行者」(如果是同一資料庫的後續發行集,則不需要執行這個動作)。 可以從 [新增發行集精靈] 或 [散發者屬性 - <散發者>] 對話方塊來完成 Oracle 發行者的識別;本主題會顯示 [散發者屬性 - <散發者>] 對話方塊。
若要在 SQL Server 散發者端識別 Oracle 發行者
在 SQL Server Management Studio 中,連接到 Oracle 發行者將其做為「散發者」使用的 SQL Server 執行個體,然後展開伺服器節點。
以滑鼠右鍵按一下 [複寫] 資料夾,然後按一下 [散發者屬性] 。
在 [散發者屬性 - <散發者>] 對話方塊的 [發行者] 頁面上,按一下 [新增],然後按一下 [新增 Oracle 發行者]。
在 [連接到伺服器] 對話方塊上,按一下 [選項] 按鈕。
在 [登入] 索引標籤上:
在 [伺服器執行個體] 下拉式方塊中輸入 Oracle 資料庫執行個體名稱或選取 [瀏覽其他] 。
選取 [Oracle 標準驗證] (建議選項) 或 [Windows 驗證] 。
如果您選取 [Windows 驗證]:必須使用 Windows 認證將 Oracle 伺服器設定為允許連接 (如需詳細資訊,請參閱 Oracle 文件集);並且您目前的登入帳戶必須與您為複寫管理使用者結構描述指定的 Microsoft Windows 帳戶相同。
如果您選取 [Oracle 標準驗證] ,則於設定期間輸入您在「Oracle 發行者」上建立的複寫管理使用者結構描述之登入和密碼。
在 [連接屬性] 索引標籤上,選取 [閘道] 或 [完整] 的「發行者」類型。
[完整] 選項可以為 Oracle 發行提供具有完整支援功能的快照式和交易式發行集。 [閘道] 選項可以在複寫作為系統之間的閘道時,提供特定的設計最佳化以提升效能。 如果您計畫在多個交易式發行集內發行相同的資料表,就無法使用 [閘道] 選項。 如果您選取 [閘道] ,則資料表最多只能在一個交易式發行集裡出現,但可以在任意數目的快照式發行集裡出現。
按一下 [連接] ,建立與「Oracle 發行者」的連接,並為複寫設定該連接。 [連接到伺服器] 對話方塊隨即關閉,並將您返回至 [散發者屬性 - <散發者>] 對話方塊。
注意
如果網路組態有問題,此時您會收到一條錯誤訊息。 如果您遇到連接到 Oracle 資料庫的問題,請參閱在< Troubleshooting Oracle Publishers>中的「SQL Server 散發者無法連接到 Oracle 資料庫執行個體」一節。
選取 [確定]。
若要從 Oracle 資料庫建立發行集
連線到 Oracle 發行者將其做為「散發者」使用的 SQL Server 執行個體,然後展開伺服器節點。
展開 [複寫] 資料夾。
以滑鼠右鍵按一下 [本機發行集] 資料夾,然後按一下 [新增 Oracle 發行集] 。
在「新增發行集精靈」的 [Oracle 發行者] 頁面,選取「Oracle 發行者」。 如果「Oracle 發行者」未顯示,按一下 [新增 Oracle 發行者] ,這會引領您繼續先前程序之後的步驟。
在 [發行集類型] 頁面上,選取 [快照集發行集] 或 [交易式發行集] 。
在 [發行項] 頁面上,選取您要發行的資料庫物件。
或者,透過展開資料表,然後清除一個或多個資料行之核取方塊的方式,篩選出資料表的資料行。 如有必要,按一下 [發行項屬性] 以檢視和修改發行項屬性,並指定替代資料類型對應。 若要指定資料類型對應的詳細資訊,請參閱指定 Oracle 發行者的資料類型對應。
在 [篩選資料表的資料列] 頁面,選擇性地套用篩選以發行一個或多個資料表的資料子集。
僅當在訂閱資料庫中已建立了所有物件,且已加入了所有需要的資料時,才能在 [快照集代理程式] 頁面清除 [立即建立快照集] 。
在 [代理程式安全性] 頁面,指定「快照集代理程式」的認證 (針對所有發行集) 和「記錄讀取器代理程式」的認證 (針對交易式發行集)。 代理程式會使用您指定的 Microsoft Windows 帳戶之內容,執行並與「SQL Server 散發者」建立連接。 代理程式會使用您指定為複寫管理使用者結構描述的帳戶內容,與 Oracle 資料庫建立連接。 如需詳細資訊,請參閱設定 Oracle 發行者。
如需各代理程式所需權限的詳細資訊,請參閱< Replication Agent Security Model >和< Replication Security Best Practices>。
在 [精靈動作] 頁面上,選擇性地為發行集編寫指令碼。 如需詳細資訊,請參閱 Scripting Replication。
在 [完成精靈] 頁面上,指定發行集的名稱。
使用 TRANSACT-SQL
當 Oracle 資料庫已經設定為發行者之後,您可以使用系統預存程序來建立交易式或快照式發行集,就像是從 Microsoft SQL Server 發行者建立一樣。
建立 Oracle 發行集
將 Oracle 資料庫設定為發行者。 如需詳細資訊,請參閱設定 Oracle 發行者。
如果遠端散發者不存在,請設定遠端散發者。 如需詳細資訊,請參閱 Configure Publishing and Distribution。
在 Oracle 發行者將使用的遠端散發者端,執行 sp_adddistpublisher (Transact-SQL)。 針對 @publisher 指定 Oracle 資料庫執行個體的透明網路基質 (Transparent Network Substrate,TNS) 名稱,以及針對 @publisher_type 指定 ORACLE 或 ORACLE GATEWAY的值。
Specify
指定當從 Oracle 發行者連接到遠端 SQL Server 散發者時所使用的安全性模式,如下列其中一項:若要使用預設值 Oracle 標準驗證,請將 @security_mode 指定為 0的值、將 @login指定為組態設定期間在 Oracle 發行者上建立之複寫管理使用者結構描述的登入,並將 @password指定為密碼。
重要
可能的話,會在執行階段提示使用者輸入安全性認證。 如果您將認證儲存在指令碼檔案中,必須保護該檔案免於未經授權的存取。
若要使用「Windows 驗證」,請將 @security_mode 指定為 1的值。
注意
若要使用「Windows 驗證」,必須使用 Windows 認證將 Oracle 伺服器設定為允許連接 (如需詳細資訊,請參閱 Oracle 文件集);並且您目前的登入帳戶必須與您為複寫管理使用者結構描述指定的 Microsoft Windows 帳戶相同。
針對發行集資料庫建立記錄讀取器代理程式作業。
如果您不確定發行的資料庫是否有記錄讀取器代理程式作業存在,請在散發資料庫上由 Oracle 發行者使用的散發者端執行 sp_helplogreader_agent (Transact-SQL)。 針對 @publisher指定 Oracle 發行者的名稱。 如果結果集是空的,就必須建立記錄讀取器代理程式作業。
如果記錄讀取器代理程式作業已存在發行集資料庫中,請繼續進行步驟 5。
在散發資料庫上由 Oracle 發行者使用的散發者端,執行 sp_addlogreader_agent (Transact-SQL)。 針對 @job_login 和 @job_password指定此代理程式執行時所用的 Windows 認證。
注意
@job_login 參數必須符合步驟 3 中所提供的登入。 請勿提供發行者安全性資訊。 記錄讀取器代理程式會使用步驟 3 中所提供的安全性資訊連接到發行者。
在散發資料庫的散發者端,執行 sp_addpublication (Transact-SQL) 來建立發行集。 如需詳細資訊,請參閱建立發行集。
在散發資料庫的散發者端,執行 sp_addpublication_snapshot (Transact-SQL)。 針對 @publication 指定步驟 4 中所使用的發行集名稱,以及針對 @job_name 和 @password指定快照集代理程式執行時所使用的 Windows 認證。 若要在連接到發行者時使用「Oracle 標準驗證」,您也必須針對 @publisher_security_mode 指定 0 的值,以及針對 @publisher_login 和 @publisher_password指定 Oracle 登入資訊。 這麼做會為發行集建立快照集代理程式作業。