盡管SQL Server R僅僅是SQL Server 到下一版本間的過渡升級版本不過對於SQL Server DBA來說SQL Server R仍然有一些值得進行探索的數據管理特性其中最為重要的特性莫過於SQL Server Utility 以及DataTier Application (簡稱DAC)
SQL Server Utility是SQL Server R中用於多實例管理一項手段而DAC則是SQL Server R中數據管理的一個單元
SQL Server Utility
下面我們簡單介紹下SQL Server Utility
SQL Server Utility主要解決的問題是當前企業數據環境中經常面臨的一個困境——越來越多的服務器越來越多的實例越來越多的數據庫以及越來越少的IT人員預算許多調查都表明當前企業中%以上的數據庫都小於GB並且使用簡單的單文件策略不過為了滿足日益靈活的業務模式這樣的小型數據庫被不斷被投入生產環境同時為了隔離應用不過的部門預算又使這些小數據庫分布到了越來越多的實例以及服務器中
盡管當前非常熱門的虛擬化技術例如微軟的HyperV和Vmware的VSphere(原來稱為ESX)盡管SQL Server 也提供了許多Central Management Server這樣的概念來管理多實例不過如何集中管理數據庫本身以及如何集中管理這些數據庫所依賴於的資源仍然是一項頗具挑戰性的任務而SQL Server Utility就是用於解決這一問題的
SQL Server Utility是一項用於集中管理數據庫所需資源的工具SQL Server Utility為一個企業在使用SQL Server過程中所涉及的主要對象進行了統一建模從而通過Utility Explorer為用戶提供了一個用於觀察SQL Server資源健康狀況的窗口通過SQL Server Utility用戶可以在一個儀表盤中觀察
◆SQL Server實例的健康狀況 (主要依據其資源消耗狀況與資源利用策略的比較結果)
◆DataTier Application的健康狀況 (稍後會有介紹)
◆數據文件
◆邏輯卷
◆CPU利用情況
◆存儲資源利用情況
下圖即是SQL Server Utility提供給DBA用戶的管理儀表盤從中DBA可以迅速了解被托管實例或者已注冊DAC的健康狀況
SQL Server Utility的基礎是Utility Control Point (簡稱UCP)UCP提供了一個用於存放所有被托管實例信息的存儲中心同時也提供了用於查詢各被托管實例情況的訪問中心DBA將某個SQL Server實例注冊到UCP中後一組數據收集代碼作業就會被注冊到這個被托管實例上這些作業每個分鐘運行一次他們的主要任務是收集並上傳被托管實例相關的信息例如資源利用率DAC配置等等
SQL Server Utility通過UCP實現的目標不僅僅是收集信息還有一項同樣重要的任務就是提供一種稱之為資源利用策略的對象通過這種策略對象SQL Server Utility將可以幫助用戶判定某個實例某個DAC是否健康
DataTier Application
另外一個DBA越來越多在SQL Server R介紹中看到的詞就是DAC它的全稱其實是DataTier Application Component
DataTier Application其實是一個包含了幾乎某一應用所需要的數據庫及實例對象的實體例如表視圖存儲過程登錄等等請注意實體這個概念有了實體這個概念也就意味著這些原本獨立的對象現在可以被視為一個更大的對象因此可以被開發人員打包部署管理員整體維護配合上面我們介紹的SQL Server Utility我們甚至可以將那些原本獨立的對象視為一個應用進行統一的監控和管理更為關鍵的是在升級過程中如果有這個整體對象的概念升級過程中所涉及的版本控制問題也會變得更為簡單
看一下當前我們的工作流程如果開發人員發布了一個新的應用首先開發人員會准備一堆的腳本代碼應用然後一一部署到某個測試實例上然後通知用戶在這個測試實例上進行功能業務UAT一系列的測試當測試結束後DBA就需要收集這些腳本代碼以及應用並將它們部署到生產實例上噢首先當然DBA還要確定哪個生產實例更加適合部署這個新的應用這還不是最具挑戰性的正如前面所說如果這個應用是一個升級版本……天哪DBA和開發人員可能還要坐下來討論一下詳細的升級過程哪些對象需要更新?怎麼更新這些對象?更新過程中怎麼保證數據不受影響?
如果使用DataTier Application呢?開發人員只需要在Visual Studio 中通過一種被稱為Datatier Application的項目模板創建一個新項目而後在其中定義前面提到那些對象——腳本代碼應用等等而後將這個項目打包成一個DAC的包 (dacpac文件) 然後將其發布到測試服務器注意不再是一個一個安裝運行而是通過SSMS中的Data Tier Application管理節點直接加在這個包文件這樣就可以直接將所有相關對象注冊到當前數據庫引擎實例上
在升級場景中DataTier Application的優勢就更為明顯了原本開發人員需要為一個新版本准備N套腳本一套是全新安裝而剩下是從某個特定版本升級到當前需要發布的版本如果使用的是DataTier Application開發人員只需要為新的版本編譯出新的包文件在數據庫引擎部署這個新版本DAC包的時候部署人員只需要定位到現存的DAC然後選擇升級功能升級向導會自動比對數據庫引擎中已經部署的版本和准備部署的版本差異然後自動確定需要執行的操作
在一個DAC項目中開發人員可以定義
DAC的自身屬性例如應用名稱版本等等
所有數據庫級別的對象例如表視圖存儲過程
所有數據庫引擎實例級別的對象例如登錄
部署服務器需求策略例如所需SQL Server實例版本號操作系統版本號硬件架構等等
其他輔助文檔例如數據生成計劃部署前准備腳本及部署後清理腳本等等
總結語
SQL Server Utility提供了一個多實例管理的新思路而DataTier Application則提供了一個數據庫管理的新方法結合這兩項技術SQL Server R毫無疑問會對DBA的工作產生深遠的影響另外一個毫無疑問的結論是對於當前越來越龐大的基礎架構規模和應用規模這兩項技術所產生的影響一定是正面積極的
了解了這麼多最好的辦法是什麼呢?當然是下載一個SQL Server R的測試版趕緊親身體驗一下
From:http://tw.wingwit.com/Article/program/MySQL/201404/30559.html