日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺述SQLServer的Replication技術(shù)創(chuàng)建技巧

SQL Server的Replication技術(shù)已經(jīng)變得非常成熟了,而且效果也很好,很多的公司在做讀寫分離時(shí),都選擇了這項(xiàng)技術(shù);Replication現(xiàn)在包括事務(wù)、合并和快照三種,每項(xiàng)都有各自的應(yīng)用優(yōu)勢(shì),大家用得最多的無(wú)疑是事物復(fù)制了,這種技術(shù)能保證我們發(fā)布端的數(shù)據(jù)的變更能及時(shí)傳輸?shù)接嗛喍?,網(wǎng)絡(luò)帶寬和服務(wù)器配置。

如果不差的話,兩臺(tái)機(jī)器之間的數(shù)據(jù)延時(shí)是非常小的,這為我們的讀寫分離技術(shù)提供了有力的保障(很少出現(xiàn)用戶剛剛新加的數(shù)據(jù)查不到的現(xiàn)象),不僅分散了讀寫的壓力,而且在做機(jī)器維護(hù)時(shí)也游刃有余,并且用戶體驗(yàn)也得到了比較好的提升,下面我們以事務(wù)復(fù)制為例,來(lái)介紹下創(chuàng)建復(fù)制鏈的技巧。

創(chuàng)建Replication有三種方法:

方法一:使用備份還原的技術(shù)

這個(gè)方法對(duì)數(shù)據(jù)量比較大,而且停機(jī)時(shí)間要求非常緊的數(shù)據(jù)庫(kù)復(fù)制是很好的選擇,實(shí)現(xiàn)方式很簡(jiǎn)單,就是在停站的情況下,把我們的發(fā)布端的數(shù)據(jù)庫(kù)備份,

然后還原到訂閱端,這樣發(fā)布端和訂閱端的數(shù)據(jù)是一致的;然后我們?cè)賹⑼芥溄ㄉ霞纯伞?/p>

不過,這個(gè)方法有個(gè)要求是,我們把數(shù)據(jù)還原到訂閱端后,需要檢查所有的表是否有自增列,如果有自增列,我們需要將自增列改為普通列,方式如下:

1.在訂閱端還原的數(shù)據(jù)庫(kù)上查找自增列:

--查找數(shù)據(jù)庫(kù)自增列

 
 
 
 
  1. SELECT  
  2.  
  3. 表名=D.NAME,  
  4.  
  5. 列名= A.NAME,  
  6.  
  7. 是否自增=CASEWHENCOLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ')=1THEN'√'ELSE''END,  
  8.  
  9. 主鍵=CASEWHENEXISTS(SELECT1FROMSYSOBJECTS WHEREXTYPE='PK 'AND PARENT_OBJ=A.ID ANDNAME IN (  
  10.  
  11. SELECTNAME FROMSYSINDEXES WHEREINDID IN(  
  12.  
  13. SELECTINDID FROMSYSINDEXKEYS WHEREID =A.ID AND COLID=A.COLID))) THEN'√'ELSE''END  
  14.  
  15. FROM SYSCOLUMNS A  
  16.  
  17. LEFTJOINSYSTYPES B ONA.XUSERTYPE=B.XUSERTYPE  
  18.  
  19. INNERJOINSYSOBJECTS D ONA.ID=D.ID AND D.XTYPE='U'ANDD.NAME <>'DTPROPERTIES '  
  20.  
  21. where  COLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ') 

#p#

 結(jié)果如下:

2. 將自增列修改成普通列:

方法是先重名了這些表,然后新建同名的表,表結(jié)構(gòu)一樣,但是去掉自增列屬性,然后將重命名的表數(shù)據(jù)導(dǎo)入到新表中,完成后我們就得到了沒有自增列的表,然后就可以創(chuàng)建同步鏈了。

方法二:BCP和TableDiff

BCP結(jié)合TableDiff在我們?yōu)橐延械耐芥溙砑有卤?,而且要求發(fā)布端必須保持在線,并對(duì)發(fā)布端業(yè)務(wù)影響最小時(shí)是非常好的方法,它的實(shí)現(xiàn)步驟如下:

1. 將需要新加到同步鏈的表結(jié)構(gòu)新建到訂閱端;

2. 在發(fā)布端準(zhǔn)備好BCP導(dǎo)出導(dǎo)入腳本,并將要新加的表通過BCP導(dǎo)出到文件中;

3. 將新表加入到同步鏈中(可以通過腳本,也可以直接通過可視化界面操作),暫停這條鏈上同步數(shù)據(jù)的JOB;

4. 運(yùn)行BCP導(dǎo)入腳本,將數(shù)據(jù)導(dǎo)入到訂閱端;

5. 用TableDiff比較新表在訂閱端和發(fā)布端的數(shù)據(jù),并補(bǔ)齊差異數(shù)據(jù)(TableDiff 比較后會(huì)自動(dòng)生成不起差異數(shù)據(jù)的腳本,在訂閱端運(yùn)行即可);

6. 開啟暫停的同步鏈的JOB,這樣就完成了。

整個(gè)過程對(duì)系統(tǒng)業(yè)務(wù)影響非常小。

方法三:直接初始化快照

這種方式是最簡(jiǎn)單的,但是對(duì)業(yè)務(wù)影響非常大,而且耗時(shí)也很長(zhǎng),基本不推薦(不過這個(gè)方法很多人在用,如果是很小的庫(kù)還是可以考慮)。

【編輯推薦】

  1. 淺談訪問SQL Azure數(shù)據(jù)庫(kù)操作的方法
  2. 談?wù)凧ava調(diào)用SQL Server分頁(yè)存儲(chǔ)過程
  3. 淺析SQL Server數(shù)據(jù)修復(fù)命令DBCC的使用
  4. 怎樣獲取某個(gè)數(shù)據(jù)庫(kù)的所有存儲(chǔ)過程SQL語(yǔ)句
  5. 如何在SQL Server 2005中使用作業(yè)實(shí)現(xiàn)備份和特定刪除

本文標(biāo)題:淺述SQLServer的Replication技術(shù)創(chuàng)建技巧
本文路徑:http://www.dlmjj.cn/article/cogcgsc.html