VMware製品の調査をしていると、製品が内部に持つ管理DBの中身を見ることがあります。
管理DBの中身を見る方法は、実機で直接DBに接続してSQLコマンドをたたく方法と、Dumpされたテキストファイルを見る方法がありますが、
このブログでは3回に分けてDumpされたDBをローカルのPostgreSQLにインポートして、ローカルで調査する方法を紹介したいと思います。
第一回はSDDC ManagerとvCenterの内部管理DBのDump方法について紹介します。
※筆者はPostgreSQLに関する知識は素人に毛が生えたレベルですので不正確な部分についてご容赦ください。また、DB Dumpなどの方法についてはVMwareから提供されている方法を正としていただき、本ブログはあくまでも参考情報としてご利用ください。
第2回、第3回の記事は以下です。
vCenterとSDDC ManagerのDBをローカルPCにインポートする方法【PostgreSQLのインストール】
vCenterとSDDC ManagerのDBをローカルPCにインポートする方法【DBをインポートして閲覧する】
全体の流れを確認
DB Dumpの取得方法を説明する前に、3回にわたる今回の記事の流れを説明します。
ゴールはVCSAとSDDC ManagerのDBの中身をローカルPCにInstall したPostgreSQL DBMSで閲覧することです。
DBの情報をローカルにコピーする必要があるため、DBの中身をDumpし、それをインポートする流れになります。
そのため、第一回では対象のDBのDumpを取得する方法を説明します。
第二回では実際にDB DumpをインポートするPostgreSQL DBをWindows PCにInstallする手順を示します。
第三回では、DB Dumpを実際にインポートする手順と注意事項などについて説明します。
SDDC ManagerのDBダンプ取得方法
SDDC Managerの管理DBのDump方法は非常に簡単です。
SDDC Managerのログバンドルを取得するとその中に含まれています。
SDDC Managerはsos utilityで取得できますが、実行の際に--sddc-manager-logs オプションをつけることでSDDC Managerのログバンドルを明示的に指定して取得可能です。
sos utilityを用いたログ採取については下記もご参考ください。
ログバンドルの中にpostgres-db-dumpというファイルがありますので、こちらがDB Dumpに相当します。
VCDB (vCenter内部管理DB)のダンプ取得方法
こちらについては、VMwareの公式情報が見つからなかったのであくまでもPostgreSQL観点での実施方法になります。
なお、今回の検証で利用しているのは、vCenter Server Applianceの6.7.0-15132721です。
0. VCSAのサービスを停止
DB dumpを取得する前に、VCSAのサービスを停止しましょう。
以下のVMware KBを参考にしてください。。
https://kb.vmware.com/s/article/2109887?lang=ja
1. postgres ユーザのパスワードを確認する
VCSA内のPostgreSQL DBのpostgres ユーザのパスワードを確認します。
パスワードは.pgpassファイルに書かれており、以下のコマンドで中身を確認できます。
# cat /root/.pgpass
2. postgreSQL DBのDumpを取得する
パスワードを確認したらDB Dumpを取得します。
DBのDumpはサイズが大きくなることが想定されるのであらかじめ、容量に余裕のある場所に生成するようにします。
本記事では/storage/core 配下に保存することにします。
/storage/coreはデフォルトで50GBが割り当てられており、障害が発生しない限りほとんど空いてます。
# cd /storage/core/
次にpg_dumpallコマンドでダンプを取得します。以下のコマンドを実行するだけでOKです。
# pg_dumpall -U postgres > vcdb_dump
ファイル名はなんでもいいです。
コマンドを実行するとパスワードが求められますので、1.のステップで確認したパスワードを入力してください。
パスワードを間違えるとエラーメッセージが出ますが、何も出ずにプロンプトが返れば成功です。
3. TableSpaceのファイルもまとめて.tgzに固める
VCDBの一部は別の場所に保存されているのでそちらも採取しておく必要があります。
2.のステップで取得したDumpファイルと合わせてtarで固めて圧縮し、転送しやすくしましょう。
以下のコマンドで十分です。
# tar cvzf vcdb_dump.tgz vcdb_dump /storage/seat/vpostgres/*
vcdb_dump.tgz がカレントディレクトリ(/storage/core)に生成されているはずなので、これをローカルのPCに転送しましょう。
4. VCSAのサービス起動
DB Dump採取前に停止したサービスは忘れずに起動してください。
今回は、vCenterとSDDC Managerの内部管理用PostgreSQL DBMSのDump方法について紹介しました。
次回はローカルPCにPostgreSQL DBMSをインストールする方法を紹介します。