SQL Server2000表複製的原理問題

tolywang發表於2010-08-13
Windows 2003 ,  SQL Server 2000 SP4  .


設定A資料庫到B資料庫的兩個table的資料同步複製,採用SQL Server的replication 功能,在A庫上設定釋出器後,
就會在A庫SQL Server 的一個複製目錄下生成3個檔案, 分別是 xxx.bcp, xxx.idx , xxx.sch,   表示bulk copy 及index,  
表結構建立等 (如果有多個表,就生成多組這些檔案),且A庫中會建立一個distribute 庫。 在B庫上建立訂閱後,我們可以
在job 執行的log history 中看到, 一般是先按照表名的順序先執行建立表,建立索引, 所有表的這些結構建立完成後,才
開始按照表名的順序匯入資料, 觀察好像是100000筆記錄一次提交(提示是 100000 row(s) copied)。


問題:

1.   B庫中的table不存在,首次同步的時候,需要將A庫中的某個大表,比如1000萬筆記錄,同步複製過去,那麼第一次
複製的時候是否會經過distribute 庫 ?  還是直接透過 xxx.bcp, xxx.idx , xxx.sch 檔案建立 ?     


2.   每個SQL Server伺服器都將操作記錄到Log中,Distribution透過Log Reader讀取釋出伺服器上的Log,將操作
以SQL Commands的形式記錄到Distribution庫的表中。如果是Pull的形式訂閱,那麼Subscriber上會建立一個Job去
拉Distribution中需要執行的SQL Commands。   “釋出伺服器上的Log”  是指trn log 嗎 ?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-670901/,如需轉載,請註明出處,否則將追究法律責任。

相關文章