EC2インスタンスから同じサブネット上のRDSにpostgresqlデータベースをインポートしようとしていますが、これまでのところ次のようにしています...
1)EC2 DBをダンプする:
pg_dump --Host localhost --port 5432 -Fc --encoding='UTF8' -U postgres ProcessorDB > /home/jboss/proc_dump_jan15.dump
2)EC2から復元:
psql -f /home/jboss/proc_dump_jan15.dump --Host=blahrds.11938475.eu-west-1.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=ProcessorDB
リモートDBに接続できますが、次のエラーが発生します。
psql:/home/jboss/proc_dump_jan15.dump:1: ERROR: syntax error at or near "PGDMP"
LINE 1: PGDMP
REVOKE ALL ON SCHEMA public FROM postgres;
^
GRANT
GRANT
psql:/home/jboss/proc_dump_jan15.dump:5: ERROR: syntax error at or near ""
LINE 1: 'en'
^
psql:/home/jboss/proc_dump_jan15.dump:14: ERROR: syntax error at or near ""
LINE 1: 'free',
^
psql:/home/jboss/proc_dump_jan15.dump:21: ERROR: syntax error at or near ""
LINE 1: 'windows',
これが続くと、次のように変わります。
psql:/home/jboss/proc_dump_jan15.dump:316: ERROR: invalid byte sequence for encoding "UTF8": 0xc2 0x40
psql:/home/jboss/proc_dump_jan15.dump:316: invalid command \?0?4
psql:/home/jboss/proc_dump_jan15.dump:317: invalid command \?????M?
psql:/home/jboss/proc_dump_jan15.dump:318: invalid command \)??LF,?C?{<??y??ݚ???Ɲ???0??{?dV
?
psql:/home/jboss/proc_dump_jan15.dump:321: ERROR: invalid byte sequence for encoding "UTF8": 0xbd
psql:/home/jboss/proc_dump_jan15.dump:331: invalid command \?`?v?ʺ??;6????6??N??.????c?~???&?G(??
psql:/home/jboss/proc_dump_jan15.dump:335: invalid command \@(??n']??sIZ??1VZ?º???????j?+??λ?=L?E??ܡ|c?0t
psql:/home/jboss/proc_dump_jan15.dump:338: invalid command \?A???N??/hL???Q??G??r
psql:/home/jboss/proc_dump_jan15.dump:354: invalid command \??I?$?R?o??¬???NJ?-F'??x?0z??z??hŗc?
psql:/home/jboss/proc_dump_jan15.dump:357: invalid command \x?r?Y??gMb~?墶6wб??m'aem?o????]X?s?????}??u?&?;-xY8?1)?}c??-@??h?K???IA?֒qv??Hs?g??J?DoD?Y?m
psql:/home/jboss/proc_dump_jan15.dump:361: invalid command \??W?]U?22?U-??N?
psql:/home/jboss/proc_dump_jan15.dump:362: invalid command \4??im?@??ښ?S?j???ꨫ?d܊פJ?cu??l!?ް̳u?5+^O??>=?k+]???A??5????~??N???0??:=??ՙM?3zm
psql:/home/jboss/proc_dump_jan15.dump:372: invalid command \HF??w?
psql:/home/jboss/proc_dump_jan15.dump:378: invalid command \g?#?s?t?I,???T?}5???
簡潔にするために短くします...
「エンコーディング「UTF8」の無効なバイトシーケンス」を見つけて、-encoding属性をダンプコマンドに追加しましたが、効果がありませんでした
誰が問題が何であるか知っていますか?ダンプのオプションがありませんか? AWSドキュメントはここでは少し曖昧です
Nb。 EC2データベースはPG 9.0で、RDSデータベースはPG 9.3.5ですが、ダンプ/復元が移行を処理するため、これは問題ないと思いますか?
pg_dump
(カスタム)を含む-Fc
出力はSQLスクリプトではなく、pg_restore
のみが処理できる圧縮アーカイブです。
ダンプファイルをpg_restore
に渡し、その出力をpsql
にパイプすることができます(多くの場合、そのようにして、試行したものに近い):
pg_restore /home/jboss/proc_dump_jan15.dump | psql --Host=blahrds [other options]...
...またはpg_restore
の-d、-h、...およびその他のオプションを使用してデータベースに接続し、psql
の呼び出しをスキップします。
詳細については、pg_restore
9.3のマンページ を参照してください。
Nb。 EC2データベースはPG 9.0で、RDSデータベースはPG 9.3.5ですが、ダンプ/復元が移行を処理するため、これは問題ないと思いますか?
推奨される方法は、9.0データベースに対してpg_dump 9.3を使用してダンプを作成することです。その理由は、新しいバージョンでは常に、古いデータベースを抽出してバージョンに完全にインポートする方法を知っているためです。 pg_dump 9.0がリリースされた時点で、作成者は将来のバージョンでどのような互換性の問題が発生するかわからないため、その逆は当てはまりません。