ページの先頭行へ戻る
ServerView Resource Orchestrator V3.1.2 トラブルシューティング集
FUJITSU Software

11.2 ダッシュボード(プール状況)が使用する動的ディスク領域が想定以上に増大した

原因

プール状況のデータベース(PostgreSQL)のFSM (Free Space Map)値が不足している場合、AutovacuumによるVacuum処理が正常に動作せず、プール状況の情報を格納するディスクの使用量が増大した可能性があります。

対象ディレクトリ

【Windowsマネージャー】

インストールフォルダー\RCXCTMG\Dashboard\var\pgsql\db\pg_log

【Linuxマネージャー】

/var/opt/FJSVctdsb/pgsql/db/pg_log
ファイル名

【Windows/Linuxマネージャー共通】

 postgres-ctdsb-YYYY-MM-DD_hhmmss.log

注)ファイル名のYYYY-MM-DD_hhmmss は、日時です。

出力メッセージ

【Windows/Linuxマネージャー共通】

WARNING:  relation "public.b_edi_xxxxxxxxxx"
contains more than "max_fsm_pages" pages with useful free space
HINT:  Consider using VACUUM FULL on this
relation or increasing the configuration parameter "max_fsm_pages".

注)出力メッセージの「public.b_edi_xxxxxxxxxx」部分には、以下のどれかが出力されます。

  • public.b_edi_eub1salewp

  • public.b_edi_ao0mykhq1o

  • public.b_edi_cfsukxfdw3

