主從庫是兩臺服務(wù)器上的兩個數(shù)據(jù)庫,主庫以最快的速度做增刪改操作+最新數(shù)據(jù)的查詢操作;從庫負(fù)責(zé)查詢較舊數(shù)據(jù),做一些對實(shí)效性要求較小的分析,報(bào)表生成的工作。這樣做將數(shù)據(jù)庫的壓力分擔(dān)到兩臺服務(wù)器上從而保證整個系統(tǒng)響應(yīng)的及時性。
SQL Server提供了復(fù)制機(jī)制來幫我們實(shí)現(xiàn)主從庫的機(jī)制。
實(shí)踐前需要新創(chuàng)建一個Test的數(shù)據(jù)庫,這個庫中建一個測試表。
1. 打開sql server企業(yè)管理器,在對象資源管理器里面選擇復(fù)制->本地發(fā)布,右鍵選擇新建發(fā)布;
2. 打開新建發(fā)布向?qū)Вc(diǎn)下一步,選擇發(fā)布數(shù)據(jù)的數(shù)據(jù)庫;
3. 我們選擇Test數(shù)據(jù)庫,并點(diǎn)擊下一步,選擇發(fā)布類型;
注: 這里我們選擇的是事務(wù)性發(fā)布,事務(wù)性發(fā)布保證數(shù)據(jù)在做更新之后盡可能快的分發(fā)到訂閱服務(wù)器上。有關(guān)其他幾種發(fā)布類型的使用場景請參考msdn
4. 點(diǎn)擊下一步,選擇要發(fā)布的對象,這里我們只對表進(jìn)行發(fā)布;
5.點(diǎn)擊下一步進(jìn)入篩選數(shù)據(jù)設(shè)置,這里我們要復(fù)制表的所有數(shù)據(jù)所以不做設(shè)置;
6. 點(diǎn)擊下一步,指定何時運(yùn)行快照,我們選擇初始話數(shù)據(jù),并選擇默認(rèn)的運(yùn)行快照頻率;
7. 繼續(xù)下一步,設(shè)置快照代理的運(yùn)行賬戶,我們選擇sql server agent賬戶;
8. 點(diǎn)擊下一步選擇創(chuàng)建發(fā)布,再次點(diǎn)擊下一步設(shè)置發(fā)布的名稱;
9. 點(diǎn)擊完成,完成發(fā)布的設(shè)置,并創(chuàng)建發(fā)布,現(xiàn)在在本地發(fā)布出新添加了我們創(chuàng)建的發(fā)布。
現(xiàn)在成功創(chuàng)建了發(fā)布,我們還需要創(chuàng)建訂閱:在本地訂閱文件夾上右擊新建訂閱,通過向?qū)Э梢院苋菀椎膭?chuàng)建訂閱,創(chuàng)建訂閱時可以選擇以發(fā)布者推送或者訂閱者主動的方式創(chuàng)建。具體步驟如下:
1. 通過右鍵菜單打開新建訂閱,點(diǎn)擊下一步,選擇我們剛剛創(chuàng)建的發(fā)布作為訂閱源;
2. 選擇是以推送還是以主動請求的方式同步數(shù)據(jù),我們選擇主動訂閱;
3. 設(shè)置執(zhí)行分發(fā)代理的賬戶;
4. 設(shè)置代理請求同步的頻率;
5. 設(shè)定是否立即做數(shù)據(jù)的初始化操作
6. 完成創(chuàng)建訂閱
創(chuàng)建完成之后,我們可以通過在主庫表中插入n條數(shù)據(jù),然后在從庫中查詢的方式驗(yàn)證復(fù)制是否成功。
在Sql server2005中的復(fù)制創(chuàng)建起來很簡單,我們需要根據(jù)業(yè)務(wù)需要設(shè)定復(fù)制的類型和同步的頻率。