« [shell] やる夫がお手軽監視スクリプトを作成したようです。 | トップページ | やる夫がUSB CD-Rom ドライブの認識に苦戦しているようです。 »

2008-01-07

[postgresql] やる夫がvacuumで苦戦しているようです。

VACUUM について

PostgreSQLの特徴として、追記型アーキテクチャを利用しています。更新・削除時には、以前のデータを残したまま、新しいデータを末尾に追記します。更新・削除が頻繁に行われると、必要としないデータのゴミが蓄積されます。このデータベースの不要領域を回収するのに、VACUUMが用いられます。VACUUMを定期的に行わないとパフォーマンスが悪くなります。
         ____
       /      \  
     /  _ノ  ヽ、_  \ 
    / o゚((●)) ((●))゚o \  Vacuumしないと
    |     (__人__)    |      レスポンスが悪化するお
    \     ` ⌒´     /
   /´           `\
  /  /          l  l   .___
__l  l_¶______/_/__/     ヽ
  \, ´-'ヽ  ̄| ̄ ̄ ̄ ̄|   l二二二二l
    ヾ_ノ   | '''' '   |   l二二二二l
   | 9=ε-8. | '''..--  |   l二二二二l:::..
   |   ..''  |  ''-.  ,|
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄     

$ vacuumdb -avz > /usr/local/postgres/work/vacuum.log.20071114 2>&1

  • -a オプションは全てのデータベースをVacuumします。
  • -v オプションは処理実行中に詳細な情報を表示します。
  • -z オプションはデータベースの統計情報を計算します。

$ tail -f /usr/local/postgres/work/vacuum.log.20071114 2>&1
-----
vacuumdb: vacuuming of database “postgres” failed: ERROR: out of memory
-----

メモリーエラーになってます。”postgresql.conf” の” maintenance_work_mem ”値を変更してやる必要があります。恐らく多くとりすぎたか?256MBくらいが、適当と思われます。

$ vi /usr/local/postgres/PGData/postgresql.conf
-----
maintenance_work_mem = 262144
-----

----------------------------------------

オープンソースを使ったデータベースの構築―ApacheサーバとPostgreSQLでデータベース
藤田 泰徳 山崎 文則
セレンディップセレンディップセレンディップ
定価 : ¥ 3,675
2000-09
amazonで詳しく見る

|

« [shell] やる夫がお手軽監視スクリプトを作成したようです。 | トップページ | やる夫がUSB CD-Rom ドライブの認識に苦戦しているようです。 »

PostgreSQL」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/488651/9758645

この記事へのトラックバック一覧です: [postgresql] やる夫がvacuumで苦戦しているようです。:

« [shell] やる夫がお手軽監視スクリプトを作成したようです。 | トップページ | やる夫がUSB CD-Rom ドライブの認識に苦戦しているようです。 »