從 Oracle 資料庫建立發行集

適用於:SQL Server

本主題說明如何使用 SQL Server Management Studio 或 Transact-SQL,從 SQL Server 中的 Oracle 資料庫建立發行集。

必要條件

  • 在建立發佈之前,您必須先在 Microsoft SQL Server 散發者上安裝 Oracle 軟體,並且設定 Oracle 資料庫。 如需詳細資訊,請參閱設定 Oracle 發行者。

使用 SQL Server Management Studio

使用「新增發行精靈」從 Oracle 資料庫建立快照式或交易式發行。

第一次從 Oracle 資料庫建立發行集時,必須在「SQL Server 散發者」端識別「Oracle 發行者」(如果是同一資料庫的後續發行集,則不需要執行這個動作)。 您可以從 [新增發行集精靈] 或 [散發者屬性 - <散發者>] 對話方塊識別 Oracle 發行者;本主題顯示 [散發者屬性 - <散發者] 對話方塊。

若要在 SQL Server 散發者端識別 Oracle 發行者

  1. 在 SQL Server Management Studio 中,連線到 Oracle 發行者將作為散發者使用的 SQL Server 執行個體,然後展開伺服器節點。

  2. 以滑鼠右鍵按一下 [複寫] 資料夾,然後按一下 [散發者屬性] 。

  3. 在 散發者屬性 - <散發者 對話方塊的 發行者 頁面上,按一下 新增,然後按一下 新增 Oracle 發行者。

  4. 在 [連接到伺服器] 對話方塊上,按一下 [選項] 按鈕。

  5. 在 [登入] 索引標籤上:

    1. 在 Server instance 組合方塊中,輸入 Oracle 資料庫執行個體名稱,或選取 瀏覽更多。

    2. 選取 [Oracle 標準驗證] (建議選項) 或 [Windows 驗證] 。

      如果您選取 [Windows 驗證]:必須使用 Windows 認證將 Oracle 伺服器設定為允許連接 (如需詳細資訊,請參閱 Oracle 文件集);並且您目前的登入帳戶必須與您為複寫管理使用者結構描述指定的 Microsoft Windows 帳戶相同。

    3. 如果您選取 [Oracle 標準驗證] ,則於設定期間輸入您在「Oracle 發行者」上建立的複寫管理使用者結構描述之登入和密碼。

  6. 在 [連接屬性] 索引標籤上,選取 [閘道] 或 [完整] 的「發行者」類型。

    完整選項旨在為快照發佈和交易式發佈提供 Oracle 發佈所支援的完整功能集合。 [閘道] 選項可以在複寫作為系統之間的閘道時,提供特定的設計最佳化以提升效能。 如果您計畫在多個交易式發行集內發行相同的資料表,就無法使用 [閘道] 選項。 如果您選取 [閘道] ,則資料表最多只能在一個交易式發行集裡出現,但可以在任意數目的快照式發行集裡出現。

  7. 按一下 [連接] ,建立與「Oracle 發行者」的連接,並為複寫設定該連接。 連線到伺服器對話方塊會關閉,然後返回 散發者屬性 - <散發者 對話方塊。

    注意

    如果網路組態有問題,此時您會收到一條錯誤訊息。 如果您遇到連接到 Oracle 資料庫的問題,請參閱在< Troubleshooting Oracle Publishers>中的「SQL Server 散發者無法連接到 Oracle 資料庫執行個體」一節。

  8. 選取 OK。

