[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:51985] PostgreSQL のアップグレード方法 (Etch→Lenny)



 こんにちは。島田です。

 Etch から Lenny にアップグレードしようとしたら、そのままでは 
PostgreSQL のクラスタのアップグレードがうまくできなかったのですが、解決
できましたので報告します。

 Etch から Lenny にアップグレードしようとすると、

   PostgreSQL バージョン 7.4 は既に使われなくなっていますが、サーバおよびク  
   ライアント用パッケージがインストールされたままになっています。最新のパッ  
   ケージ (postgresql-8.3 と postgresql-client-8.3) をインストールして、現   
   在の  クラスタを peg_upgradecluster コマンドを使ってアップグレードしてく   
   ださい (詳細は man ページを参照)。                                        
                                                                             
   postgresql-8.3 のインストールでは自動的にデフォルトのクラスタ 8.3/main    
   が作成されることに注意してください。7.4/main クラスタをアップグレードし   
   たい場合は、既にある 8.3 クラスタを削除する必要があります                 
   (pg_dropcluster --stop 8.3 main 、詳細は manpage を参照してください)。    
                                                                             
   以前のサーバ・クライアントパッケージはもはやサポートされていません。現在  
   のクラスタをアップグレード後、postgresql-7.4 パッケージと                 
   postgresql-client-7.4 パッケージを削除する必要があります。                
                                                                             
   詳細は /usr/share/doc/postgresql-common/README.Debian.gz を参照してくだ   
   さい。

というメッセージが出たので、次のようにやってみました。

$ sudo pg_upgradecluster 7.4 main

すると、このようなエラーが出てしまいました。

Checking for users and groups with the same name...
Creating new cluster (configuration: /etc/postgresql/8.3/main, data: /var/lib/postgresql/8.3/main)...
initdb: encoding mismatch
The encoding you selected (UTF8) and the encoding that the
selected locale uses (EUC_JP) do not match.  This would lead to
misbehavior in various character string processing functions.
Rerun initdb and either do not specify an encoding explicitly,
or choose a matching combination.
Error: initdb failed
Error: Could not create target cluster

そこで、ホーム・ディレクトリで、

$ cp /usr/bin/pg_upgradecluster .

として、~/pg_upgradecluster の 295 行目を、

push @argv, ('--encoding', $encoding) unless 'UTF8'; #$locale or $lc_ctype;

というように変更してから、

$ sudo ./pg_upgradecluster 7.4 main

としてみましたら、

Checking for users and groups with the same name...
Creating new cluster (configuration: /etc/postgresql/8.3/main, data: /var/lib/postgresql/8.3/main)...
Moving configuration file /var/lib/postgresql/8.3/main/postgresql.conf to /etc/postgresql/8.3/main...
Moving configuration file /var/lib/postgresql/8.3/main/pg_hba.conf to /etc/postgresql/8.3/main...
Moving configuration file /var/lib/postgresql/8.3/main/pg_ident.conf to /etc/postgresql/8.3/main...
Configuring postgresql.conf to use port 5433...
Disabling connections to the old cluster during upgrade...
Disabling connections to the new cluster during upgrade...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Creating globals...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Copying old configuration files...
Stopping target cluster...
Stopping old cluster...
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5433)...
Starting target cluster on the original port...
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with

  pg_dropcluster 7.4 main

となり、クラスタのアップデートに成功しました。


----------------------------------------------------------------------
Mail: shimaden@xxxxxxxxx
Home Page: http://www.din.or.jp/~shimaden/
島田博幸
Hiroyuki Shimada
----------------------------------------------------------------------