- PR -

PostgreSQLでpg_dumpしたデータから部分的に復元したいのですが。。

1
投稿者投稿内容
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2006-03-29 20:45
 いつもお世話になっております。
PostgreSQL 7.2.1 RH9 を使用しております。

 pg_dumpで生成したファイルを指定して psql -e < ファイル名 で復元する際に、指定したテーブルのデータだけを復元したいのですが、そのようなことが可能でしょうか。。

 何卒ご教授よろしくお願いします。
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-03-29 21:00
こんばんは。

どのような形式で pg_dump しているかわかりませんが、
pg_restore の -t table, --table=table では要望を満たせませんか?

もしくは一旦別 DB に全部復元して必要な部分だけを再度 dump するとか?
※面倒ですよね。。。

一度、下記 URL で確認してみてください。
http://www.postgresql.jp/document/pg721doc/reference/app-pgrestore.html
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2006-03-29 21:09
ありがとうございます!!!
早速試してみます!!!
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2006-03-29 23:48
 お世話になります。
> どのような形式で pg_dump しているかわかりませんが
$pg_dump mydb > mydb.dump
で生成いたしました。


 $pg_restore -d mydb -t t1 mydb.dump
とやってみましたら
http://ml.postgresql.jp/pipermail/pgsql-jp/2002-September/010932.html
と同じように「ファイルが大きすぎる!」と出力されて失敗しました。
ちなみにmydb.dumpは30Gくらいあります。

 「Large File Supportを有効にしてコンパイルされてないのでは?」とありますが、具体的にどのようにすればよろしいのでしょうか。

 初心者で大変申し訳ございませんが、なにとぞご教授のほどよろしくお願いいたします。



 
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-03-30 09:35
引用:

McLarenさんの書き込み (2006-03-29 23:48) より:
 「Large File Supportを有効にしてコンパイルされてないのでは?」とありますが、具体的にどのようにすればよろしいのでしょうか。



http://www.postgresql.jp/document/pg721doc/reference/app-pgdump.html
> mydb というラージオブジェクトを含むデータベースを tar ファイルにダンプするには下記のようにします。
> $ pg_dump -Ft -b mydb > db.tar

-b
--blobs
ラージオブジェクトをダンプに含めます。

dump を再度行える状況であれば pg_dump コマンドのオプションを再検討されても良いと思います。

#追記
あ、すみません。
上記は Large File Supportを有効にしてコンパイルの話ではなかったですね。

対象ファイルが30GBとありますが、そもそもOS側?シェル側?でのlimitに抵触しているというのもあるのではないでしょうか?
#RHL8の時にデフォのまま perl でファイルをいじっていた際に2GBの壁がありました。
リンク先のMLで紹介されいるサイトにも
> Maximum On-Disk Sizes of the Filesystems
の項目で触れられてますよね。

そこら辺の知識が深くは無いので、他の識者の方のアドバイスを待った方が良いと思います。
お役に立てずに申し訳ないです。


[ メッセージ編集済み 編集者: あるかな 編集日時 2006-03-30 09:47 ]
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2006-03-30 16:55
ご教授ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)