若要從 Oracle 資料庫建立發行集

  1. 連線到 Oracle 發行者將作為「散發者」使用的 SQL Server 執行個體,然後展開伺服器節點。

  2. 展開 [複寫] 資料夾。

  3. 以滑鼠右鍵按一下 [本機發行集] 資料夾,然後按一下 [新增 Oracle 發行集] 。

  4. 在「新增發佈精靈」的 Oracle 發佈者 頁面上,選取「Oracle 發佈者」。 如果「Oracle 發行者」未顯示,按一下 [新增 Oracle 發行者] ,這會引領您繼續先前程序之後的步驟。

  5. 在 [發行集類型] 頁面上,選取 [快照集發行集] 或 [交易式發行集] 。

  6. 在 [發行項] 頁面上,選取您要發行的資料庫物件。

    您也可以展開資料表,然後清除一或多個欄位的核取方塊,以篩除這些資料表欄位。 按一下 發行項屬性,即可檢視及修改發行項屬性,並在必要時指定替代的資料類型對應。 如需資料類型對應的詳細資訊,請參閱為 Oracle 發行者指定資料類型對應。

  7. 在 [篩選資料表的資料列] 頁面,選擇性地套用篩選以發行一個或多個資料表的資料子集。

  8. 只有在訂閱資料庫中已建立所有物件並新增所有必要資料後,才能在 快照代理程式 頁面上取消選取 立即建立快照。

  9. 在 [代理程式安全性] 頁面,指定「快照集代理程式」的認證 (針對所有發行集) 和「記錄讀取器代理程式」的認證 (針對交易式發行集)。 代理程式會執行,並使用您指定的 Microsoft Windows 帳戶內容連線到 SQL Server 散發者。 代理程式會使用您指定為複寫管理使用者結構描述的帳戶內容,與 Oracle 資料庫建立連接。 如需詳細資訊,請參閱設定 Oracle 發行者。

    如需各代理程式所需權限的詳細資訊,請參閱< Replication Agent Security Model >和< Replication Security Best Practices>。

  10. 在 [精靈動作] 頁面上,您可以選擇為發佈作業撰寫指令碼。 如需詳細資訊,請參閱 Scripting Replication。

  11. 在 [完成精靈] 頁面中,為發行集指定名稱。

使用 TRANSACT-SQL

將 Oracle 資料庫設定為發行者之後,您可以像從 Microsoft SQL Server 發行者建立發行一樣,使用系統預存程序建立交易式或快照式發行。

建立 Oracle 發行項目

  1. 將 Oracle 資料庫設定為發行者。 如需詳細資訊,請參閱設定 Oracle 發行者。

  2. 如果遠端散發者不存在,請設定遠端散發者。 如需詳細資訊,請參閱 Configure Publishing and Distribution。

  3. 在 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 帳戶相同。

  4. 為發行資料庫建立記錄讀取器代理程式作業。

    • 如果您不確定發行的資料庫是否有記錄讀取器代理程式作業存在,請在散發資料庫上由 Oracle 發行者使用的散發者端執行 sp_helplogreader_agent (Transact-SQL)。 針對 @publisher指定 Oracle 發行者的名稱。 如果結果集是空的,就必須建立記錄讀取器代理程式作業。

    • 如果發行資料庫中已存在記錄讀取器代理程式作業,請繼續進行步驟 5。

    • 在 Oracle 發行者所使用之發佈端的發佈資料庫上,執行 sp_addlogreader_agent (Transact-SQL)。 針對 @job_login 和 @job_password指定此代理程式執行時所用的 Windows 認證。

      注意

      @job_login 參數必須符合步驟 3 中所提供的登入。 請勿提供發行者安全性資訊。 記錄讀取器代理程式會使用步驟 3 中所提供的安全性資訊連接到發行者。

  5. 在散發資料庫的散發者端,執行 sp_addpublication (Transact-SQL) 來建立發行集。 如需更多資訊,請參閱建立出版項目。

  6. 在散發資料庫的散發者端,執行 sp_addpublication_snapshot (Transact-SQL)。 指定步驟 4 中供 @publication 使用的發行項目名稱,以及 @job_name 和 @password 所對應、供快照代理程式執行時使用的 Windows 認證資訊。 若要在連接到發行者時使用「Oracle 標準驗證」,您也必須針對 @publisher_security_mode 指定 0 的值,以及針對 @publisher_login 和 @publisher_password指定 Oracle 登入資訊。 這會為發行建立快照代理程式作業。