Sqlserver異地備份實踐
項目背景:
客戶在線下IDC有一套業務系統運行在物理環境,winodws 2012 上運行着 Tomcat8+Sqlserver2014的企業內部流程系統,由於種種原因目前需要將線下的環境移植一份到某私有云內部環境中作爲備份(如果線下環境遇到何種人爲不可控的因素導致短時間內無法恢復的情況,私有云環境下的系統可以快速拉起業務,以儘可能短的時間恢復業務運行)。
項目難點:
1)目的端私有云環境下,限制諸多,安全性考慮默認情況下所有的上行下行端口均不開放,也不能採用異地鏡像方式導入,直接限制了軟件環境的構建方式;
2)Sqlserver2014 的實時同步過程對於網絡和磁盤的IO也有一定要求,實時同步的可靠性未經過實際環境的測試,不能確保同步鏈路的百分百穩定可靠;
方案確定:
綜上所述,各方面綜合考慮後確認如下方案:
A.基礎運行環境所需要的軟件安裝包,在其他環境中適配確認好,然後使用私有云內部部署的雲盤工具上傳,結合指定的可信任mirror源( https://opsx.alibaba.com/mirror/ )等進行基礎環境的構建,並通過網內測試;
B.基礎環境構建完畢後,將Tomcat運行的源碼包壓縮拷貝至目標服務器,解壓,注意Tomcat環境的權限所屬問題;
C.Sqlserver數據庫發佈訂閱配置(PS:最好源環境和目標環境的用戶名密碼設置相同,避免後面配置時搞錯;
D.文件級數據的定時同步計劃,通過rsync+openssh加密傳輸的方式配合計劃任務將文件數據定時同步至目標服務器中;
E.出於數據庫同步鏈路可靠性考慮,最終決定將數據庫源端啓動維護計劃,每天定時生成數據庫的全量備份.bak文件並存儲到rsync同步指定的目錄下,將bak文件也複製一份到目標服務器,確保數據安全;
POC測試階段:
方案確認後即可按照既定的方案開展POC測試環節
基礎環境的安裝過程省略(需要注意的是安裝過程中需要使用到哪些外部URL,需要哪些端口協同工作,這些需要提前確認好,後續需要通過防火牆策略申請開放。)
數據庫訂閱發佈配置過程如下:
·目標環境安裝好對應版本的數據庫(此處sqlserver2014 EE ed2k://|file|cn_sql_server_2014_enterprise_edition_x64_dvd_3932882.iso|2898847744|A33CE10CD989083D1AD882DF0D56CFBE|/ )
·在配置發佈訂閱之前首先需要確保源端與目標端服務器之間可以通過對應的servername找到彼此,最直接的方式就是在源端和目標端服務器的hosts文件中添加相應的x.x.x.x sqlservername 記錄,並測試可以通過sqlservername成功連接數據庫,通過ip地址直接連接會報錯
·數據確保可以通過sqlservername連接後即可開始配置,源端發佈
- 複製
- 新建發佈
- 按照嚮導配置
- 快照存儲位置(默認位置在數據庫實例對應的目錄下,根據實際情況可以修改也可以不修改)
- 選擇對應的數據庫
- 選擇發佈類型
- 發佈類型說明
快照發布:
發佈服務器按預定的時間間隔向訂閱服務器發送已發佈數據的快照。
事務發佈:
在訂閱服務器收到已發佈數據的初始快照後,發佈服務器將事務流式傳輸到訂閱服務器。
對等發佈:
對等發佈支持多主複製。發佈服務器將事務流式傳輸到拓撲中的所有對等方。所有對等節點可以讀取和寫入更改,且所有更改將傳播到拓撲中的所有節點。
合併發佈:
在訂閱服務器收到已發佈數據的初始快照後,發佈服務器和訂閱服務器可以獨立更新已發佈數據。更改會定期合併。Microsoft SQL Server Compact Edition 只能訂閱合併發佈。
-
選擇合適的發佈類型並選擇需要發佈的對象
- 篩選去掉不需要的數據(沒有可以不添加)
- 生成並運行快照代理
- 安全性設置(配置代理用戶名密碼)
---- 建議用如下方式配置(目前測試沒什麼問題的配置方式)---- - 創建發佈
- 指定發佈名稱(根據項目名稱來取比較靠譜,當然取什麼名字並不影響運行)
- 等待發布創建
- 查看已創建的發佈
- 目標端創建訂閱
- 選擇發佈服務器(通過查找sql連接發佈服務器後選擇已發佈項目)
- 選擇分發代理的位置(建議選發佈服務器上推送的方式,目前測試來看成功率最高的方式)
- 選擇訂閱數據庫
- 安全性設置(同發佈中的設置類似,注意區分發布端和訂閱端)
---- 建議如下方式配置 ---- - 根據實際情況確認運行方式(默認連續運行)
- 設置初始化時間(默認立即)
- 創建訂閱
- 等待訂閱生效
- 查看訂閱同步鏈路情況
至此sqlserver的發佈訂閱過程已經完成。
·建議同時配置定期維護任務,將數據庫定期生成.bak備份,定時同步至目標端。windows加密同步過程參考下一篇文檔。