2011年9月21日 星期三

利用EPM Framework來延伸「以原則為基礎的管理」功能到SQL Server 2005及SQL Server 2000

  這次參加Tech.Day 2011聽到陳俊宇老師提到EPM Framework,這EPM可以把SQL 2008的PBM「以原則為基礎的管理」功能向下套用到SQL 2000及SQL 2000呢,於是在測試環境試了一下,發現還真不錯用,雖只是在SQL Agent Job裡面利用PowerShell把評估的原則套用到舊版的SQL Server上,並把評估的結果寫到中央管理伺服器(CMS)裡,讓你之後可以查閱相關評估結果,但它並不只是如此而已,還利用SQL Server 2008 Reporting Services讓你有漂亮的報表可以看喔,像下圖的報表的例子,我測試環境的狀況是一台是SQL 2005,另一台是SQL 2000的



我簡略說明一下安裝步驟

0.環境裡,至少CMS要是SQL Server 2008以後的版本,然後SQL Agent的服務啟動帳號最好為網域帳號,權限要足夠

1.Enterprise Policy Management FrameworkDownload頁下載Documentation(EPM Configuration Documentation v3.docx)與EPM Framework(CodePlex 3.0.zip)

2.了解一下以原則為基礎的管理的如何主題,很熟的話請略過此步驟

3.初步了解PowerShell,可參考Running Windows PowerShell Scripts,了解的好處是你才有除錯PowerShell的能力,當然很熟就請忽略

4.打開Documentation照裡面的步驟做囉,用到的script都在第一個步驟下載的zip裡,基本上有疑問的地方可能是EPM_EnterpriseEvaluation_3.0.0.ps1的參數囉
  第一個參數ConfigurationGroup指的是定義在CMS下的群組,用以下的指令可以查出有哪些群組,我的例子是test群組底下有兩台伺服器囉,留空的意思就是所有的群組
 
SELECT sg.name [ConfigurationGroup],rs.server_name FROM msdb.dbo.sysmanagement_shared_registered_servers rs
INNER JOIN msdb.dbo.sysmanagement_shared_server_groups sg ON rs.server_group_id=sg.server_group_id

  第二個參數PolicyCategoryFilter指的是原則所屬的類別目錄,用以下的指令可以查出原則對應的類別目錄
SELECT p.name [原則名稱],c.name [PolicyCategoryFilter] FROM msdb.dbo.syspolicy_policies p LEFT OUTER  JOIN
msdb.dbo.syspolicy_policy_categories c ON p.policy_category_id = c.policy_category_id
ORDER BY c.name

  第三個參數EvalMode就應該沒有疑問了,就接著照步驟繼續做就OK啦

  相關參考資料
  a.How to Evaluate Policies on Multiple Instances這篇有類似的,不過使用的PowerShell不一樣,可參考
  b.Enterprise Policy Management Framework with SQL Server 2008

0 意見:

張貼留言