[pgsql-jp: 36410] 8.1.0へのリストアに失敗

Yumiko Izumi izumi-yumiko @ tokyo.scnet.co.jp
2005年 11月 16日 (水) 17:22:10 JST


いつもお世話になっております。IZUMIです。

先日はVACUUMの件で多数の回答ありがとうございました。
まだ試行錯誤中ですが、環境が手配できたので、バージョンアップ
を試そうとしています。

そこで、使用中のV7.3.8のデータベースをバックアップし、V8.1.0
にリストアしようとしたところ、以下エラーが出てしまいました。
なお、使用中のデータベースには、作成時にconversion_create.sql
を実行して、CONVERSIONをCREATEしています。

------------------------------------
test @ hostname 36: pg_restore -d testDB testDB1116.tar
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 5446; 0 16831 FUNCTION alt_to_mic (integer, integer, cstring, cstring, integer) senju
pg_restore: [archiver (db)] could not execute query: ERROR:  could not find function "alt_to_mic" in file "/home/senju/psql/lib/cyrillic_and_mic.so"
    Command was: CREATE FUNCTION alt_to_mic (integer, integer, cstring, cstring, integer) RETURNS void AS 'cyrillic_and_mic', 'alt_to_mic...
------------------------------------

cyrillic_and_mic.so の中に、alt_to_mic() が無いという
エラーです。
リリースノートを確認したところ、
------------------------------------
UNICODEはUTF8になりました。 
ALTはWIN866になりました。 
WINはWIN1251になりました。 
TCVNはWIN1258になりました。 

以前の名前もまだ使用できます。 
------------------------------------
と書いてありましたが、FUNCTIONに互換性がないのでしょうか・・・。

現在のバックアップ&リストアの手順は以下です。

V7.3.8で
% pg_dump -Ft -b testDB > testDB1116.tar
V8.1.0で
% createdb -T template0 testDB
% pg_restore -d testDB testDB1116.tar

今のところ、回避策として考えたのは、
・V8.1.0でcreatedbしたtestDBにもconversion_create.sqlをあてる
・pg_restoreの-Lオプションを使ってエラーになるFUNCTIONを
 取り除いてからリストア
です。

何かよい方法がありましたら教えてください。
以上よろしくお願いします。




pgsql-jp メーリングリストの案内