PostgreSQLのバージョンアップの方法 環境移行



ファイルやDBデータも含めたLinuxサーバの完全移行(Miracle Linux→TurboLinux 8 ServerにOSを変更し、環境を移行して欲しい)の依頼がありました。PostgreSQLのバージョンは、7.1.2→7.2.2-3に変わります。(rpmでのパッケージ管理をご希望なので、PostgreSQLの最新バージョンではありません。)
同じバージョンであれば、pgsqlのディレクトリごとコピーしてしまえば動くのですが、7.1→7.2のようにバージョンが変わる場合は、PostgreSQLの仕様が変わるため、単なるディレクトリのコピーでは、サービスを起動することができません。
そこで、以下のようにデータベースのバックアップをとり、バージョンアップしたデータベースにリストアする必要があります。これにより、新しいバージョンでも動くDBデータの形式になります。

●PostgreSQLのバージョンアップの方法
 1.postgresユーザーで、古いデータベースのバックアップをとる。
    #su - postgres
    $pg_dumpall -o > バックアップファイル名
 2.バージョンアップ後、initdbを行い、postgresユーザーで、データの組み込みを行う。
    $psql -e template1 < バックアップファイル名
   組み込み時のログをファイルに保存する場合は、
    $psql -e template1 < バックアップファイル名 > ログファイル名 2>&1

何も問題がなければいいのですが、ログを見てみると、以下のようなエラーがでていました。

 COPY "abcde" WITH OIDS FROM stdin;
 ERROR: copy: line 127, Invalid EUC_JP character sequence found (0x8252)
 lost synchronization with server, resetting connection

『abcde』というテーブルの127行目に、EUC_JPの範囲外の文字が入っているので、エラーが起こりましたということです。PostgreSQLは、バージョン7.2から、文字コードのチェックが厳しくなったので、エラーになったようです。新しく作成されたデータベースで、該当のテーブルをselect文で抽出してみると、中身は空っぽでした。いろいろな修正方法があると思いますが、1レコードしかないので、手動で値を修正し、新しいテーブルに組み込むことにしました。2005/1/21

参考:PostgreSQLでテーブルをファイルバックアップ&ファイルからテーブルの復元方法



■ホームページ・インターネット

■パソコン・サーバ

■スペシャルリンク

ビデオ→DVDダビング
ウイルス駆除 ファイル救出
絵手紙きよしのちいさな展覧会
千葉市貸事務所
精神病院磯ヶ谷病院
建築設計事務所千葉市
千葉ノーミ株式会社
自宅で酵素風呂
介護スキンケア百歳酵素
お琴・筝の楽譜、曲集
住宅用火災警報器・消防設備
DVDコピー 複製 短納期 千葉市
DVD 劣化 寿命 修復、千葉市
自動リンクはLinka
アクセスアップリンク
自宅で手打ちそば 蕎麦作り
成果報酬型SEO対策、千葉市
データ 復旧 千葉市 ハードディスク
無料レンタルサーバ比較
生活に役立つ情報 URL管理
防犯カメラ・監視カメラ、設置工事、千葉市
防犯カメラの取り付け工事 千葉市
防犯カメラ 監視カメラ 販売価格
NSS製 防犯カメラ 監視カメラの通販
誘導灯・非常灯・非常用照明器具のバッテリー・交換電池 販売価格 通販購入
百人一首 決まり字 和歌意味
釣り 堤防 防波堤ちょい投げ しかけ

ホームページ制作
CGI・JavaScript・プログラム
アクセスアップ・自動リンク
相互リンク・SEO対策

Windows
Linux
セキュリティ

■サービス・お店・会社

■ショッピング

レストラン・飲食店
弁護士・司法書士・行政書士・会計士・税理士
病院
不動産・賃貸
会社

パソコン・家電
雑貨
食品・飲料
美容・健康食品

■趣味・生活

写真・絵画
スポーツ
テレビ・アニメ・芸能・映画
美容・健康・ダイエット
習い事・お稽古・資格
防犯・防災


Powered by アイ・コンピュータサービス

お役立ち情報:次の話題
022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061