原因
プール状況のデータベース(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
対処方法
以下のコマンドを実行して、ダッシュボード(プール状況)を停止します。
データベースのメンテナンスを行うため、コマンドに-nodbオプションを指定してください。
【Windowsマネージャー】
インストールフォルダー\RCXCTMG\Dashboard\bin\dsb_pool_stop -nodb
【Linuxマネージャー】
/opt/FJSVctdsb/bin/dsb_pool_stop.sh -nodb
以下のコマンドを実行して、データベース(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
以下のテーブルを最適化します。
b_edi_eub1salewp
b_edi_ao0mykhq1o
b_edi_cfsukxfdw3
注意
作業を一旦中断する場合、テーブル単位で中断してください。
手順3の1~4、5~8、9~12がテーブル単位の操作となります。
以下のコマンドを実行し、 テーブル内の有効なデータをファイルにバックアップします。
バックアップ先のファイル名は、絶対パスで指定してください。
任意のファイル名を指定できますが、テーブルごとに異なるファイル名を指定してください。
【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';
以下のコマンドを実行し、データをディスクから削除します。
【Windows/Linuxマネージャー共通】
ctdsb=# TRUNCATE b_edi_eub1salewp;
以下のコマンドを実行し、事前にバックアップしたファイルから有効なデータをロードします。
コマンドを実行すると、テーブルの内容がすべて削除されてしまうため、コマンドを実行する前に、テーブル名とファイル名に誤りがないか十分確認してください。
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;
以下のコマンドを実行します。
【Windows/Linuxマネージャー共通】
ctdsb=# VACUUM FREEZE ANALYZE VERBOSE b_edi_eub1salewp;
以下のコマンドを実行し、テーブル内の有効なデータをファイルにバックアップします。
バックアップ先のファイル名は、絶対パスで指定してください。
任意のファイル名を指定できますが、テーブルごとに異なるファイル名を指定してください。
【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';
以下のコマンドを実行し、データをディスクから削除します。
【Windows/Linuxマネージャー共通】
ctdsb=# TRUNCATE b_edi_ao0mykhq1o;
以下のコマンドを実行し、事前にバックアップしたファイルから有効なデータをロードします。
コマンドを実行すると、テーブルの内容がすべて削除されてしまうため、コマンドを実行する前に、テーブル名とファイル名に誤りがないか十分確認してください。
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;
以下のコマンドを実行します。
【Windows/Linuxマネージャー共通】
ctdsb=# VACUUM FREEZE ANALYZE VERBOSE b_edi_ao0mykhq1o;
以下のコマンドを実行し、テーブル内の有効なデータをファイルにバックアップします。
バックアップ先のファイル名は、絶対パスで指定してください。
任意のファイル名を指定できますが、テーブルごとに異なるファイル名を指定してください。
【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';
以下のコマンドを実行し、データをディスクから削除します。
【Windows/Linuxマネージャー共通】
ctdsb=# TRUNCATE b_edi_cfsukxfdw3;
以下のコマンドを実行し、事前にバックアップしたファイルから有効なデータをロードします。
コマンドを実行すると、テーブルの内容がすべて削除されてしまうため、コマンドを実行する前に、テーブル名とファイル名に誤りがないか十分確認してください。
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;
以下のコマンドを実行します。
【Windows/Linuxマネージャー共通】
ctdsb=# VACUUM FREEZE ANALYZE VERBOSE b_edi_cfsukxfdw3;
以下のコマンドを実行して、データベースのアクセス状態を終了します。
【Windows/Linuxマネージャー共通】
ctdsb=# \q
以下のコマンドを実行して、ダッシュボード(プール状況)を起動します。
【Windowsマネージャー】
インストールフォルダー\RCXCTMG\Dashboard\bin\dsb_pool_start
【Linuxマネージャー】
/opt/FJSVctdsb/bin/dsb_pool_start.sh
「導入ガイド CE」の「18.14 ダッシュボード(プール状況)のデータベースの設定」を参考に、データベースの設定を見直してください。