今回は、Silverの「S2 運用管理 - S2.5 基本的な運用管理作業」からの出題です。
VACUUMではデータファイルのサイズが小さくならないので、ディスク容量を節約するためにもデータファイルが小さくなるVACUUM FULLを定期的に実行することが推奨されている。
自動バキュームとは、cronなどOSのジョブスケジューリング機能を使って定期的にVACUUMを自動実行することを指す。
自動バキュームとは、システムの負荷が小さい時に自動的にVACUUMを実行する機能のことである。
自動バキュームは便利な機能ではあるが、システム運用上、可能であればそれを使わずに、手動でVACUUMを実行することが推奨されている。
バキュームを手動で実行するためには、OSのコマンドラインからvacuumdbコマンドを実行するか、あるいはデータベースに接続してVACUUMコマンドを実行する。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2013年4月12日
PostgreSQLのデータ構造は追記型です。データをDELETEしてもそこには削除マークをつけるだけで、データ領域自体はそのまま残ります。UPDATEではDELETE+INSERTを実行するため、使用するデータ領域が増えます。
削除済みのデータ領域を回収して再利用可能にするための仕組みがVACUUMです。再利用可能になった領域は、次回以降のINSERTで利用されますから、VACUUMを実行すれば、その後、当面の間はデータファイルのサイズが大きくなりません。
VACUUMでは一般にデータファイルのサイズは小さくなりませんが、VACUUM FULLを実行すると、データファイル内のデータの詰め直しを行うので、ファイルサイズが小さくなります。ただし、VACUUM FULLではテーブルロックを取得するなどの副作用もあるため、その実行は推奨されていません。詳しくは以下のページを参照してください。
http://wiki.postgresql.org/wiki/VACUUM_FULL/jaシステムの運用管理において定期的にVACUUMを実行する必要がありますが、PostgreSQLの現在のバージョンでは自動バキュームがデフォルトで有効になっており、それを利用することが推奨されています。自動バキュームでは各テーブルについて更新量が一定の閾値を超えた時に自動的にVACUUMが実行されます。その閾値はデフォルトで適切な値に設定されていますが、必要ならテーブルごとにカスタマイズすることが可能になっています。
VACUUMを手動で実行するには、OSのコマンドラインからvacuumdbコマンドを実行する、あるいはpsqlでデータベースに接続してVACUUMコマンドを実行します。
従って、正解はEです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.