SQL Server 2008 R2數據管理新利器剖析

2020-11-28 IT168

  【IT168專稿】我們在SQL Server 2008 R2數據管理新紀元一文中介紹了SQL Server 2008 R2的管理利器——SQL Server Utility。這一次我們將深入剖析這一管理工具。

  SQL Server Utility的架構

  從SQL Server Utility的架構圖中可以看出SQL Server Utility的基礎是Utility Control Point。DBA可以在企業內創建多個SQL Server Utility,一個SQL Server Utility可以用於管理多個SQL Server實例。一個SQL Server實例僅能創建一個UCP,每個SQL Server Utility都必須而且僅能依賴於一個UCP。

  DBA使用SQL Server Utility的大致工作流程是:

  • 在某個SQL Server實例上創建UCP,用於宿主UCP的實例上會創建一個UCP用於存儲各類信息的數據倉庫(sysutility_mdw),同時該實例會創建三個作業用於處理改數據倉庫中的數據:

  o sysutility_get_views_data_into_cache_tables

  o sysutility_get_cache_tables_data_into_aggregate_tables_hourly

  o sysutility_get_cache_tables_data_into_aggregate_tables_daily

  • 將需要被託管的SQL Server實例添加到UCP中,被託管實例上會創建一個作業用於收集並上載該被託管實例的配置及性能信息並在該實例的msdb資料庫中創建若干表及代碼對象:

  o sysutility_mi_collect_and_upload

  o sysutility_mi_collect_performance

  • 被託管實例上的兩個作業每個15分鐘運行一次並將收集到的數據上載到UCP數據倉庫 (sysutility_mdw)。

  • DBA通過Utility Explorer查看各項信息。

  SQL Server Utility作業剖析

  sysutility_mi_collect_performance

  該作業在被託管實例上每隔15秒就會運行一次,這個作業調用的是位於MSDB資料庫中的sp_sysutility_mi_collect_dac_execution_statistics_internal存儲過程,該存儲過程會收集被託管DAC的性能數據,並上載到被託管實例的msdb資料庫中。

  sysutility_mi_collect_and_upload

  該作業每隔15分鐘才運行一次,這個作業調用的是一段PowerShell腳本,主要用於收集處理器性能統計數據及邏輯卷的容量信息,同樣這個作業收集到的數據都是傳向被託管實例的msdb資料庫。

  該作業同時還負責調用msdb資料庫中的存儲過程sp_sysutility_mi_upload,該存儲過程會進一步調用msdb資料庫中的另一個系統存儲過程sp_syscollector_run_collection_set,而這個存儲過程一看便知道屬於SQL Server 2008 Data Collection功能所使用的(關於這個我們後面會有詳細的介紹)。

  sysutility_get_views_data_into_cache_tables

  該作業每隔15分鐘運行一次,主要任務是將數據從相關的性能數據從sysutility_ucp_staging架構複製到sysutility_ucp_core架構下,然後調用一段PowerShell腳本對性能數據進行評估,最後計算評估結果。

  sysutility_get_cache_tables_data_into_aggregate_tables_hourly

  該作業每個1小時運行一次,主要任務是對sysutility_ucp_core架構下的處理器及存儲空間利用數據進行聚合併存儲聚合結果。

  sysutility_get_cache_tables_data_into_aggregate_tables_daily

  該作業每天運行一次,其主要任務同上面一個任務相似,也是執行聚合,不過這次聚合的粒度不是小時,而是天,另外這個任務在聚合完成後還會清除過期的緩存數據及健康度評估數據(包括前一天的詳細數據、小時粒度的聚合數據以及一月前的天粒度聚合數據)。

  SQL Server Utility與Data Collection

  經過進一步的探索,我們會發現SQL Server Utility其實依賴於SQL Server 2008的一項功能——Data Collection。Data Collection對於已經接觸SQL Server 2008的DBA來說應該不陌生,因為微軟已經在SQL Server 2008發布的時候大肆宣傳過。不過當時僅有三個Collection Set,Disk Usage、Query Statistics及Server Activity。

  不過在SQL Server 2008 R2中我們會發現一個新的Collection Set——Utility Information。沒錯,某些讀者可能已經猜到這個新的Collection Set與我們正在介紹的SQL Server Utility有著千絲萬縷的關係。

  打開這個Collection Set我們就可以清楚地看到其中定義了一項Generic T-SQL類型的收集項目,主要是調用msdb中的若干存儲過程和數據表,例如sp_sysutility_mi_get_dac_execution_statistics_internal存儲過程。

  繼續翻到這個Data Collection Set的Upload設置頁我們甚至還能發現sysutility_mdw數據倉庫在整個流程中的位置(怪不得我一直沒有在作業和存儲過程定義中找到UCP是如何將數據載入這個最終的數據倉庫中)。

  了解了這些,DBA應該大致了解SQL Server Utility的工作流程了吧。當然,對於新接觸SQL Server 2008的DBA來說就應該去看看有關Data Collection Set的介紹了,相信對於理解SQL Server Utility的工作原理是非常有幫助的。

 

  SQL Server Utility配置

  SQL Server Utility的需求

  DBA們也許已經注意到了,創建UCP需要一個SQL Server實例,而UCP又可以用於管理多個SQL Server實例。我們暫將用於創建UCP的實例成為UCP宿主實例,而將UCP管理的實例成為託管實例。

  SQL Server Utility對UCP宿主實例以及UCP託管實例都是有一些限制條件的,分別是:

  • UCP宿主實例以及UCP託管實例的SQL Server的版本必須在10.5以上。

  • UCP宿主實例以及UCP託管實例都必須是資料庫引擎實例。

  • UCP宿主實例以及UCP託管實例必須工作在同一個域或具備雙向信任關係的域內。

  • UCP宿主實例以及UCP託管實例的SQL Server服務帳號都必須擁有對活動目錄中用戶對象的讀權限。

  • 在Windows Server 2003中,SQL Server Agent服務帳號必須是Performance Monitor User組成員。

  以上這些限制除第一條有些苛刻,第二條有些遺憾外,其他尚屬合理。

  第一條限制明顯會限制SQL Server Utility的應用,10.5的版本號就意味著SQL Server Utility將完全無法支持SQL Server 2008 R2之外的版本,甚至是發布沒有多久的SQL Server 2008。

  SQL Server Utility存儲消耗

  正如許多管理工具一樣,UCP將收集到的數據存儲在一個數據倉庫中,這就會帶來存儲的問題。為了避免存儲空間耗盡導致SQL Server Utility停止工作甚至影響同一存儲設備上其他資料庫的情況發生,DBA需要考慮一下SQL Server Utility存儲消耗的問題。

  在通常情況下,每個託管實例每年會在數據倉庫sysutility_mdw中消耗將近2GB的數據空間,同時每個託管實例還會在msdb中消耗將近20MB的數據空間。託管實例上的資料庫數量、DBA設置的資源利用評估策略會對這個數據產生明顯的影響。因此建議DBA需要在SQL Server Utility上限後的一至兩周觀察一下實際的存儲消耗速率。

  創建UCP

  說了這麼多,我們簡單展示下創建UCP的過程。

  首先需要在SQL Server Management Studio中找到Utility Explorer,在Utility Explorer的工具欄中找到一個名為「Create Utility Control Point」的按鈕。

  點擊這個按鈕後,SQL Server Management Studio就會啟動創建UCP的嚮導

  點擊「Next」略過介紹頁,接著就需要選擇用於宿主UCP的SQL Server實例了,同時還需要提供一個UCP的名字,輸入這兩項內容後又可以點擊「Next」了。

  

  接著就是選帳戶了,DBA有兩個選擇,使用一個Domain Account或者利用現有的SQL Server Agent服務帳戶,如果是Domain Account那麼SQL Server會自動創建一個SQL Server Agent代理帳戶。

  接著SQL Server會檢查創建UCP的各項條件,如果沒有問題的話,繼續點擊「Next」兩次就可以結束整個配置嚮導了。

  令筆者汗的一個小問題是,筆者尚未發現有如何圖形化工具在某個UCP宿主實例上刪除UCP的註冊,因此大家體驗這一過程的時候注意一下吧。

  將一個SQL Server實例加入為託管實例的嚮導與創建UCP的嚮導步驟類似,只是啟動加入託管實例的嚮導需要在「Managed Instance」節點上右擊。

  結束語

  如前一篇介紹SQL Serve Utility的文章一樣,要想更好的體驗SQL Server Utility,還是趕緊下載一個評估版自己偷著樂吧。

