vCenter Serverが使用しているSQL Expressの容量制限でエラー

Facebooktwittergoogle_plusmail

保守の為に停止したvCenter Serverを起動するとVMのステータスが取得できない、起動できないなどのトラブに遭遇しました。

vCenter Serverも動作不安定でサーバ自体も負荷が増大していました。


イベントログを確認するとvCenter Serverが使用しているSQL Expressでエラーが出力されていました。

ログの名前: Application
ソース: MSSQL$VIM_SQLEXP
イベント ID: 1105
レベル: エラー
ユーザー: SYSTEM
説明:
Could not allocate space for object ‘dbo.VPX_HOST_VM_CONFIG_OPTION’.’PK_VPX_HOST_VM_CONFIG_OPTION’ in database ‘VIM_VCDB’ because the ‘PRIMARY’ filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

ログの名前: Application
ソース: MSSQL$VIM_SQLEXP
イベント ID: 1827
レベル: エラー
ユーザー: SYSTEM
説明:
CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.

MS SQL Express 2008なのでライセンスによる容量制限で10240MB/DBを超えたためにDBへの書込みが出来なくなっていました。

調べると下記のサイトの情報が該当しました。
vCenter Server に使用されているデータベースから古いデータを消去する (2014792)
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2014792

SQL Server Management Studioをインストールして手動で消去して下さいと:-(
でも早急に対処ないとVMが起動できないので大事になります。

  1. vCenter Serverの停止
  2. サービスのVMware VirtualCenter ServerとVMware VirtualCenter Management webservicesを停止します。
    今回はプロパティで無効にしてからタスクマネージャーで強制停止しました。

  3. SSMSのダウンロードとインストール
  4. SQL Server Management Studio (SSMS) のダウンロード
    https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms

    SSMS-Setup-JPN.exeをダウンロードしてインストールします。サーバーの再起動が必要です。



  5. SQL Serverに接続
  6. サーバ名にhostname\VIM_SQLEXP, アクセス権のあるユーザーで認証を行いDBに接続します。


  7. データーベース VIM_VCDBのテーブル選択
  8. データーベースVIM_VCDBを展開してテーブルdbo.VPX_PARAMETERを選択します。


  9. テーブルdbo.VPX_PARAMETERの編集
  10. テーブルdbo.VPX_PARAMETERを右クリックし、[上位 200 行の編集] をクリックします。


  11. 値の変更
  12. event.maxAge30に変更しevent.maxAgeEnabled値をtrueに変更します。
    task.maxAge30に変更しtask.maxAgeEnabled値をtrueに変更します。
    デフォルト値は
    event.maxAgeが180, event.maxAgeEnabledはfalse
    task.maxAgeが180, task.maxAgeEnabledはfalse
    になっていました。これってDBのレコード削除はしないってことですかね?

  13. dbo.cleanup_events_tasks_procの実行
  14. [VIM_VCDB]-[プログラミング]-[ストアードプロシージャ]からdbo.cleanup_events_tasks_procを選択して[ストアードプロシージャの実行(E)]で実行します。


  15. 準備完了
  16. [進行状況]が準備完了になれば[OK]で実行します。


  17. クエリが正常に実行されました
  18. 実行開始で気長に待ちます。今回は約60分ぐらい掛かりました。
    正常に完了すると下のステータスバーに「クエリが正常に実行されました」と表示されれば終了です。




    今回の作業で空き領域が637241MB(61%)になりました。

  19. SSMSの終了
  20. SSMSを終了します。

  21. vCenter Serverの起動
  22. サービスのVMware VirtualCenter ServerとVMware VirtualCenter Management webservicesを起動します。

  23. 統計情報の設定確認
  24. vSphere Web ClientからログインしてvCenter Serverの[設定]-[編集]で統計レベルが1に設定されているか確認します。


これでvCenter Serverも通常通り動作してVMも起動、ステータスやHAも確認できました。よかった、よかった:-)

Leave a Reply