電気ウナギ的○○

About Home

PostgreSQL で DB をコピーする

shinoda (2014年11月13日 13:20)
PostgreSQL の話。

テスト用に DB のコピーを作る時、今までは「新しい DB を createdb で作成」「元の DB を pg_dump で丸々ダンプ(pg_dumpall に非ず)」「psql でダンプファイルから新しい DB にリストア」「ユーザ権限関係とか調整」とか色々作業してたんだけど、一発で DB のコピーできたんだね。

新しい DB を作る時に、

$ createdb -T old_db new_db

って感じでテンプレートデータベースとして元の DB を指定すれば、この DB の内容丸コピー(データも含めて)で新しい DB が作成されるんやね~
知らんかった。
まあ、そんなに何度もやることじゃないので、pg_dump 実行してほげほげで困らなかった(もう、この方法を知ってしまったので今後は pg_dump ほげほげ面倒くさいけれど(^^;)んだけど、今後はこの方法で一発やね。

ただ、この時、old_db がその瞬間使われていたら、

createdb: database creation failed: ERROR:  source database "old_db" is being accessed by other users

みたいなエラーが出ちゃう。
この時は、old_db へのセッションプロセスを全部 kill しちゃおう。

$ ps -auxww|grep post

とかすれば、

postgres  7186  0.0  0.0  6468 1600 pts/2    S+   14:20   0:00 psql old_db

こんなプロセスが引っかかるので、

$ kill -9 7186

とかして殺していく。
これで、createdb が問題なく出来るぞ。むふん。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3184

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE