PostgreSQLエラー「number of page slots needed (20208) exceeds max_fsm_pages (20000)」の原因と解決方法

vacuumdbを実行すると、掲題のエラーが表示されることがある。

《例》
/usr/bin/vacuumdb -U postgres -a -f -z
vacuumdb: vacuuming database "postgres"
NOTICE: number of page slots needed (20208) exceeds max_fsm_pages (20000)
HINT: Consider increasing the configuration parameter "max_fsm_pages" to a value over 20208.

このエラーは、以下のようなログファイルにも記録されていた。
/var/lib/pgsql/data/pg_log/postgresql-Fri.log

このエラーにはヒントも付いており、「max_fsm_pagesの設定値を20208以上に増やすことを検討することを検討してください」ということなので、その通りにしてみる。

vi /var/lib/pgsql/data/postgresql.conf
----------------------------------------------------------------------------------
#max_fsm_pages = 20000 # min max_fsm_relations*16, 6 bytes each

max_fsm_pages = 20208
----------------------------------------------------------------------------------

※/var/lib/pgsql/data/postgresql.confを編集してmax_fsm_pagesの値をデフォルト(初期値)の20000から20208に変更する。

PostgreSQLのサービスを再起動すると設定が反映される。
/etc/rc.d/init.d/postgresql restart ※PostgreSQLの再起動コマンド

これで、問題なくvacuumdbができるようになる。
※今後のことを考えると、20208というギリギリの値ではなく、40000など余裕を持たせた適当な値にしておくとよさそう。

前へ

PostgreSQLエラー「dropdb: database removal failed: ERROR」の原因と解決方法

次へ

PostgreSQLエラー「'psql' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」の原因と解決方法