如何以手動方式使用備份或還原,以同步處理複寫訂閱

文章翻譯 文章翻譯
文章編號: 320499 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何以手動方式使用備份及還原,以同步處理複寫發送訂閱。

有時候,無法完全同步複寫訂閱使用預設方法,因為潛在的原因如下:
  1. 您必須將傳送到訂閱者具有的大型資料表。
  2. 網路頻寬只可以處理累加的變更 ; 因此,大型 BCPs 可能逾時時間。
  3. 發行者是實際執行伺服器 ; 因此,商務需要需要停機時間至最小化。
在這些情況下您可以使用 SQL Server 備份來建立發行的資料庫的複本,然後您可以還原訂閱者資料 ; 如此一來,您可以設定複寫,並測試在複寫使用,而不在網路上傳遞結構描述或使用者資料。下列各節列出步驟和考量事項,您必須使用,以便確定手動同步處理成功。

交易式複寫

交易式複寫會儲存,並將序列交易轉寄到 「 訂閱者。是已發行的資料表的變更會傳送到訂閱者以它們所提交的順序很重要的。

與新的訂閱交易式複寫會標記每項變更已發行資料表 (或資料表),交易記錄檔中。預設訂閱傳遞方法鎖定資料表、 將資料匯出使用 bcp 公用程式、 解除鎖定已發行的資料表,並再開始追蹤已發行資料庫的變更。在 SQL Server 2000 中 「 同時的快照集 」 功能可改善快照集負荷鎖定。SQL Server 2000 和 SQL Server 7.0 可以藉由使用檔案傳輸通訊協定 (FTP) 傳輸快照集。但是,您可以使用備份的方法的其中這些選項不是可接受的情況。

備份已發行的資料庫,並將它還原到 「 訂閱者,您可以為所需花費的時間減少快照集建立處理序時間備份發行的資料庫。資料庫備份包括所有未傳送給訂閱者由複寫的物件 ; 您無需在網路上執行 bcp 傳輸的資料表。

有兩種方法來備份發行的資料庫。第一個方法使用已發行的資料庫完整的備份。完整備份方法最好如果資料庫是小型或如果資料庫不設定為完全復原模式。第二個方法使用交易記錄檔備份,並假設您已經擷取資料庫的完整備份。交易記錄檔的備份方法減少資料庫必須處於單一使用者模式的時間。交易記錄檔備份會花費較少的時間比完整備份。如果您打算使用交易記錄檔的備份方法,請依照下列步驟執行:
  1. 如果發行的資料庫未在中執行完全復原模式,變更為完全復原模式。
  2. 備份發行的資料庫。
  3. 備份記錄檔來逐步解說訂閱的步驟所花的時間減到最少,並遵循下一個程序中的步驟。
