- PR -

部分的pg_dumpバックアップと融合

1
投稿者投稿内容
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2005-12-12 16:43
postgresql7.4.8を使用してそこそこ大きめ(現在100カラム×20000行くらい)のデータベースを扱っています。
このデータベースをpg_dumpして別マシンの同一バージョンのPostgresqlに再現したいのですが、
その際制約があり、カラムのうちTimestamp型のデータを持っているある1つのカラムを基準として、リストアする側のデータベースに既に同一時刻のデータが入っている行に関してはリストアを行わない、という事を実現したいのです。

例えばPC1のtable1が以下のようなデータだったとします
myTimeStamp|myColumn1
-----------+----------
2005-12-12 16:30:00|ab123
2005-12-12 16:35:00|bc456
2005-12-12 16:40:00|cd789

そして、PC2のtable1のcolumn1が以下のようなデータであるとします。
myTimeStamp|myColumn1
-----------+----------
2005-12-12 16:40:00|zy111
2005-12-12 16:45:00|yx222
2005-12-12 16:50:00|xw333

PC1のデータベースをダンプしてPC2に再現するに際して、myTimeStampがダブっている16:40:00のデータに関してはPC2に存在しているものを優先として、以下のような形を実現したいのです。
myTimeStamp|myColumn1
-----------+----------
2005-12-12 16:30:00|ab123
2005-12-12 16:35:00|bc456
2005-12-12 16:40:00|zy111
2005-12-12 16:45:00|yx222
2005-12-12 16:50:00|xw333

SELECT文などを使えば楽に行えそうな処理ですが、データベースの運用上、できる限りpg_dumpで実現したいのです。一度pg_dumpで出力した後であれば、ある程度アクロバチックな処理になっても構いません。
キメラの作成のように珍妙な作業と思われるかもしれませんが、ご存知の方は宜しくお願いします。

せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2005-12-12 22:37
引用:

ほまららさんの書き込み (2005-12-12 16:43) より:
その際制約があり、カラムのうちTimestamp型のデータを持っているある1つのカラムを基準として、リストアする側のデータベースに既に同一時刻のデータが入っている行に関してはリストアを行わない、という事を実現したいのです。


まずは、Postgres のドキュメント読みましょう。
http://www.postgresql.jp/document/index.php3

pg_dumpの出力結果とはいったいなんのなのか、がわかると思います。

それがわかれば自ずと自分がやりたい事をするにあたって必要な事がさらに
見えてくると思います。

がんばってください。
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2005-12-21 11:09
返事が送れて申し訳ありません。
pg_dumpの出力結果を格納したファイルを、スクリプトで書き換えるという作業を挟む事で実現できました。
アドバイスありがとうございました。
1

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