問題描述html
主機1:發佈端sql
阿里雲服務器--有公網ipwindows
主機2:訂閱端服務器
筆記本--無公網ip網絡
數據量很小,主要是熟悉發佈訂閱的操做流程。阿里雲
主機2僅僅做爲主機1的本地備份,要求修改雲服務器上數據後,能經過sql server的發佈訂閱功能將本地數據同步。spa
底下沒有一步一步介紹,一步一步的,能夠看下面這篇操作系統
https://blog.csdn.net/u012861467/article/details/76411216.net
----------------------------------------------------------------------------------------------3d
問題1
阿里雲的sql server配置好後,沒法使用本地sql server客戶端遠程登陸。
檢查如下幾點
1.要在阿里雲的控制檯中的防火牆,打開阿里雲的1433端口(默認的sql server訪問端口)
這點很重要,好多教程裏沒有提到!!!
2.要把兩臺主機的sql manager中的sql server服務中的sql server代理打開(本來是禁用狀態)
3.遠端服務器要開啓sql server用戶名密碼登陸方式,而且設置好代理帳號和密碼
到這一步,應該能夠在筆記本的sql server經過ip地址,和剛剛設置的代理帳戶和密碼登陸進雲服務器了。
--------------------------------------------------------------------------------------
問題2
發佈和訂閱流程
要首先在雲端sql server客戶端的
複製---發佈---新建發佈
1.選擇哪一種發佈方式
這點能夠本身查詢四種發佈的區別
要注意:事務發佈時,被髮布的表要有主鍵
2.如何鏈接發佈端
網上通常推薦是在雲端和本地端都新建一個用戶名,密碼同樣的windows帳戶,而後這裏選擇在windows帳戶下運行。
我這裏使用sql server登陸名
這裏注意---登陸名是sql server的登陸名(就是通常是sa的那個)
-------------------------
以上是發佈端
-------------------------
訂閱端
1.使用別名
在這一步選擇發佈服務器時,要使用實際的服務器名稱(使用windows方式登陸時的名稱),不能使用ip地址。
這裏要在訂閱服務器中添加發布服務器的別名,具體操做看下面
https://blog.csdn.net/u010457730/article/details/97276313
2.推送訂閱仍是請求訂閱
這裏我有個不懂的問題,以後會講到。
3.鏈接到分發服務器
這裏注意,要填寫分發服務器的sql server登陸名。
是登陸名,sa那個
登陸名不是服務器名,這點切記。
到這一步時,查看一下訂閱服務器的同步狀態
看看是否打鉤了----這表明前面的設置正確,訂閱服務器能訪問到發佈端。
本人一開始由於設置時填寫錯了用戶名,在查看同步狀態這裏仍是報錯的。
--------------------------------------------------------------------------------
接下來,能夠看看訂閱服務器的數據是否是被同步了,如未同步,看看訂閱端的做業歷史記錄
有可能仍是報錯
可是這個報錯信息是什麼玩意嘛???
「複製代理遇到問題。有關詳細信息,請參閱上一個做業步驟歷史記錄消息或複製監視器」
原來要在發佈端找具體錯誤信息。。。
啓動發佈端的複製監視器
在左側選好具體的發佈後,雙擊右側中全部訂閱中的錯誤的訂閱,查看具體報錯
真相大白--
因爲出現操做系統錯誤 3,進程沒法讀取文件D:\XXXX\X.pre
緣由原來是--這個路徑是發佈端存放快照文件的位置,可是因爲不是網絡文件夾,不能被訪問。
這裏提供一種簡單的解決辦法
參照這位的作法
https://www.cnblogs.com/mrray/archive/2011/03/17/1987123.html
直接把發佈端的快照文件夾--名稱爲repldata的拷貝到訂閱端的某個文件位置
再在訂閱端修改快照位置
複製--本地訂閱---具體的訂閱---右鍵---屬性
把快照文件夾位置修改成本地的那個位置。
很神奇的是,只須要修改一次就好。
到這一步,個人問題就解決了,如下是幾點問題和思考
1.坑不少,但多查詢相關資料,老是可以解決的。這個信心是一次次解決問題中鍛煉出來的。
2.自身理論基礎欠缺時,一些配置性操做就容易出問題。好比說不了解發布訂閱的具體機制,就很難想到出現快照文件夾沒法訪問這個問題。
3.個人情景比較特殊,一臺有公網ip,一臺沒有。我在網上看到的狀況,通常要麼是局域網,要麼兩臺主機都是有公網ip的(這意味着發佈端,訂閱端都能用惟一的ip地址訪問對方)。因此我一直懷疑我這種網絡結構從原理上就不能使用發佈訂閱這種方式(由於發佈端沒法「找到」訂閱端)。這也是我在配置中選擇了從訂閱端運行代理,由於訂閱端是確定能「找到」有公網ip的發佈端的。這個問題還要細研究。
4.這四種發佈-訂閱的方式有什麼區別?快照文件夾是什麼原理?這是兩個須要搞清楚的問題。
5.sql server這個這麼常見的功能爲何如此多的坑。。。可能仍是我太菜了。但起碼這個問題是解決了,我又成長了一點點。