若要設定訂閱,請依照下列步驟執行:
  1. 將發行的資料庫放在單一使用者模式,以防止在資料庫中執行下列預存程序來進行變更: sp_dboption 'DBNAME'、 '單一使用者'、 '則為 True'。這可防止在資料庫中進行變更。這是重要的步驟 ; 當您建立確定發行者與訂閱者保持同步。您必須先停止執行 sp_dboption 預存程序前,先連接到資料庫的所有複寫代理程式。
  2. 如果您使用的備份發行的資料庫完整備份方法。如果您正在使用交易記錄檔方法,備份交易記錄檔已發行的資料庫。
  3. 建立新的訂閱至您的出版物。選取 傳遞資料和結構描述。
  4. 雖然您正在設定訂閱,尋找 [散發代理程式排程] 畫面。變更工作執行一次。(這可以防止 「 散發代理程式 」 到 「 訂閱者還原資料庫 [和交易記錄檔備份] 之後,直到執行)。
  5. 移除從單一使用者模式的資料庫,藉由使用下列預存程序呼叫: sp_dboption 'DBNAME'、 '單一使用者'、 'false'。因為訂閱設定,所有變更會都轉送至散發資料庫。
  6. 在訂閱者資料庫還原。如果您正在使用交易記錄檔方法,還原完整備份及交易記錄檔備份。在這個時候不應該執行 「 散發代理程式 」。如果它是它會防止從正在還原的資料庫。代理程式 」 的排程已變更在步驟 4。
  7. 產生複寫期間使用 [插入]、 [更新,] 和 [刪除 程序。您可以藉由執行下列程序的其中一個產生 CREATE 程序陳述式,如這些程序: (視的複寫類型和版本的 SQL Server 有不同的程序)
    1. 為 SQL Server 2000: sp_scriptpublicationcustomprocs

      在發行者上執行 sp_scriptpublicationcustomprocs。此程序會產生所需在 「 訂閱者端的預存程序的文字。在訂閱的資料庫上執行產生的指令碼。
    2. 立即更新及佇列的訂閱者: sp_script_synctran_commands

      附註立即更新及佇列的訂閱者都是步驟 4 的例外狀況。在套用 sp_script_synctran_commands 的輸出到訂閱者資料庫因為 「 散發代理程式 」 會產生名為 MSsubscription_agents 的支援資料表之前,您必須執行 「 散發代理程式 」。 執行 「 散發代理程式 」 之後套用到訂閱者資料庫 sp_script_synctran_commands 產生指令碼。在發行者和訂閱資料庫上產生的指令碼,您也必須執行立即更新訂閱者的 [sp_scriptpublicationcustomprocs 預存程序]。

    3. 您必須套用的 sp_script_synctran_commands 輸出到訂閱者資料庫 ; 但是,您必須先執行散發代理程式,以產生支援的資料表名稱為 MSsubscription_agents,並執行 sp_script_synctran_commands 時您可以再套用所產生的輸出。您也必須為立即更新訂閱者執行 sp_scriptpublicationcustomprocs 發行者上。在訂閱的資料庫上執行產生的指令碼。
    4. 為 SQL Server 7.0: Sp_scriptinsprocsp_scriptdelprocsp_scriptupdprocsp_scriptmappedupdproc

      這些程序產生所需在 「 訂閱者端的程序的指令碼。針對訂閱資料庫中執行這些指令碼。
  8. 啟動 「 散發代理程式 」。若要將 「 散發代理程式 」 設定為持續執行。若要執行這項操作,加入 -連續 散發代理程式命令列。
如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
299903FIX: sp_scriptpublicationcustomprocs 會產生複寫預存程序

合併式複寫

附註 合併提取訂閱不支援無同步處理訂閱。

當您使用備份或還原設定以 No-sync 選項式合併發行集的訂閱時,請依照下列步驟執行:
  1. 發佈該資料庫,然後再執行 「 快照集代理程式 」。如果發行資料庫只需要執行 「 快照集代理程式 」。

    現在將發行者所做的所有變更都記錄在合併複寫系統資料表中。
  2. 備份發行的資料庫,再將其還原訂閱者上。
  3. 建立新的訂閱,然後選取 [否],「 訂閱者 」 已經有結構描述和資料
  4. 執行 「 合併代理程式 」。

    當 「 合併代理程式 」 執行時,它第一次使用快照集來建立合併複寫資料表。由於產生快照集所做的所有變更會都套用至訂閱者:
    • 如果您在此程序新增步驟 1 和步驟 2 之間的任何資料列,您將會看到新的資料列作為訂閱者上的更新。因為的還原已存在資料列。因此,您將會看到新的資料列在訂閱者上。
    • 如果您刪除步驟 1 和步驟 2 中此程序之間的任何資料列,「 合併代理程式 」 會報告因為資料列不存在於訂閱者,必須進行任何變更。備份或還原已執行後已經刪除發行者上的資料列。
    • 如果步驟 1 和步驟 2 中此程序之間已更新任何資料列,您將會看到這些做為更新訂閱者上。

其他相關資訊

如需有關如何初始化交易式訂閱從 SQL Server 2005 中備份的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站]:
http://msdn2.microsoft.com/en-us/library/ms151705.aspx
如需有關如何初始化從 SQL Server 2005 中備份的合併訂閱的詳細資訊,請造訪下列 MSDN 網站:
http://msdn2.microsoft.com/en-us/library/ms152488.aspx

屬性

文章編號: 320499 - 上次校閱: 2007年11月12日 - 版次: 7.1
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
關鍵字:?
kbmt kbhowtomaster KB320499 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:320499
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com