トップ «前の日記(2010-09-30) 最新 次の日記(2010-10-05)» 編集

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|

2010-10-02 pg_dumpのバックアップ形式オプションと圧縮に関するメモ

_ [orca] pg_dumpのバックアップ形式オプションと圧縮に関するメモ

pg_dumpコマンドにはプレインテキスト/カスタムアーカイブ/tar形式といった3種類のバックアップ形式があり、オプションで圧縮も指定できるのでそのメモ。

□ pg_dumpによるバックアップの概要
PosgreSQLデータベースのバックアップコマンドpg_dumpには
下記の3種類のバックアップ形式がある。
  
バックアップ形式リストアのコマンドデフォルトでの圧縮pg_dumpオプション
プレインテキスト(デフォルト)psql×-Fp
カスタムアーカイブpg_restore-Fc
tar形式pg_restore×-Ft
* pg_dumpの-Fオプションの詳細 --------------------------------------------------------------- -F format --format=format 出力形式を選択します。 formatには、以下のいずれかが入ります。 p (plain) プレインテキストのSQLスクリプトファイルを出力します(デフォルト)。 c (custom) pg_restoreへの入力に適したカスタムアーカイブを出力します。 これは、 最も柔軟な形式であり、オブジェクト定義やロードするデータを並び替える ことができます。 また、この形式はデフォルトで圧縮されます。 t (tar) pg_restoreへの入力に適したtarアーカイブを出力します。 このアーカイブ 形式では、並び替えやデータベースオブジェクトを除外するデータベースの リストアを行うことができます。 また、リストア時にデータを選択して リロードすることもできます。 --------------------------------------------------------------- □ バックアップオプションを変えてORCAデータベースで計測してみた バックアップに使用したDBは、jma-receipt 4.5の初期データベース。 テスト環境は、Xeon 3040 + 4GBメモリです。 * バックアップのパターン 1.通常バックアップ $ pg_dump orca > postgres.dump 2.通常バックアップ (圧縮オプション-Z。圧縮レベル:0-9) $ pg_dump -Z 6 orca > postgres.dump2 3.通常バックアップ (gzipにパイプ) $ pg_dump orca | gzip > postgres.dump3 4.カスタムアーカイブ形式でバックアップ $ pg_dump -Fc orca > postgres.dump4 5.tar形式でバックアップ $ pg_dump -Ft orca > postgres.dump5 * バックアップサイズ ------------------------------------------------------------ $ ls -hl postgres.dump* -rw-r--r-- 1 user user 132M 2010-09-15 18:02 postgres.dump -rw-r--r-- 1 user user 12M 2010-09-15 18:02 postgres.dump2 -rw-r--r-- 1 user user 12M 2010-09-15 18:03 postgres.dump3 -rw-r--r-- 1 user user 12M 2010-09-15 18:03 postgres.dump4 -rw-r--r-- 1 user user 132M 2010-09-15 18:03 postgres.dump5 ------------------------------------------------------------ 4.のカスタムアーカイブ形式以外のバックアップは非圧縮なので、2,3のように 明示的に圧縮をかけないと、ORCAのDBの場合dumpサイズが10倍も異なる。 → pg_dumpを行う際はなるべく圧縮を行ないましょう。 (Ubuntu Lucid版の移行手順ではカスタムアーカイブ形式が紹介されています) * バックアップ時間 pg_dumpコマンドの前に、bash組み込みのtimeコマンドを追加して計測。 ----------------------------------------------- パターン1: real 0m11.974s user 0m0.916s sys 0m0.920s パターン2: real 0m14.317s user 0m6.384s sys 0m0.244s パターン3: real 0m12.473s user 0m5.772s sys 0m0.420s パターン4: real 0m13.516s user 0m6.172s sys 0m0.264s パターン5: real 0m12.427s user 0m0.936s sys 0m0.944s ----------------------------------------------- 測定誤差はあるものの、どのパターンでも処理にかかる時間の誤差は小さい。 圧縮を行なった場合は、圧縮処理にuser時間がかかる。 → ダンプ時に圧縮を行なっても所要時間はほとんど変わりません。 * バックアップファイルの形式 fileコマンドの実行結果 ------------------------------------------------ postgres.dump: ISO-8859 text postgres.dump2: gzip compressed data, from Unix postgres.dump3: gzip compressed data, from Unix, last modified: Sun Oct 3 00:34:11 2010 postgres.dump4: PostgreSQL custom database dump - v1.11-0 postgres.dump5: tar archive ------------------------------------------------ □ 関連URL PostgreSQL 8.4 ドキュメント - pg_dump http://www.postgresql.jp/document/8.4/html/app-pgdump.html Let's Postgres - 論理バックアップ(pg_dump と pg_dumpall) http://lets.postgresql.jp/documents/technical/backup/2

_ [PC] 開発やコマンド実行時に役立つチートシートのリンク

devcheatsheet.comは、プログラミングやサーバ設定やコマンドなどが
一目でわかるチートシート(cheat sheet)へのリンクを集めたサイトです。
  
各種プログラミング言語、HTMLやCSS、SQLやアプリケーションフレームワーク
バージョン管理システム、Apacheなどのサーバ設定、viなどのエディタ
AdobeやMS Officeなどのアプリケーションまで広い範囲をカバーしているので
役に立つチートシートがきっと見つかるでしょう。
  
devcheatsheet.com
http://devcheatsheet.com/
devcheatsheet.com - Linux Cheat Sheet
http://devcheatsheet.com/tag/linux/?page=3
Hyperpolyglot - Scripting Languages: PHP, Perl, Python, Ruby, Smalltalk 
http://hyperpolyglot.wikidot.com/scripting

トップ «前の日記(2010-09-30) 最新 次の日記(2010-10-05)» 編集