程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQL Server雙服務器架設並數據自動同步教程

SQL Server雙服務器架設並數據自動同步教程

編輯:更多數據庫知識

交待:使用的軟硬件環境為Win XP SP2、SQL Server 2000 SP2個人版、普通雙核台式機、1000M局域網,A機為已使用的服務器,上面已有數據庫和海量數據,B機為此次新架服務器,兩機登陸方式均為sql server身份驗證模式,其它設置均為默認設置,無特別。A機上另有FTP服務器,用於程序自動更新。

1、在A機上執行數據庫備份。

2、用A機上備份下來的數據庫備份文件在B機上執行數據庫恢復,保證A、B機均有完全相同的數據庫。(弄完後發現這上步好像不用做,反正發現時我已經弄完了,也就沒有推倒重來驗證)。

3、在A、B機上建兩個用戶名、密碼完全一樣的用戶(控制面板>計算機管理>用戶>新建),並把它們加入到administartor組。(如果兩台機原來就都用administartor用戶登錄,那麼,把兩台機的登錄密碼改成一樣就行,不用另行建新用戶)

4、兩台機上均進行此操作:啟動>程序>管理工具>服務>右鍵單擊SQLSERVERAGENT>屬性>登陸>設置為上一步弄的那個用戶名和密碼。

5、在A機上進入企業管理器,把B機服務器加進服務器組,B機上進入企業管理器,把A機服務器加入服務器組。為省得麻煩,我都用了Sa用於兩機互相登錄SQL Server。

6、A機進入企業管理器,右鍵單擊要發布的數據庫>新建>發布,一步步下去就行,無需要特別設置的地方,走完了後,數據庫下面會多出一個“發布”條目,右鍵點擊>屬性,可變更發布屬性各項設置。要注意幾點:1是代理登錄用戶要用第3步中設置的用戶,不能用“系統用戶”,2是數據庫訪問用戶要指定(我是用的Sa,省得麻煩),3是要把A機上存放快照的目錄設為共享,不共享的話,B機是得不到快照的(我是沒用SQL默認的目錄,人工指定為FTP服務器的根目錄,原因下詳),4是注意發布代理的工作頻率不要設置過快,必竟生成快照文件,然後通知訂閱者,訂閱者再來拿數據還是需要一些時間的,至於需要多快,看你數據變動頻率以及兩機同步的快慢來設定吧,對於我來說,一天的數據丟失完全可以承受,於是乎,我設置了每5小時發布一次。

7、B機進入企業管理器,右鍵單擊要同步的數據庫>新建>訂閱,一步步下去就行,無需要特別設置的地方。

8、完成後,按理說應該就能同步了,但我發現沒有效果,查看A機上的發布管理器日志後發現,原來是B機不能取得A機上的快照文件,一看,原來SQL Server訂閱用的端口居然是445,與病毒掃蕩波一樣,所以被防火牆攔掉了,囧,而我又不具有修改防火牆攔截規則的權限。於是在發布服務器屬性中把快照存放目錄指定為FTP所在根目錄,打開允許FTP,填入FTP服務器訪問用戶名和密碼,重新運行發布代理。B機上刪除原訂閱,重新建立訂閱,設置采用FTP方式,於是問題解決。

PS:網上參考資料均說同步的表需要有主鍵,但我的系統中有一些表是沒有主鍵的(因為表中每列均存在若干相同值,所以無法加主鍵,也懶得再去改表結構專門添加個序列,因為加個序列,偶就得改程序了,怕怕——!),最後同樣成功了,SO,表有沒有主鍵,肯定是不影響同步的,至少不影響快照同步模式。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved