質問
データがリストアできない!!
- 投稿日時:2011/03/05 16:39

以下のようにバックアップ後、リストアし、ODBCを利用し、ACCESSでレコード追加したところ、再度、リストアしようとするとエラーが出て、復元できません。
(1)バックアップ
sudo -u test pg_dump -O testdb > /home/test/test-back-1.dmp
(2)リストア
sudo -u test dropdb testdb
sudo -u test createdb -EEUC_JP testdb
sudo -u test psql -e testdb < /home/test/test-back-1.dmp
(3)ODBCを利用し、ACCESSの追加クエリでtbl_tensuのレコードを追加
(4)再度、リストア
sudo -u test dropdb testdb
sudo -u test createdb -EEUC_JP testdb
sudo -u test psql -e testdb < /home/test/test-back-1.dmp
以下のようなエラーが、レコード追加したテーブルも何もしていないテーブルにも出てしまい、正しく復元できません。
ALTER TABLE ONLY tbl_tensu
ADD CONSTRAINT tbl_tensu_primary_key PRIMARY KEY (hospnum, srycd, yukostymd, yukoedymd);
ERROR: multiple primary keys for table "tbl_tensu" are not allowed
CREATE INDEX idx_tensu_formalname ON tbl_tensu USING btree (formalname);
ERROR: relation "idx_tensu_formalname" already exists
CREATE INDEX idx_tensu_kananame ON tbl_tensu USING btree (kananame);
ERROR: relation "idx_tensu_kananame" already exists
CREATE INDEX idx_tensu_kensagrp ON tbl_tensu USING btree (hospnum, srykbn, knsjisgrpkbn);
ERROR: relation "idx_tensu_kensagrp" already exists
CREATE INDEX idx_tensu_name ON tbl_tensu USING btree (name);
ERROR: relation "idx_tensu_name" already exists
何が原因でどうすれば、復元したときにエラーが出なくなるでしょうか?
どなたか、わかる方ご教示ください。
よろしくお願いします。
回答 (1件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.1ベストアンサー20pt
- 回答日時:2011/03/06 03:16
すでにテーブルが存在する状態で、ダンプファイルからリストアしようとした時のエラーのようです。
「(4)再度、リストア」の時の、データベースの再作成(dropdb/createdb) は本当に成功していますでしょうか。
(3)のODBCで接続した時に、testdbにコネクションが張られた状態となり、
testdbがdropできず、残ったままで、リストアしているのではないかという気がします。
(SQL実行中でなくても、コネクションが1つでも張られている限り、
データベースのdropはできません。)
(4)のsudo -u test dropdb testdb 実行後に、psql -l で確認すると、testdbは
消えておりますでしょうか。
(外していたらすいません)
この回答へのお礼
copymasterさんありがとうございます。
ACCESSを終了してから、再度、リストアしたら、エラーがでなくなりました。
このQ&Aを見た人はこんなQ&Aも見ています
- 4ファイルに記述されている複数のSQL文を一度に実行させたい
- 5PostgreSQL リストアエラー
- 6テーブル作成時にエラー?
- 7POSTGRESのデータの格納場所はどこでしょうか?
- 8<div align="center">を使わずにCSSだけでセンター表示する方法?
- 9PostgreSQL8.3系のAutovacuum不備?
- 10castの使用法について(初心者です)
- 11postgresのリストアでDBを自動作成する方法
- 12Inner join と Left joinの明確な違いは?
- 13syntax error, unexpected $end の意味を教えてください
- 14文字列から、特定の文字を削除したい
- 15PostgreSQLのリストアについて
- 16Linuxに登録されているユーザ、グループを確認するには?
- 17pg_restoreの-Cオプションについて
- 18『殿』『様』の使い方
- 19linuxでディレクトリをコピーしようとするとomitting directoryというエラー
- 20シェルコマンドの 2>&1 とはどういう意味でしょうか?
注目の記事
えっ!こんな仕事があるの?
思わず「えっ!こんな仕事があるの?」と言いたくなる世間的に知られていない特殊な職業について迫ります。






