SQL SERVER複寫拓撲結構中,訂閱端宕機後的處理…..(二)

來源:互聯網
上載者:User

接著上一章

 

當訂閱端長時間沒有連上,且同時在發布端有大量的insert語句,來看看:

 

USE mysales_normalGOINSERT INTO [mysales_normal].[myinventory].[Vendor]SELECT addressid,substring(addressline1,1,20),substring(city,1,10),substring(city,1,10),substring(city,1,5),substring(city,1,10) FROM AdventureWorks.person.ADDRESSWHERE AddressID>10000

 

這條語句插入了18510條語句,等待吧!可以從replication monitor可以得知未發送的命令:

 

SELECT count(*) FROM distribution.dbo.msrepl_commands (nolock) dmWHERE dm.publisher_database_id=7and article_id=8

 

 

如果運行 【Distribution clean up: distribution】job,是沒有任何效果的,因為命令沒有發送到訂閱端!

 

 

這時已經是第二天了,一直斷了10多個小時,插入insert tracer,會發現distributor to subscriber的狀態是pending,未發送命令多了一條,:

啟動具名執行個體後會發現distributor 把掛起的命令立即發送到subscriber,:

再來看看replication monitor中的undistributed comands選項:

只剩下最後一條insert tracer命令沒有被【Distribution clean up: distribution】這個job清理掉,看看相關msrepl_commmands中的命令:

SELECT count(*) FROM distribution.dbo.msrepl_commands (nolock) dm
WHERE dm.publisher_database_id=7
and dm.article_id=8

結果為0

 

再來看看未被清理掉的是什麼命令,使用如下的指令碼,這個時候不能使用@article_id這個參數

exec distribution..sp_browsereplcmds@publisher_database_id=7

 

 

 

 

 

訂閱端表vendor已經有相應的資料了!

 

總結:1:再一次的證明了undistributed commands 僅僅是顯示相應發布項在msrepl_commands中的命令,包括已發送的和未發送的命令,這個命令數字只能作為輔助判斷,

為了證明這一點,可以手動的暫停【Distribution clean up: distribution】job,會發現undistributed commands 會永遠不變。

         2: 【Distribution clean up: distribution】也只是清理掉已發送的命令,10分鐘運行一次,關鍵的判斷還是要通過[insert tracer]來確認,這個命令的詳細解釋點擊這

         3:在做這個測試尋找資料中,發現這個連結,在 FQA FOR Replication 中微軟給出了一個總結式的結論,抄錄如下:

Does replication resume if a connection is dropped

Yes. Replication processing resumes at the point at which it left off if a connection is dropped. If you are using merge replication over an unreliable network,

consider using logical records, which ensures related changes are processed as a unit.

       4:有關複製分發的資料,以下兩個網站非常不錯,可以常去看看!

a: REPLTalk covers Using and Tuning SQL Replication

b:replicationanswers

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.