相關焦點

  • SQL Server 2008 R2進行VS2010應用開發
    【IT168技術】數據應用層程序(Data-Tier Application Component, DAC)是SQL Sever 2008 R2的一大功能亮點,結合使用Visual Studio 2010,可以幫助開發人員和資料庫管理員比以前更加有效的開發、部署、管理應用程式的數據層。
  • 詳解SQL Server 2008滑動窗口的管理
    【IT168 技術文檔】每個月都會有新數據添加到龐大的Orders數據表中,此時如果只對這一個表進行操作,則更新索引的過程將嚴重製約性能並產生大量碎片。為了進行優化,我們將通過獨立的兩個表進行配合,即當有新數據產生時,將舊數據從分區表中切換出來,然後將新數據添加到分區表中。
  • R+SQL Server的大數據管理
    好像有點扯遠了~處理這些TB、PB級的數據,我們不妨試試強大的SQL Server。它是是微軟公司推出的一個具有使用方便、可伸縮性好、與相關軟體集成程度高等優點的全面的關係型資料庫管理平臺,可以滿足數據爆炸時代和數據驅動應用程式的需求。
  • 面面俱到:SQL SERVER 2008主數據管理
    【IT168專稿】SQLSERVER 2008R2中提供了主數據服務。很多人對主數據服務比較陌生。我們先介紹主數據服務的應用範疇。  主數據服務是當企業的規模達到一定的規模後,因企業信息化戰略發展的需要。需要將企業內信息進行統一規劃、形成制定統一的標準。建立一套統一的公共數據標準及維護體系、一個統一的公共數據平臺。
  • 2012關注SQL Server 2008 R2的七大理由
    Excel 2010和SharePoint 2010的PowerPivot插件可以算是其新特性中的一個最大亮點,不僅僅是因為它們是最完整的。但是,SQL Server 2008 R2並非是Excel的PowerPivot插件的嚴格必需品,後者還可以和很多其他數據源協同工作。
  • 微軟正式提供SQL Server 2008 R2下載
    上月末,微軟SQL Server團隊宣布完成了SQL Server 2008 R2的RTM版並提交給了製造商,日前微軟宣布,MSDN和TechNet訂閱用戶也可以下載使用SQL Server 2008 R2了。
  • SQL Server 首次登陸 Linux 平臺
    近年來, SQL Server 正在一直演化,除了想一改 DMS(資料庫管理系統)的角色,還想介入到數據分析、機器學習和數據科學領域。2017 年 4 月份, SQL Server 發布了一個重要組件,支持在 SQL Server 中用 Python 運行機器學習負載。
  • 教你配置管理SQL Server 2008數據倉庫
    【IT168 技術文檔】在SQL Server 2008中有很多組件可以進行性能數據收集。為了設定收集數據的類型以及收集計劃,數據收集器需要使用管理數據倉庫。管理數據倉庫也是一個關係型資料庫,但在創建該資料庫時很多默認設置需要進行修改,在我們後面的實驗中將深入討論。
  • 微軟SQL Server 2008 R2正式完成RTM版
    微軟SQL Server團隊宣布,SQL Server 2008 R2已經完成RTM版並提供給了製造商,消費者將在接下來的幾周內通過微軟各發布渠道獲得SQL Server 2008 R2。
  • SQLServer2008 R2數據管理兩特性新亮相
    SQL Server 2008 R2提供了主數據服務、數據應用層程序、多伺服器管理、Power Pivot for SharePoint 、Report Builder 3.0、Stream Insight等眾多新功能。在新功能支持下,SQL Server 在數據管理上也有了全新提高,無論是數據的易管理性還是數據的可用性都得到了增強,尤其是數據應用層程序和資料庫鏡像,本文將從這兩個方面進行介紹。
  • SQL Server 2008 R2 SP2正式發布
    微軟昨日正式發布了SQL Server 2008 R2 SP2,包括x86、x64、IA64版本,支持簡體中文等多種語言。SQL Server 2008 R2官方下載頁面:http://www.microsoft.com/zh-cn/download/details.aspx?
  • 微軟延長 Windows Server 2008/R2、SQL Server 2008/R2 免費支持...
    IT之家7月14日消息 微軟將於2019年7月結束對SQL Server 2008和2008 R2的擴展支持,於2020年1月結束對Windows Server 2008/2008 R2的支持。在這之後這些系統將無法獲得微軟的安全補丁支持,除非用戶付費獲取維護。
  • SQL Server2008中的9種數據挖掘算法淺析
    【IT168 技術文檔】  在sql server2008中提供了9種常用的數據挖掘算法,這些算法用在不同數據挖掘的應用場景下,下面我們就各個算法逐個分析討論。  1.決策樹算法  決策樹,又稱判定樹,是一種類似二叉樹或多叉樹的樹結構。
  • server sql 作業 使用專題及常見問題 - CSDN
    use masterGO/* --開啟sql server代理sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Agent XPs', 1; GO RECONFIGURE GO*/--定義創建作業
  • WIN10 sql server2008r2資料庫安裝圖解
    1、WIN10安裝sql server2008r2 先關閉防火牆2、打開安裝嚮導點擊左邊欄安裝選擇「全新安裝或向先有安裝添加功能」等待3、安裝程序支持規則確定3、安裝程序支持文件 安裝4、安裝程序支持規則,看一下是否全部通過,點擊下一步
  • SQL Server 2016新亮點全揭秘
    【IT168 資訊】微軟即將在6月1號發布的SQL Server 2016可以為數據提供更好的安全性,並且能夠支持混合雲,能夠查詢非結構化的數據源。  很多企業發現在他們的資料庫裡有很大一部分的數據是結構化和非結構化的交織在一起的。在這種情況下,對於數據安全的要求就越來越高。
  • 微軟 SQL Server 2016 SP1 發布
    資料庫克隆 - 克隆資料庫是一個新的 DBCC 命令,允許 DBA 並支持團隊通過克隆的模式和元數據來解決現有的生產資料庫的沒有數據統計的故障。克隆資料庫並不意味著在生產環境中使用。以編程方式標識 LPIM 到 SQL 服務帳戶 - DMV sys.dm_os_sys_info 中的新 sql_memory_model、sql_memory_model_desc 列,允許
  • 這個函數讓SQL效率提升99%
    正文共:2335 字 4 圖 預計閱讀時間:5 分鐘我是firewang: 用技術讓數據說話,用數據讓你我進化。簡介窗口函數(window function), 也可以被稱為 OLAP函數 或 分析函數。
  • SQL2008R2資料庫安裝教程
    2、2008系統(我這裡使用的是2008R2企業版)安裝IIS:二、資料庫安裝根據實際需求選擇實例功能,一般全選即可實例根目錄可更改,如無特殊需求默認即可此處可調整服務的啟動類型(手動、自動、禁用等),要點擊「對所有sql server服務使用相同的帳戶」帳戶名選擇第二個SYSTEM
  • MSDN開放SQL Server 2008 R2企業版等版本下載
    微軟今天發布了新款資料庫軟體SQL Server 2008 R2的第一個公開測試版,不過暫時僅提供給MSDN和TechNet訂戶。SQL Server 2008 R2開發代號Kilimanjaro(非洲最高峰吉力馬札羅山),是現有SQL Server 2008的過渡性升級版。