[pgsql-jp: 38841] Re: pg_dump で時間がかかる

公手真之 kude @ itboost.co.jp
2007年 10月 9日 (火) 08:59:59 JST


藤沢様

公手ともうします

>     pg_dump -h localhost -d hogedb -U hoge -F c -c -v -f .\dump\hoge_dump.car

-d オプションをやめてみたらどうなりますでしょうか?
-d オプションは確かダンプファイルをcopyでなくinsert形式で吐き出します。
pg_dumpの処理時間は短縮されないかもしれないですが、
-d オプションをつけてダンプしたファイルをrestoreするとめちゃくちゃ時間
がかかります。
※以前 -d オプションはデータベースの指定オプションと勘違いしていました。

pg_dump -h localhost -U hoge -b -Fc hogedb > ファイル名

みたいな感じでどうですか?

On Fri,  5 Oct 2007 22:32:41 +0900 (JST)
藤澤 <qsecofr1 @ hotmail.com> wrote

> 藤澤です。
> 
> 
> Windows の PostgreSQL 8.2.4 で pg_dump でバックアップを取ろうと
> していますが、時間がかかって泣きそうです。
> 
> 
> データベースのサイズを、
>     select pg_database_size('hogedb');
> で確認すると 36.15 GB です。(起動時にVACUUMがかかった直後のサイズです。)
> 
> このバックアップを
>     pg_dump -h localhost -d hogedb -U hoge -F c -c -v -f .\dump\hoge_dump.car
> で取得しようとしたところ、9:30am にスタートして、22:00までかかって、
> 40GBまでダンプファイルのサイズが大きくなりました。
> ※事情により、途中で中断しました。
> 
> 
> 時間がどんどん経過して、焦ると同時に以下のような疑問が湧いています。
>   --------------------------------------------------------------
>   ★疑問1:pg_dump はこんなに時間がかかるのか?
> 
>   ★疑問2:ダンプファイルは、-F c  (custam archive) を指定しているのに、
>             データベースサイズより大きくなるのか?
>   --------------------------------------------------------------
> 
> 疑問1については、以下の情報を見ると、53GB のデータベースを pg_dump -F c 
> で取得した時には、1時間20分ほどで終わっているようです。
>     OSDL DBT-1 によるPostgreSQL8.1.4のバックアップ・リストア性能に関する考察
>     http://ossipedia.ipa.go.jp/capacity/EV0612270347/
>   * Windows かどうかの記述はありませんでしたが。。。
> 
> 
> 
> データの特徴として、
> あるテーブルに、bytea 型の列が2つあり、それぞれに画像
> データ(いずれも約400KB)が格納されていて、それが4万件あります。
>     (400KB + 400KB) × 40,000 = 約32GB
> つまり、データベースのほとんどは、このテーブルが占めています。
> 
> データベースのチューニングは全く行っておらず、postgreSQL.conf の内容は
> 初期値のままです。
> 
> pg_dump を行っている間にもデータの更新を行っていました。
> 
> 
> その他の環境は以下です。
> ------------------------------------------
> Windows Server 2003
> PostgreSQL 8.2.4
> ディスク: 30GB * 6 を、RAID5 構成  (1.3 TB)
> メモリ  : 2GB
> ------------------------------------------
> 
> 
> 
> また、後日チャレンジしてみますが、情報をお持ちの方が居られましたら、
> よろしくお願いします。
> 
> 
> /藤澤
> 
> 





pgsql-jp メーリングリストの案内