背景描述: html
發佈服務器A: (遠程端) , 數據庫服務名: GUANWANG1數據庫
訂閱服務器B: (本機) , 數據庫服務名: PC-LLRDBA服務器
須要從服務器A中數據庫發佈,而後在B中訂閱A發佈的數據庫;spa
------------------------------------------------第一步: 準備工做------------------------------------------------.net
準備工做1: 配置機器名和數據庫服務名一致3d
先檢查A,B中的機器名和數據庫服務名是否一致,這個很重要!代理
查看方法: code
1.檢查SQL Server 的服務器名稱server
1htm 2 3 4 |
|
若是查出來的兩個名字不同,那就須要把他們的名字改爲同樣的,方法以下:
2.刪除全部以前配置的publishers('old_server_name'爲以前的服務名)
1 2 3 4 5 |
|
執行完後,重啓SQL Server服務
3.配置計算機名與服務名一致
1 2 3 4 5 6 7 8 9 10 |
|
4.查看服務名
1 |
|
準備工做2: 配置數據庫服務器名稱的別稱
由於數據庫發佈和訂閱,不能用ip登錄,必須用服務名登錄
方法之一是改服務器的登錄別稱!
首先在本機B配置鏈接服務器A的登錄別稱:
先在[開始],[全部程序]中打開[SQL Server配置管理器]:
在[SQL Native Client 10.0配置(32位)]中的別名中配置,如圖:
這裏的別名必須和服務器B的服務器名一致也就是GUANWANG1,實際的按照本身的名字改動;
端口號是:1433
服務器是對應的服務器機器的IP地址
協議是TCP/IP
同理,在下面的[SQL Native Client 10.0配置]中也同樣配置下!
而後在服務器A中也要配置訪問本機B的別稱,這一步不能少,不然後面本地訂閱的時候會失敗並報錯,"進程沒法鏈接到 Subscriber「PC-LLRDBA」。 "
切記,這裏是雙向的,當初我查了很久纔想起來,服務端也要配置這個......
具體的方法同上:注意別名是本機B的服務名PC-LLRDBA, IP是本機的IP,實在不知道在cmd下config一下就有了!
準備工做好了後,就進行第二步發佈
------------------------------------------------第二步:發佈------------------------------------------------
登錄服務器A數據庫,用別名登錄:
在[複製],[本地發佈]中右鍵新建發佈
選擇你要發佈的數據庫
選擇發佈類型:(具體選哪一種,本身百度下各類的差別),我這裏選事務發佈
能夠選擇發佈的對象(表,存儲過程,視圖等等),也能夠選擇部份內容,點開勾選就好了
若是沒有特別篩選的,就直接下一步(好比說我只要同步Order表中2014年之後的數據,那麼你能夠點添加,增長篩選條件)
選擇當即xxx,繼續下一步
輸入發佈服務器的sa帳戶登錄密碼就好了
OK,到此發佈完成,你能夠刷新後查看:
------------------------------------------------第三步:訂閱------------------------------------------------
這裏選擇查找SQL Server發佈服務器
選中須要的訂閱的數據庫發佈:
在本地新建一個同名的數據庫:
點擊與訂閱服務器的鏈接下面的按鈕
選擇定義計劃:
訂閱就完成,而後刷新查看內容:
等過一段時間,數據同步完成後就能夠查看數據了,是否一致了!
------------------------------------------------訂閱完成------------------------------------------------
訂閱失敗案例:
訂閱完成後,卻發現本地訂閱中沒有內容,可是剛剛確實已經訂閱成功了啊,爲何呢?
而後在發佈服務器中,右鍵本地發佈中的數據庫,啓動複製監視器
發現是報錯了
這個緣由可能有好多種:
1:>>訂閱的時候,輸入的密碼輸錯了,我第一次就是輸成了發佈服務器的密碼
2:>>對應的協議要開啓
3:>>對應的服務要開啓Sql Server Browser和Sql Server 代理(MSSQLSERVER)
這三個都檢查無誤了,基本上就搞定了吧!
還有一種報錯是:"對路徑"XXXXX"訪問被拒絕或者沒有訪問路徑"xxx"的權限"等,這個錯誤通常是用戶的權限不夠致使的,解決方法以下:
使用SQL Server發佈數據庫快照的配置中,若是你選擇了使用SQL Server代理,而SQL Server代理服務使用的登錄身份不具備對存放快照文件位置的讀寫權限時,就會出現該錯誤。
解決的方法是能夠修改SQL Server代理服務的登陸身份,具體作法爲:程序->Sql Server Configuration Manager->在左邊欄選擇」SQL Server服務「->在右側面板中"SQL Server 代理」一行上右擊,選擇「屬性」,在彈出的對話框中選擇"內置帳戶「->LocalSystem便可。