----關注IT小技術,每天get一個IT小技能。
一、客戶需求
客戶現在有一個需求,公司有一台很重要SQL資料庫,怕有一天伺服器或者系統崩潰,導致所有SQL資料庫數據丟失,客戶想把資料庫數據,通過某種方式將數庫進行實時同步到另外一台伺服器上,這樣可以做個backup。
那客戶這個需求如何實現呢?
二、解決方案:
通過分析與研究,使用的是SQL自帶的發布與訂閱功能,舊的SQL Server版本是2008,新安裝一個SQL Server 2014版本,通過舊SQL Serer發布,再通過SQL Server2014訂閱,來同步資料庫數據。
三、實現過程
3.1、發布
發布前準備:首先兩個伺服器之間要能相互通訊,也就是能ping命令能通。平時我們連接資料庫時,經常都是用的ip登陸,但是發布的時候不能這樣,必須用伺服器名稱。
如果在不同網段的兩台資料庫伺服器,可以在兩台伺服器hosts文件中添加對應的IP位址和主機名。
在舊伺服器上,打開SQL Server資料庫軟體,進行發布SQL資料庫。
1、舊伺服器上,找到複製--本地發布,右擊新建發布。
2、選擇需要發布的資料庫名稱。
3、選擇事務發布。
4、在此資料庫中,查看錶,是否都可以正常的被發布,如下圖所示,有些表無法正常發布,那該怎麼辦?
5、發現是由於這些表中沒有主鍵,需要給這三張表設置主鍵。
6、設置主鍵。
8、發現還有一個表無法發布。
9、查看原因。
10、需要將此表中的,阻止保存要求重新創建表的更改項勾選去掉。
11、去掉後,發現此表可以正常設置主鍵。
12、可以看到所有的表都可以正常發布了。
13、下一步。
14、選擇添加。
15、選擇立即創建快照並使快照保持可用狀態,以初始化訂閱。
16、選擇安全設置。
17、輸入資料庫的sa用戶名和密碼。
18、選擇下一步。這時要注意,需要將資料庫的代理服務開啟,和SQL browser服務開啟。
19、創建發布。
20、新建一個發布名稱。
21、發布成功。
22、發布的同時,要保證如下此SQL目錄可讀寫。
3.2、訂閱
1、要新伺服器上,找到SQL Server代理伺服器,將其開啟,自動。
2、找到SQL Browser將其服務開啟。
3、可以Ping通發布伺服器的主機名。
4、找到複製--本地訂閱。
5、選擇下一步。
6、選擇查找SQL Server發布伺服器。
7、選擇發布伺服器的名稱,或者手動輸入發布伺服器名稱,輸入發布伺服器的用戶名sa,發布伺服器資料庫sa密碼。
8、可以查詢到剛才我們發布的資料庫名稱。
9、選擇在發布伺服器 PRD-SQL上運行所有代理。
10、選擇新建資料庫。
11、新建一個資料庫,來同步發布伺服器中的資料庫。
12、新建資料庫完成,點擊下一步。
13、選擇與訂閱伺服器的連接。
14、輸入訂閱伺服器資料庫sa用戶名和密碼。
15、選擇下一步。
16、選擇連續運行。
17、選擇立即初始化時間。
18、選擇創建訂閱。
19、選擇完成。
20、訂閱創建成功。
3.3、測試結果
1、在發布伺服器上查看同步狀態。
2、可以看到正在同步資料庫表。
3、同步完成後,可以查看資料庫數據有多少條和訂閱伺服器進行對比,如果一樣說明成功。
4、在訂閱伺服器上,可以查看到所有的表都已經同步過來了。而且數據總條目都和發布伺服器數據一樣,實時數據備份成功。
當以後,發布伺服器此資料庫中有變動,訂閱伺服器資料庫也會實時變動。