対処方法

  1. 以下のコマンドを実行して、ダッシュボード(プール状況)停止します。

    データベースのメンテナンスを行うため、コマンドに-nodbオプションを指定してください。

    【Windowsマネージャー】

    インストールフォルダー\RCXCTMG\Dashboard\bin\dsb_pool_stop -nodb

    【Linuxマネージャー】

     /opt/FJSVctdsb/bin/dsb_pool_stop.sh -nodb
  2. 以下のコマンドを実行して、データベース(PostgreSQL)にアクセスします。

    【Windowsマネージャー】

    %ProgramFiles%\fjsvpgs83\bin\psql.exe" -d ctdsb -U rcxctdbdsb -h localhost -p PortNo

    【Linuxマネージャー】

    /opt/FJSVpgs83/bin/psql -d ctdsb -U rcxctdbdsb -h localhost -p PortNo

    PortNoには、ダッシュボードのDBに使用しているポート番号を指定します。初期値は5442です。

    例)ポート番号が5442の場合
    【Windowsマネージャー】

    "%ProgramFiles%\fjsvpgs83\bin\psql.exe" -d ctdsb -U rcxctdbdsb -h localhost -p 5442

    【Linuxマネージャー】

    /opt/FJSVpgs83/bin/psql -d ctdsb -U rcxctdbdsb -h localhost -p 5442
  3. 以下のテーブルを最適化します。

    • b_edi_eub1salewp

    • b_edi_ao0mykhq1o

    • b_edi_cfsukxfdw3


    注意

    作業を一旦中断する場合、テーブル単位で中断してください。
    手順3の1~4、5~8、9~12がテーブル単位の操作となります。

    1. 以下のコマンドを実行し、 テーブル内の有効なデータをファイルにバックアップします。
      バックアップ先のファイル名は、絶対パスで指定してください。
      任意のファイル名を指定できますが、テーブルごとに異なるファイル名を指定してください。

      【Windowsマネージャー】

      バックアップ対象を“C:/work/postgresql_bak/b_edi_eub1salewp.txt”とした場合の実行例です。

      ctdsb=# COPY b_edi_eub1salewp TO 'C:/work/postgresql_bak/b_edi_eub1salewp.txt';

      【Linuxマネージャー】

      バックアップ対象を“/tmp/xxxxx/b_edi_eub1salewp”とした場合の実行例です。

      ctdsb=# COPY b_edi_eub1salewp TO '/tmp/xxxxx/b_edi_eub1salewp';
    2. 以下のコマンドを実行し、データをディスクから削除します。

      【Windows/Linuxマネージャー共通】

       ctdsb=# TRUNCATE b_edi_eub1salewp;
    3. 以下のコマンドを実行し、事前にバックアップしたファイルから有効なデータをロードします。
      コマンドを実行すると、テーブルの内容がすべて削除されてしまうため、コマンドを実行する前に、テーブル名とファイル名に誤りがないか十分確認してください。
      COPYコマンドがコピー先の容量不足などが原因で失敗した場合、ディスクの空き容量を増やすなど、失敗した要因の対処を行い、再度COPYコマンドを実行してください。

      【Windowsマネージャー】

      ctdsb=# BEGIN;
      ctdsb=# TRUNCATE b_edi_eub1salewp;
      ctdsb=# COPY b_edi_eub1salewp FROM 'C:/work/postgresql_bak/b_edi_eub1salewp.txt';
      ctdsb=# COMMIT;

      【Linuxマネージャー】

      ctdsb=# BEGIN;
      ctdsb=# TRUNCATE b_edi_eub1salewp;
      ctdsb=# COPY b_edi_eub1salewp FROM '/tmp/xxxxx/b_edi_eub1salewp';
      ctdsb=# COMMIT;
    4. 以下のコマンドを実行します。

      【Windows/Linuxマネージャー共通】

      ctdsb=# VACUUM FREEZE ANALYZE VERBOSE b_edi_eub1salewp;
    5. 以下のコマンドを実行し、テーブル内の有効なデータをファイルにバックアップします。
      バックアップ先のファイル名は、絶対パスで指定してください。
      任意のファイル名を指定できますが、テーブルごとに異なるファイル名を指定してください。

      【Windowsマネージャー】

      バックアップ対象を“C:/work/postgresql_bak/b_edi_ao0mykhq1o.txt”とした場合の実行例です。

      ctdsb=# COPY b_edi_ao0mykhq1o TO 'C:/work/postgresql_bak/b_edi_ao0mykhq1o.txt';

      【Linuxマネージャー】

      バックアップ対象を“/tmp/xxxxx/b_edi_ao0mykhq1o”とした場合の実行例です。

      ctdsb=# COPY b_edi_ao0mykhq1o TO '/tmp/xxxxx/b_edi_ao0mykhq1o';
    6. 以下のコマンドを実行し、データをディスクから削除します。

      【Windows/Linuxマネージャー共通】

       ctdsb=# TRUNCATE b_edi_ao0mykhq1o;
    7. 以下のコマンドを実行し、事前にバックアップしたファイルから有効なデータをロードします。
      コマンドを実行すると、テーブルの内容がすべて削除されてしまうため、コマンドを実行する前に、テーブル名とファイル名に誤りがないか十分確認してください。
      COPYコマンドがコピー先の容量不足などが原因で失敗した場合、ディスクの空き容量を増やすなど、失敗した要因の対処を行い、再度COPYコマンドを実行してください。

      【Windowsマネージャー】

      ctdsb=# BEGIN;
      ctdsb=# TRUNCATE b_edi_ao0mykhq1o;
      ctdsb=# COPY b_edi_ao0mykhq1o FROM 'C:/work/postgresql_bak/b_edi_ao0mykhq1o.txt';
      ctdsb=# COMMIT;

      【Linuxマネージャー】

      ctdsb=# BEGIN;
      ctdsb=# TRUNCATE b_edi_ao0mykhq1o;
      ctdsb=# COPY b_edi_ao0mykhq1o FROM '/tmp/xxxxx/b_edi_ao0mykhq1o';
      ctdsb=# COMMIT;
    8. 以下のコマンドを実行します。

      【Windows/Linuxマネージャー共通】

      ctdsb=# VACUUM FREEZE ANALYZE VERBOSE b_edi_ao0mykhq1o;
    9. 以下のコマンドを実行し、テーブル内の有効なデータをファイルにバックアップします。
      バックアップ先のファイル名は、絶対パスで指定してください。
      任意のファイル名を指定できますが、テーブルごとに異なるファイル名を指定してください。

      【Windowsマネージャー】

      バックアップ対象を“C:/work/postgresql_bak/b_edi_cfsukxfdw3.txt”とした場合の実行例です。

      ctdsb=# COPY b_edi_cfsukxfdw3 TO 'C:/work/postgresql_bak/b_edi_cfsukxfdw3.txt';

      【Linuxマネージャー】
      バックアップ対象を“/tmp/xxxxx/b_edi_cfsukxfdw3”とした場合の実行例です。

      ctdsb=# COPY b_edi_cfsukxfdw3 TO '/tmp/xxxxx/b_edi_cfsukxfdw3';
    10. 以下のコマンドを実行し、データをディスクから削除します。

      【Windows/Linuxマネージャー共通】

       ctdsb=# TRUNCATE b_edi_cfsukxfdw3;
    11. 以下のコマンドを実行し、事前にバックアップしたファイルから有効なデータをロードします。
      コマンドを実行すると、テーブルの内容がすべて削除されてしまうため、コマンドを実行する前に、テーブル名とファイル名に誤りがないか十分確認してください。
      COPYコマンドがコピー先の容量不足などが原因で失敗した場合、ディスクの空き容量を増やすなど、失敗した要因の対処を実施し、再度COPYコマンドを実行してください。

      【Windowsマネージャー】

      ctdsb=# BEGIN;
      ctdsb=# TRUNCATE b_edi_cfsukxfdw3;
      ctdsb=# COPY b_edi_cfsukxfdw3 FROM 'C:/work/postgresql_bak/b_edi_cfsukxfdw3.txt';
      ctdsb=# COMMIT;

      【Linuxマネージャー】

      ctdsb=# BEGIN;
      ctdsb=# TRUNCATE b_edi_cfsukxfdw3;
      ctdsb=# COPY b_edi_cfsukxfdw3 FROM '/tmp/xxxxx/b_edi_cfsukxfdw3';
      ctdsb=# COMMIT;
    12. 以下のコマンドを実行します。

      【Windows/Linuxマネージャー共通】

      ctdsb=# VACUUM FREEZE ANALYZE VERBOSE b_edi_cfsukxfdw3;
    13. 以下のコマンドを実行して、データベースのアクセス状態を終了します。

      【Windows/Linuxマネージャー共通】

      ctdsb=# \q  
  4. 以下のコマンドを実行して、ダッシュボード(プール状況)を起動します。

    【Windowsマネージャー】

    インストールフォルダー\RCXCTMG\Dashboard\bin\dsb_pool_start

    【Linuxマネージャー】

    /opt/FJSVctdsb/bin/dsb_pool_start.sh
  5. 「導入ガイド CE」の18.14 ダッシュボードプール状況のデータベースの設定」を参考に、データベースの設定を見直してください。