[pgsql-jp: 33922] データベースのデータ移行について。
shimotori
simotori @ sofu.co.jp
2004年 8月 25日 (水) 18:07:07 JST
始めまして、霜鳥 恵子と申します。
今回始めて、こちらにメールを出しますが、ご教授の方を宜しくお願い
致します。
初心者的な質問で申し訳ありませんが、つい最近、Red Hat Linx 9をセッ
トアップしました。
以前(かなり昔)、友達がインストールしました Red Hat Linux 7.0.1Jのサ
ーバから友達のシステムを私がインストールした、 Red Hat Linux 9に移行
しました。
システム(php)の方は動きましたが、データベースのデータ移行(pg_dump)
で、Postgresのバージョンが違うため、データベースのデータ移行に失敗し
ました。
【作業手順】
1. Red Hat Linux 7.0.1JサーバよりPHPのソースとPostgresのデータベ
ースのデータをRed Hat Linux 9にデータ移行。
○ pg_dumpコマンドでデータベースデータをバックアップ。
$ pg_dump My_Diary > 20040820_My_Diary.out
$ ls
$ 20040820_My_Diary.out
↓
2. Red Hat Linux 9でシステム稼動確認。(システムは、動きました)
↓
3. データベースのデータ復元として、Red Hat Linux 9 のデータベース
に20040820_My_Diary.outを復元をします。
○ 作業手順&エラー内容?
3-1. $ createdb -E EUC-JP My_Diary
CREATE DATABASE
3-2. $ psql My_Diary < 20040820_My_Diary.out
You are now connected as new user postgres.
ERROR: stat failed on file '/usr/local/pgsql/lib/plpgsql.so': そのようなファイルやディレクトリはありません
NOTICE: CreateProceduralLanguage: changing return type of function plpgsql_call_handler() from OPAQUE to
LANGUAGE_HANDLER
CREATE LANGUAGE
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
ERROR: copy: line 323, Invalid EUC_JP character sequence found (0xc000)
lost synchronization with server, resetting connection
ERROR: copy: line 827, Invalid EUC_JP character sequence found (0xa500)
lost synchronization with server, resetting connection
ERROR: copy: line 5, Invalid EUC_JP character sequence found (0xbb00)
lost synchronization with server, resetting connection
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
NOTICE: CreateTrigger: changing return type of function functrgbdelmstuser() from OPAQUE to TRIGGER
実行した結果、上記のようなエラー内容が発生しました。
Red Hat Linux 7.0.1JサーバとRed Hat Linu x 9の環境(パス)が違う為、
「plpgsql.so」がありませんと言われました。
ERROR: stat failed on file '/usr/local/pgsql/lib/plpgsql.so': そのようなファイルやディレクトリはありません( ソース版のパス)
↓
'/usr/lib/pgsql/plpgsql.so'( RPM版のパス)に修正。
あと、「plpgsql_call_handler()」がわかりませんと言っているよう
に思われます?。(^^;???
やはり、ソース版の環境からRPM版の環境にしたのがまずいのですかね。(>_<)/
このような場合、どうように対処したら宜しいのかご教授下さい。
【データベース移行対策】
データベースのデータ移行対策としまして、下記のように考えましたが
他に、良い方法があったら教えて下さい。
■ 対策1
1. 「.CSV」ファイルとして、データベースのデータを出力する。
Red 7の方で、ブラウザ画面より、データベースのデータを「.CSV」ファイル
として出力する画面を作成してテーブル件数分、「.CSV」ファイルを
ローカルPC上にDLする。
2. Red 9の方で、予め必要なだけのテーブルを作成し、「.CSV」ファ
イル取り込み用のWeb画面を作成する。
1 の時にDLした、「.CSV」ファイルを予め作成した。 Web画面で取
り込み各テーブルに書き込む。
※ この場合だと、テーブルの件数が多いとかなり時間がかかります。
また、「.CSV」ファイルのDLや取り込みは手動でしますので取り込み忘
れ等が発生する確率が高いです。
■ 対策2
Red 7とRed 9のpg_dumpファイル(テキストエディタで展開)を比
較し、Red 9用にバックアップファイルを書き換える。
※ 地道ですが、確実な方法だと思います。
○ シェルスクリプトを利用して、自動的にデータベースのデータを出
力、取り込むやり方の方がいいと思いますが、いい案が浮かびません。
【開発( セットアップ環境)】
Red Hat Linx 7.0.1J( あすか §^。^§/)
apache_1.3.27( ソース版)
postgresql-7.1.3( ソース版)
php-3.0.18-i18n-ja-2( ソース版)
phplib-7.2d( シンボリックリンクのみ)
Red Hat Linx 9( けいこ (^。^)/)
httpd-2.0.40-21( RPM版 ディフォルトインストール)
postgresql-7.3.2-3( RPM版 ディフォルトインストール)
php-4.2.2-17( RPM版 ディフォルトインストール)
どうか、ご教授を宜しくお願いします。
*〜*〜*〜**〜*〜*〜**〜*〜*〜**〜*〜*〜**〜*〜*〜*
keiko
*〜*〜*〜**〜*〜*〜**〜*〜*〜**〜*〜*〜**〜*〜*〜*
pgsql-jp メーリングリストの案内