在博文 Dynamics AX 2012 在BI分析中創建數據倉庫的必要性 裏,Reinhard 闡述了在 AX 的 BI 分析過程當中,創建數據倉庫的必要性。html
數據倉庫將分析的工做負載,從事務的工做負載中分離出來,讓企業可以整合來自多個數據源的數據。sql
可是從 AX 數據庫中抽取數據到數據倉庫的時候,Reinhard 發現耗時很是長。Reinhard 認爲主要有三個緣由:數據庫
由於數據抽取對正式環境的性能影響很是大,而且耗時長,因此咱們只能選擇在下班後去執行ETL做業。這樣作的缺點也是顯而易見的,不管咱們的報表跑得多快,可是展現的數據老是滯後的。性能優化
有沒有什麼方案,可以實時地展現數據,又對正式環境的性能影響小呢?這就是 Reinhard 在本文中要說的SQL Server 複製。服務器
SQL Server 複製 是一項很是成熟的技術,它主要應用在如下幾個場景中:網絡
Reinhard 這裏的應用場景其實就是負載轉移。將所需的數據從生產庫發佈到只讀的複製庫中,而後在複製庫上執行數據抽取做業,這樣就將一部分工做負載,從事務的工做負載中分離出來。併發
在 複製類型 中,微軟介紹了三種複製類型,分別是:性能
這三種複製都有各自的特色,須要根據自身的實際環境和業務場景來選擇,而且要注意複製過程當中的表鎖。主要考慮因素有:優化
Reinhard 這裏簡單說說不一樣複製類型的特色,詳細信息還請參考微軟官方文檔SQL Server 複製 。日誌
數據更改量大,但不多更改,容許必定時間的滯後。
由於不跟蹤數據更改,因此連續開銷比事務複製低。可是若是數據集很是大,也須要使用大量資源生成和應用快照。
整個快照生成過程當中都是用共享鎖。
連續開銷比快照複製高。
事務複製默認使用併發快照處理,在整個初始化快照生成過程當中並不保留共享鎖,期間用戶能夠繼續工做。
不使用鎖。
經過添加相關的硬件,可使用故障轉移集羣保證數據中心內的高可用性。
故障轉移集羣中的全部SQL Server實例,在網絡上顯示爲一個節點。
數據庫鏡像是一個軟件方案。它有一個主體服務器和一些鏡像服務器。
在主體服務器可用的時候,鏡像服務器是不能處理讀寫請求的。
日誌傳輸能夠將主數據庫的事務日誌備份,自動發送給多個輔助數據庫。
主數據庫可用的時候,輔助數據庫是不支持寫數據。
在SQL server 2012後,新增了AlwaysOn高可用性組特性。
輔助副本複製的是主體節點的完整數據庫,不能選擇複製部分數據到輔助節點。它的輔助副本能夠用於報表和備份,可是不支持寫數據。
從上面的對比中,Reinhard 認爲,事務複製更適合咱們的應用場景。它可以在企業層構建可擴展、高可用、鬆耦合的集成生態系統。