System Center 2012 Virtual Machine Manager のサービスが起動できない現象について

こんにちは。日本マイクロソフトの福田です。      

今回は、System Center 2012 Virtual Machine Manager の System Center Virtual Machine Manager サービスが
起動できない問題について紹介します。

System Center 2012 Virtual Machine Manager (SCVMM 2012) および、System Center 2012 SP1 Virtual Machine Manager (SCVMM 2012 SP1) を、
管理対象となる Hyper-V ホスト、仮想マシンが比較的多い環境にてご利用いただいている際、
System Center Virtual Machine Manager サービスの起動に失敗する場合があります。

この問題は、管理対象のパフォーマンス情報をデータベースに格納する際、各エントリーに付与される ID 番号が
最大値に達することによりその後のエントリーが記録できなくなるために、System Center Virtual Machine Manager
サービスの起動に失敗します。

この問題は、既に、System Center 2012 R2 Virtual Machine Manager(SCVMM 2012 R2) にて修正を行って
おりますので、バージョンアップを実施していただくことにより、現象を回避していただくことが可能です。

また、現在ご利用いただいている SCVMM 2012 および、SCVMM 2012 SP1 では、以下の方法にて、ID 番号の状況を
確認の上、ID 番号が最大値に達しているテーブルのクリーンアップを実施いただくことにより対処していただくことが可能です。

***********************
ID 番号の状況の確認
***********************
パフォーマンス情報を格納する 3 種類のテーブルの ID 列が、最大値である "2,147,483,647" に達しているかを
以下の手順にてご確認します。

1. SQL Server Management Studio を起動してデータベースに接続します。

2. 左ペインの [データベース] ツリーを展開し、[VirtualManagerDB] データベースを右クリックして
   [新しいクエリ] を選択します。

   ※データベースの名前を変更されている場合は、ご利用いただいているデータベース名に読み替えてください。

3. クエリの入力ウィンドウ内に、以下のクエリを貼り付け、[実行] ボタンまたはキーボードの F5 キーを押して
   クエリを実行します。

================================================================================
SELECT MAX(ID) AS tbl_PCMT_PerfHistory_Raw
FROM [dbo].[tbl_PCMT_PerfHistory_Raw]
SELECT MAX(ID) AS tbl_PCMT_PerfHistory_Hourly
FROM [dbo].[tbl_PCMT_PerfHistory_Hourly]
SELECT MAX(ID) AS tbl_PCMT_PerfHistory_Daily
FROM [dbo].[tbl_PCMT_PerfHistory_Daily]
================================================================================

4. それぞれのテーブルの ID 列の最大値が表示されますので、値が "2,147,483,647" に達しているテーブルが無いかに
   ついてご確認ください。

値が "2,147,483,647" に達しているテーブルが存在する場合には、続けて以下の対処を実施してください。

*****************************
データベースのクリーンアップ
*****************************
ID 列が最大値に達しているテーブルのクリーンアップを行うため、以下の手順にて操作を実施してください。
なお、対処実施の前には、念のため、VMM データベースのバックアップを取得してください。
※ データベースの完全バックアップの作成 (SQL Server)
https://technet.microsoft.com/ja-jp/library/ms187510(v=sql.110).aspx

1. "System Center Virtual Machine Manager" サービスを停止します。
   ※問題が発生している場合には、通常、停止しております。

2. SQL Server Management Studio を起動してデータベースに接続します。

3. 左ペインの [データベース] ツリーを展開し、[VirtualManagerDB] データベースを右クリックして[新しいクエリ] を
   選択します。

   ※データベースの名前を変更されている場合は、ご利用いただいているデータベース名に読み替えてください。

4. "ID 番号の状況の確認"にてご確認いただいた "2,147,483,647" に達しているテーブルに合わせて、
    以下の対象となるクエリをクエリの入力ウィンドウ内に貼り付け、[実行] ボタンまたはキーボードの
    F5 キーを押してクエリを実行します。
   ※過去の不要な情報を削除し、ID 列に割り振られる数値をリセットする処理となります。
  
- 最大値に達したテーブルが tbl_PCMT_PerfHistory_Raw の場合
================================================================================
DELETE FROM [dbo].[tbl_PCMT_PerfHistory_Raw]
WHERE DATEDIFF(day, [Timestamp], GETUTCDATE()) > 2

DBCC CHECKIDENT('[dbo].[tbl_PCMT_PerfHistory_Raw]', reseed, 1)
================================================================================

- 最大値に達したテーブルが tbl_PCMT_PerfHistory_Hourly の場合
================================================================================
DELETE FROM [dbo].[tbl_PCMT_PerfHistory_Hourly]
WHERE DATEDIFF(day, [Timestamp], GETUTCDATE()) > 2

DBCC CHECKIDENT('[dbo].[tbl_PCMT_PerfHistory_Hourly]', reseed, 1)
================================================================================

- 最大値に達したテーブルが tbl_PCMT_PerfHistory_Daily の場合
================================================================================
DELETE FROM [dbo].[tbl_PCMT_PerfHistory_Daily]
WHERE DATEDIFF(day, [Timestamp], GETUTCDATE()) > 45

DBCC CHECKIDENT('[dbo].[tbl_PCMT_PerfHistory_Daily]', reseed, 1)
================================================================================

5. "System Center Virtual Machine Manager" サービスを起動します。

以上で手順は完了となります。

"System Center Virtual Machine Manager" サービスが起動することをご確認ください。