[pgsql-jp: 35499] 巨大なテーブルの移行

K.Tomita tomita @ gnavi.co.jp
2005年 6月 15日 (水) 14:01:03 JST


いつも参考にさせていただいています。
冨田と申します。

現在importのテストで莫大な時間がかかっており
何とか時間を短縮したいと悪戦苦闘しています。

何かしらのヒントでも構いませんので
いただけたら幸いです。

目的
巨大なテーブルを別のPostgreSQLに移動したい。
(可能であればPostgreSQLのバージョンをあげたい。)

環境
PostgreSQL 7.3.4
OS FreeBSD 4.8-RELEASE
(import先の現在のテスト環境)
(移行元と同環境、PostgreSQLのバージョンをあげることも検討中。)

状況

元環境からテーブル単位でDumpファイルを
取得しました。

問題はそもそもこのテーブルのタプルが1億5千万行ほどある点です。
最大の問題点であることは重々承知なのですが
現状必要なデータであるため欠損すること無しに移行を
考えています。

当初、このDumpファイルを別のPostgreSQLにそのままimportしようとした所
そのままでは途中で落ちてしまいました。

ファイルサイズの問題もあるかと思い、splitコマンドで
1千万行ずつにファイルを分けfor文でimportを廻す方法に改めました。

この方法でプロセスが落ちることはなくなったのですが
1千万行毎のimport終了の時間がだんだん長くなっており
10ファイル目で1千万行終了するのに24時間程かかっています。
(最初の1千万行は2時間で終了しました。)

現在実働中のシステムである為、長時間の停止は不可なので
どうにか早く終了する方法を考えています。

何かしらのアドバイス等ありましたら何でも構いませんので
お伝えいただけると幸いです。

よろしくお願いします。


-- 





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