1. 程式人生 > >SQL Server 跨伺服器同步或定時同步資料庫

SQL Server 跨伺服器同步或定時同步資料庫

在本地區域網內或者外網有兩臺安裝有sqlserver2008的機器(注意:已釋出的快照版本無法向老版本資料庫相容,意味著2008下建立的事務或快照發布,無法被sqlserver2005訂閱

1.在要釋出的資料庫上建立一個數據庫(這裡叫做dnt_new),然後在該資料庫例項的左側導航的“複製”--“本地釋出”上擊右鍵,然後選擇“新建釋出”,如下: <ignore_js_op> 0_1325662262hfAZ.gif   這樣,系統就會啟動‘釋出嚮導’來引導大家,點選"下一步”,然後在當前視窗中選擇要釋出的資料庫,如下: <ignore_js_op> 0_1325662348ACel.gif 點選下一步,然後在接下來的視窗中選擇“事務釋出”,如下圖: <ignore_js_op> 0_1325662394wd1w.gif
然後點選下一步,選擇要同步的資料物件(資料表,儲存過程,自定義函式等),如下: <ignore_js_op> 0_1325662437qp84.gif 然後就是“專案問題視窗”,因為之前已用dbo身份登陸,所以這裡只要點選下一步即可,如下圖: <ignore_js_op> 0_1325662518bSP5.gif 這裡可以通過“新增”方式來過濾要同步的資料資訊,因為要做全表資料同步,所以這裡不設定 <ignore_js_op> 0_1325662563Iz3s.gif 然後在‘代理安全性’視窗中,點選“安全設定”按鈕: <ignore_js_op> 0_1325662615lz4l.gif 在彈出的‘安全設定’子視窗中設定如下資訊,並點選‘確定’按鈕: <ignore_js_op> 0_1325662671DgTC.gif
然後點選下一步按鈕: <ignore_js_op> 0_1325662706Hbuj.gif 選擇“建立釋出”複選框,然後點選下一步,這時嚮導會讓您輸入“釋出名稱”,這裡命名為“dnt_new_snap”: <ignore_js_op> 0_1325662776iQJI.gif 點選“完成按鈕”,這裡系統就開始根據之前收集的資訊來建立該釋出物件資訊了,如下: <ignore_js_op> 0_1325662829cGUQ.gif   到這裡,‘建立釋出’的工作就完成了。下面介紹一下建立訂閱的流程。在另一個機器的sqlserver例項上,開啟該例項並使用“複製”—“新建訂閱”,如下圖: <ignore_js_op> 0_13256628739Zb3.gif
這時系統就會啟動“新建訂閱”嚮導,點選下一步,並在“釋出”視窗中的“釋出伺服器”下拉框中選擇“查打發布sqlserver伺服器”項,如下 <ignore_js_op> 0_1325663805evP6.gif 然後在彈出視窗中選擇之前‘建立釋出時所使用的資料庫例項’並進行驗進登陸,這時,釋出伺服器的資訊就會出現在下方的列表框中: <ignore_js_op> 0_1325663835PqR5.gif 選擇之前我們建立的那個釋出物件“dnt_new_snap”,接著點選下一步: <ignore_js_op> 0_1325663857amVM.gif 在分發代理位置視窗中,選擇“在分佈伺服器上執行所有代理”,然後點選下一步,然後在“訂閱伺服器”視窗中的訂閱資料庫列表框中選擇一下要同步的訂閱資料庫名稱(可新建): <ignore_js_op> 0_1325663887nL34.gif 點選下一步,然後在‘分發代理安全性’視窗中,點選列表框中的‘…’來設定安裝性,並做如下設定(注意紅框部分): <ignore_js_op> 0_1325663911zwRh.gif 然後點選“確定”按鈕,之後在嚮導上點選“下一步”按鈕,這時系統就會顯示“代理計劃執行方式”視窗,選擇“連續執行”或者自定義時間(自定義可以實現定時備份資料): <ignore_js_op> 0_13256639457343.gif 點選下一步,在視窗中選擇“立即執行”: <ignore_js_op> 0_1325663969ZR5O.gif 完成了這一步,點選下一步按鈕,然後就可以建立該訂閱物件了,如果一切執行正常,sqlserver就會從‘釋出伺服器’那邊,將之前指定的資料表和儲存過程等同步到當前的‘訂閱資料庫’中了。這時我們可以在源資料庫(釋出伺服器)上的表中新增或修改指定表資料資訊,在等待1-3秒(或設定的時間)之後,所做的新增和修改就會同步到‘訂閱資料庫’上的相應表中 注:本文中的兩臺機器必定是可以使用sqlserver客戶端互聯(在sqlserver studio中設定'允許遠端連結',同時要設定相應的ip地址,以及在配置管理器中開啟tcp/ip協議即可) 注: 區域網SQL遠端連線方法: SQL2005 SQL2008遠端連線配置方法 第一步(SQL2005、SQL2008): 開始-->程式-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server網路配置-->MSSQLSERVER(這個名稱以具體例項名為準) 的協議-->TCP/IP-->右鍵-->啟用 第二步: SQL2005: 開始-->程式-->Microsoft SQL Server 2005-->配置工具-->SQL Server 2005外圍應用配置器-->服務和連線的外圍應用配置器 -->Database Engine -->遠端連線,選擇本地連線和遠端連線並選上同時使用Tcp/Ip和named pipes. SQL2008: 開啟SQL Server Management Studio-->在左邊[物件資源管理器]中選擇第一項(主資料庫引擎)-->右鍵-->方面-->在方面的下拉列表中選擇[外圍應用配置器]-->將RemoteDacEnable置為True. Express: 如果XP有開防火牆,在例外裡面要加入以下兩個程式:
C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBinnsqlservr.exe,
C:Program FilesMicrosoft SQL Server90Sharedsqlbrowser.exe 不僅要關閉Windows防火牆,防毒軟體防火牆也要關閉。 第三步: 開始-->程式-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server服務-->右擊SQL Server(MSSQLSERVER) (注:括號內以具體例項名為準)-->重新啟動