vCenter Server データベース仮想マシンでの静止スナップショット操作が原因で VMware VirtualCenter Server サービスが失敗する
search cancel

vCenter Server データベース仮想マシンでの静止スナップショット操作が原因で VMware VirtualCenter Server サービスが失敗する

book

Article ID: 342311

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:

免責事項: これは英文の記事 「VMware VirtualCenter Server service fails due to a quiesced snapshot operation on the vCenter Server database virtual machine (2003674)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


  • vCenter Server データベースは、仮想マシン (Linux/Windows) で実行されているローカル/リモート データベース サーバに配置されている。
  • 静止スナップショットを作成している間、またはデータベース仮想マシンのスナップショットを削除している間(たとえば、バックアップ操作中)、vCenter Server はデータベースから切断され、失敗する。
  • Windows Event Viewer ログに、次のようなエラーが記録される。

    An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error[VdbODBCError] (-1) "ODBC error: (23000) - [Oracle][ODBC][Ora]ORA-00001: unique constraint (VMWARE_VC.PK_VPX_TASK) violated" is returned when executing SQL statement "INSERT INTO VPX_TASK (TASK_ID, NAME, DESCRIPTIONID, ENTITY_ID, ENTITY_TYPE, ENTITY_NAME, LOCKED_DATA, COMPLETE_STATE, CANCELLED, CANCELLABLE, ERROR_DATA, RESULT_DATA, REASON_DATA, QUEUE_TIME, EVENT_CHAIN_ID, USERNAME, VM_ID, HOST_ID, COMPUTERESOURCE_ID, DATACENTER_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"


  • vpxd.log が verbose ログに設定されている場合、ログには次のようなエントリが記録されます。

    [YYYY-MM-DD 20:07:24.513 04560 error 'App'] [Vdb::Connection::Commit] Connection commit failed: -1. Start retrying 20 more times.
    [YYYY-MM-DD 20:07:24.513 04560 verbose 'App'] [Vdb::Connection::Mend] Mending the connection
    [YYYY-MM-DD 20:07:27.700 04560 verbose 'App'] [Vdb::Connection::Replay] Playing back INSERT INTO VPX_TASK (TASK_ID, NAME, DESCRIPTIONID, ENTITY_ID, ENTITY_TYP
    E, ENTITY_NAME, LOCKED_DATA, COMPLETE_STATE, CANCELLED, CANCELLABLE, ERROR_DATA, RESULT_DATA, REASON_DATA, QUEUE_TIME, EVENT_CHAIN_ID, USERNAME, VM_ID, HOST_ID, COMPUTERESOURCE_ID, DATACENTER_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    [YYYY-MM-DD 20:07:28.669 04560 error 'App'] [Vdb::IsRecoverableErrorCode] Unable to recover from 23000:1
    [YYYY-MM-DD 20:07:28.669 04560 error 'App'] [VdbStatement] SQL execution failed: INSERT INTO VPX_TASK (TASK_ID, NAME, DESCRIPTIONID, ENTITY_ID,
    ENTITY_TYPE, ENTITY_NAME, LOCKED_DATA, COMPLETE_STATE, CANCELLED, CANCELLABLE, ERROR_DATA, RESULT_DATA, REASON_DATA, QUEUE_TIME, EVENT_CHAIN_ID, USERNAME, VM_ID, HOST_ID, COMPUTERESOURCE_ID, DATACENTER_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    [2011-06-23 20:07:28.669 04560 error 'App'] [VdbStatement] Diagnostic data from driver is 23000:1:1:[Oracle][ODBC][Ora]ORA-00001: unique constraint (VMWARE_VC.PK_VPX_TASK) violated

    : 詳細については、「VMware vCenter Server 4.x および 5.x での瑣末な情報のログの有効化 (2080808)」を参照してください。


Environment

VMware vCenter Server 4.1.x
VMware vCenter Server 5.0.x
VMware vCenter Server 5.5.x
VMware vCenter Server 5.1.x

Cause

この問題は、vCenter Server データベース仮想マシンがスナップショット操作中に静止状態である場合に発生します。
エラー Connection commit failed: -1 は、vCenter Server が、データベース コミット操作が成功したか失敗したかを認識していないことを示します。

vCenter データベース層 (Vdb) は、SQL 文要求をを再生し、vCenter 操作を続行します。 再生処理中、以前失敗した SQL 文がデータベースにコミットしたことが明らかになり、特定のテーブルに一意の制約定義がある場合、ODBC ドライバは 一意制約違反エラーを VMware VirtualCenter Server サービスに報告し、サービスは vCenter Server データベースの破損を防ぐためにシャットダウンします。

Resolution

現在のところ、VMware では、vCenter Server データベースで実行している仮想マシンの静止スナップショットをサポートしていません。

この問題を回避するには、次のいずれかの方法を使用します。
  • 仮想マシン データをバックアップするために、バックアップ ソフトウェアによって静止スナップショットが作成された場合は、次のいずれかを使用します。
    • アプリケーション レベルの静止を提供するバックアップ ソリューション。
    • ゲスト OS のバックアップ エージェント。

      : ファイル システムを静止するバックアップ エージェントは、この記事に説明されている問題を発生させます。

  • 仮想マシンのメンテナンス中に手動でスナップショットが作成された場合(たとえば、ゲスト OS へのパッチの適用、構成の変更)、仮想マシンのスナップショットを作成している間は、[静止ゲスト ファイル システム] オプションの選択を解除します。


Additional Information

静止は、コンピュータで実行中のプロセスの一時停止または状態の変更、特に整合性と使用可能なバックアップを保証するため、バックアップ中にディスクに格納されている情報を変更する可能性があるものを示します。
この記事の更新時にアラートを受信する場合は、[Actions] ボックスで Subscribe to Article をクリックしてください。


Impact/Risks:
静止を無効にすると、クラッシュ時のファイル システム状態の整合性が保たれます。