- - PR -
postgreSQL8.2.4でラージオブジェクト無しのdumpを取る方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-01-23 10:45
こんにちは。
postgreSQL8.2.4でラージオブジェクト無しのdumpをとろうとしているのですが、うまくいきません。 取り方がお分かりになる方がいましたら、ご教示ください。 環境 CentOS4.6 postgreSQL8.2.4 やってみたこと ・以前のバージョン(7系)で行っていた-bオブションをつけないpg_dumpコマンドをやってみましたが、ラージオブジェクトが付いてしまいました。 dumpコマンド # pg_dump -v -Fc DB名 > dumpファイル ・-Tオプションでpg_largeobjectテーブルを除外してみましたが、リストアする時にエラーが出て正しくリストアできませんでした。 dumpコマンド # pg_dump -t '*' -T 'pg_largeobject' -v -Fc DB名 > dumpファイル restoreコマンド # pg_restore -v -d DB名 dumpファイル | ||||
|
投稿日時: 2008-01-24 16:23
コマンドライン上でエラーメッセージが出力されてませんか? 8.2系から7.4系のデータダンプを行った際に [-t '*']でマッチするテーブルが見つかりません [-T 'largeobject']でマッチするテーブルが見つかりません とエラーが返ってきましたが、8.2系から8.2系からではエラーが出ないものなんですか? あとテーブル名をシングルクォーテーションで括る必要も無いみたいですが。 | ||||
|
投稿日時: 2008-01-25 13:36
>上総さん
返信ありがとうございます。 8.2.4では-tや-Tオプションをつけてダンプを取るときはエラーは出ませんでした。 リストアする時にエラーがでまして、実際に接続してみたところラージオブジェクト以外のデータも正しく戻っていませんでした。 また、7.4.6のマニュアルを見ると-tオプションにワイルドカードが使えるとは書いていないので7.4.6では使えないのだと思います。 また、-Tのほうはおそらくlargeobjectではなくpg_largeobjectにすればテーブル自体は引っかかると思います。 | ||||
|
投稿日時: 2008-01-25 14:40
試しに8.2.5で[pg_dump -t '*' -f エクスポートファイル名 データベース名]コマンド を投げてみましたが、『マッチするテーブルが見つかりません』と出力されます。 ちょっとした疑問ですが、pg_largeobjectを除く全オブジェクトのダンプが欲しい のでしょうか? それともpg_largeobjectを除く全テーブルのダンプですか? 前者であれば[-t '*']オプションは不要ですよね、後者であればテーブル名のリストを 作成し一つ一つダンプを作成するのも手ではないでしょうか? バグかもしれません(安易にそうとは断定できませんが)ので、試しに[-t '*']を削除 し[-T 'pg_largeobject']のみで試してください。 こちらの環境で[-t]オプションのワイルドカードで成功したのは、[-t *.テーブル名]時 のみがエラーも発生せずに正しくエクスポートされました。 |
1