お問い合わせ
03-5979-2701
PowerGres
リリースノート

PowerGres Plus (Linux 版) 2.0 集約パッチ第 4 版リリースノート

初出
2006 年 1 月 13 日
最終更新
2006 年 1 月 13 日
****************************************************************************
                                修正説明書                                  
----------------------------------------------------------------------------
                修正番号:PGPLUS20C-04                                      
                製品名  :PowerGres Plus                                    
                世代    :V2.0L10                                           
****************************************************************************

Linuxは、Linus Torvaldsの米国およびその他の国おける登録商標あるいは商標
です。

============================================================================

本修正は、問題発生顧客への提供、あるいは重大な問題を未然防止する目的で提供
する修正です。

┌─────────────※修正の適用の前に※────────────┐
│修正適用に際しては、問題発生時の復旧に備え、事前に適用システムのバック│
│アップを取得することを推奨します。                                    │
|                                                                      │
│*動作OS                                                               │
│    Turoblinux 10 Server                                              │
|                                                                      │
│*修正適用前の必要資源                                                 │
│    ダウンロードしたファイルは圧縮データとなっています。              │
│    修正適用前に解凍が必要です。必要なディスク容量は以下のとおりです。│
│      必要ディスク容量:  107MB                                       │
|                                                                      │
│*修正適用時の必要資源                                                 │
│      必要ディスク容量:/usr/local   2800KB (増加分)                  │
│                        /var        54724KB                           │
│                                    (増加分:復元のための退避量含む)   │
│      必要メモリ量    :特別なメモリは必要としません。                │
|                                                                      │
│*修正適用時間の目安   : 約 3分 (測定CPU:PentiumIII 866MHz MEM:256MB) │
│  ※修正の適用に必要な大まかな時間です。システム状態や機種により値は、│
│    異なります。また、本時間には、リブート時間は含みません。          │
└───────────────────────────────────┘

  0.修正について(必ずお読みください)

    (1) 修正の提供情報
       ・README.TXT  ・・・実施時の留意事項、製品固有の説明(本書)
       ・update.sh   ・・・修正適用コマンド
       ・backout.sh  ・・・修正復元コマンド
       ・dlib        ・・・修正復元用パッケージ
       ・pef         ・・・修正パッケージ

    (2) 修正適用時の注意事項
       ・修正で提供される修正パッケージは全て適用してください。
        (修正パッケージを選択実施しないでください。動作保証が出来ません)

    (3) 修正適用後の注意事項
       ・セキュリティ問題の修正
         今版より、ベースとして使用するPostgreSQLのバージョンが、7.4.8になり
         ました。PostgreSQL 7.4.8では、以下のセキュリティ問題の対応が行われ
         ています。

         権限のないユーザが、組込みの符号化変換関数をSQLのコマンドから直接呼
         び出すことができ、これらの関数の引数に悪意のある値が指定された場合
         の安全性に問題がありました。

         修正モジュールの適用後に、インスタンス管理者の権限で以下を実行して
         ください。これにより、セキュリティ問題を取り除くことができます。

         インスタンスが複数存在する場合は、インスタンスごとに以下の手順を実
         行してください。

         1. template0以外のすべてのデータベースで、以下の手続きを実行します。

            BEGIN;
            UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
            WHERE pronamespace = 11 AND pronargs = 5
                  AND proargtypes[2] = 'cstring'::regtype;
            COMMIT;

            上記のUPDATEコマンドにより90行が更新されます。結果が異なる場合は、
            コミットの代わりにロールバックを実行し、原因を調査してください。

         2. template1データベースで、以下の手続きを実行します。
            
       UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

         3. template0で、手順1に示した手続きを実行します。

         4. template1データベースで、以下の手続きを実行します。

       UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

       ・CREATE CONVERSIONコマンドについてのマニュアル修正
         PostgreSQL 7.4.8では、上記のセキュリティ問題の対応に伴い、"PostgreSQL
         7.4文書"の". リファレンス − . SQLコマンド"に記載されているCREATE
         CONVERSIONコマンドの記事が修正されています。PowerGres Plusに付属す
         るマニュアルは、修正モジュールの適用によって修正されないため、
         PostgreSQL 7.4.8で行われたマニュアル修正の内容については、以下の記事
         を参考にしてください。

         PostgreSQL 7.4.8から、CREATE CONVERSIONコマンドのパラメータに指定す
         る符号化変換関数の形式が変更されています。CREATE CONVERSIONコマンド
         のパラメータには、以下の形式の符号化変換関数を指定する必要がありま
         す。

       conv_proc(
           integer,  -- 変換元符号化方式ID
           integer,  -- 変換先符号化方式ID
           cstring,  -- 変換元文字列(ヌルで終るC言語文字列)
             internal,  -- 変換先文字列(ヌルで埋められたC言語文字列)
           integer   -- 変換元文字列長
       ) RETURNS void;


  1.修正パッケージ一覧

      esm4pgsql-devel-2.0-2.i586.rpm
      esm4pgsql-edmf-2.0-4.i586.rpm
      esm4pgsql-gui-2.0-5.i586.rpm
      esm4pgsql-jre-2.0-2.i586.rpm
      esm4pgsql-tomcat-2.0-2.i586.rpm
      pgplus-2.0-3.i586.rpm
      pgplus-devel-2.0-5.i586.rpm
      pgplus-develsv-2.0-4.i586.rpm
      pgplus-html-2.0-3.i586.rpm
      pgplus-libs-2.0-2.i586.rpm
      pgplus-server-2.0-5.i586.rpm

  2.適用条件

    −  スーパーユーザ(root)の権限で適用してください。
    −  PowerGres Plusのインスタンスが停止している必要があります。


  3.適用方法

      (1) 業務アプリケーションを停止します。

      (2) すべてのインスタンスを停止します。

      (3) スーパーユーザになる。

      (4) 以下のコマンドを実行します。
        ┌──────────────────────────────┐
        │# /etc/init.d/pgxadmin stop <Enter>                         │
        └──────────────────────────────┘

      (5) ダウンロードした修正を解凍します。

          例:# tar zxvf PGPLUS20C-04.tar.gz <Enter>

      (6) 以下の様に入力して適用します。
        ┌───────────────────┐
        │# cd PGPLUS20C-04 <Enter>             │
        │# ./update.sh <Enter>                 │
        └───────────────────┘
          ※修正適用後は、解凍したデータは不要ですので削除してください。

      (7) 以下のコマンドを実行します。
        ┌──────────────────────────────┐
        │# /etc/init.d/pgxadmin start <Enter>                        │
        └──────────────────────────────┘

      (8) スーパーユーザから抜ける。

      (9) すべてのインスタンスを起動します。

      (10) 業務アプリケーションを起動します。


  4.削除方法

      (1) 業務アプリケーションを停止します。

      (2) すべてのインスタンスを停止します。

      (3) スーパーユーザになる。

      (4) 以下のコマンドを実行します。
        ┌──────────────────────────────┐
        │# /etc/init.d/pgxadmin stop <Enter>                         │
        └──────────────────────────────┘

      (5) 以下の様に入力して削除します。
        ┌───────────────────────┐
        │# cd /var/pgplus20/PGPLUS20C-04 <Enter>       │
        │# ./backout.sh <Enter>                        │
        └───────────────────────┘
          ※修正の削除が正常に終了すると、復元のためのバックアップファイルは
            コマンドにより削除されます。

      (6) 以下のコマンドを実行します。
        ┌──────────────────────────────┐
        │# /etc/init.d/pgxadmin start <Enter>                        │
        └──────────────────────────────┘

      (7) スーパーユーザから抜ける。

      (8) すべてのインスタンスを起動します。

      (9) 業務アプリケーションを起動します。


  5.その他の留意事項

    1)  適用コマンド(update.sh)ではファイルシステムの空き領域のチェックを行 
        っていないため、事前に空き領域の確認を行ってください。


  6.修正内容

─┼────────┼───────────────────────────
No│修正番号        │修正内容                                              
─┼────────┼───────────────────────────
 1│PGPLUS20C-01    │pg_dumpコマンド、pg_dumpallコマンド実行または応用プ   
  │                │ログラムからSET TRANSACTION文を実行すると、"SET       
  │                │TRANSACTION ISOLATION LEVEL must be called before     
  │                │any query"のエラーが発生する場合がある。              
─┼────────┼───────────────────────────
 2│PGPLUS20C-02    │numeric型を含む2個以上のカラムをインデックスとして   
  │                │定義している場合、numeric型カラムより後ろに定義され   
  │                │たカラムに対する条件式が正しく評価されず、SQL文の結   
  │                │果が正しく得られない場合がある。                      
─┼────────┼───────────────────────────
 3│PGPLUS20C-02    │postgreSQLを"7.4.5"から"7.4.7"に対応した。            
─┼────────┼───────────────────────────
 4│PGPLUS20C-02    │timestamp with time zone型のカラムに対する検索条件を  
  │                │含んだ処理を実行すると、正しい結果が得られない(結果  
  │                │件数が少なくなる)場合がある。                        
─┼────────┼───────────────────────────
 5│PGPLUS20C-02    │pgx_dmpallコマンドにアクセス禁止状態の資源を検出する  
  │                │機能を追加                                            
─┼────────┼───────────────────────────
 6│PGPLUS20C-03    │以下の条件のときに、エラーメッセージから原因を特定でき
  │(PG38374)       │ず、問題を解決できない。
  │                │  1) OSによるディスクに対するI/O処理において、ハードウ
  │                │   ェア、デバイスドライバまたはOSが誤動作する。かつ、
  │                │  2) OSのシステムコールが不正な情報を返却する。このよ
  │                │   うな状況の例として、次のものがある。
  │                │  2-1) システムコールが失敗したにもかかわらず、errnoの
  │                │     値は0となっており、失敗の原因がerrnoに設定されて
  │                │     いない。
  │                │  2-2) ディスクから読み出した内容が誤っており、前回デ
  │                │     ィスクに書き出した内容と異なってしまっている。
─┼────────┼───────────────────────────
 7│PGPLUS20C-03    │以下の条件を満たす場合、PostgreSQL Plus Administrator 
  │(PG39581)       │の「データベースのバックアップ」を実行すると、エラーメ
  │                │ッセージが表示されず、かつ、「データベースのバックアッ
  │                │プ」画面のバックアップ状況が更新されない場合がある。
  │                │そのため、利用者にバックアップがエラーになったことがわ
  │                │からない。
  │                │  1) 以下のいずれかの条件を満たしている。
  │                │    a) データベースにアクセス禁止状態の資源が存在する
  │                │    b) メモリ不足が発生している
  │                │    c) バックアップディレクトリを配置したディスクが枯
  │                │     渇している
  │                │    d) インスタンスディレクトリを配置したディスクが破
  │                │     壊されている
─┼────────┼───────────────────────────
 8│PGPLUS20C-03    │サーバプログラミングにおいて、C言語で作成したユーザ定
  │(PG39613)       │義の関数をコンパイルすると、インクルードファイルが存在
  │                │しないという旨のコンパイルエラーが発生し、プログラムを
  │                │作成することができない。
─┼────────┼───────────────────────────
 9│PGPLUS20C-03    │以下の条件の場合に、PostgreSQL Plus Administratorが下
  │(PG39704)       │記のエラーメッセージをダイアログで表示し、ログイン前の
  │                │画面に戻ってしまうことがある。以降ログインすることがで
  │                │きず、誤って指定した設定情報を修正することができない。
  │                │・ エラーメッセージ
  │                │  1: 処理中にエラーが発生しました。しばらくして再度実
  │                │  行してください。改善されない場合はPostgreSQL Plusの
  │                │  実行環境が壊れている可能性があります。再度環境構築を
  │                │  行ってください。以下に詳細情報が表示されている場合、
  │                │  それに従って対処して下さい。 
  │                │・ 条件
  │                │  1. pgx_setupでデータベースのバッファサイズに、実際に
  │                │    は獲得できない大きさのサイズを指定して実行している。
  │                │  かつ、
  │                │  2. Administratorを起動してログインしている。
  │                │  または、
  │                │  1. Administratorでデータベースのバッファサイズに、実
  │                │    際には 獲得できない大きさのサイズを指定し、確定し
  │                │    ている。
  │                │  かつ、
  │                │  2. Administratorを終了し、Administratorを再起動して
  │                │    ログインしている。
  │                │  または、
  │                │  1. Administratorでデータベースのアーカイブログファイ
  │                │    ルのサイズを大きく変更し、変更処理中にエラーが発生
  │                │    している。
  │                │  かつ、
  │                │  2. Administratorを終了し、Administratorを再起動して
  │                │    ログインしている。
─┼────────┼───────────────────────────
10│PGPLUS20C-03    │以下の条件に一致する場合、システムがダウンする場合があ
  │(PG40230)       │る。
  │                │  1) bytea型、bit型、varbit型、inet型、cidr型のいずれ
  │                │   かのデータ型のカラムを含んだテーブルを定義する。
  │                │   かつ、
  │                │  2) 当該テーブルに対して、以下のいずれかの処理を実行
  │                │   する。
  │                │    2-1) 当該カラムを2列目以降に含む複数列インデック
  │                │       スを定義する。または、
  │                │    2-2) 当該カラムを2列目以降に含む複数列インデック
  │                │       スの定義後に、高速コピー機能により、ファイルか
  │                │       らデータのコピーを実行する。または、
  │                │    2-3) 当該カラムを2列目以降に含む複数列インデック
  │                │       スの定義後に、行の挿入処理を実行する。または、
  │                │    2-4) 当該カラムを2列目以降に含む複数列インデック
  │                │       スの定義後に、当該テーブルの行の更新処理を実行
  │                │       する。または、
  │                │    2-5) 当該カラムを2列目以降に含む複数列インデック
  │                │       スの定義後に、検索条件として、複数列インデック
  │                │       スにおいて当該カラム以前の列として定義されてい
  │                │       るすべての列に対する条件を含む検索処理を実行す
  │                │       る。
─┼────────┼───────────────────────────
11│PGPLUS20C-03    │以下の条件を満たす場合、条件1)、条件2)の後に、
  │(PG40310)       │pgx_rcvall コマンドを実行すると、以下のメッセージを出
  │                │力して異常終了する。
  │                │
  │                │pgx_rcvall could not recovery
  │                │No backup files exist in the directory:(バックアップデ
  │                │ィレクトリ)
  │                │Please specify a backup directory correctly adn try 
  │                │again.
  │                │pgx_rcvall failed.
  │                │
  │                │  1) 以下の A、B いずれかの条件を満たしている。
  │                │    A) インスタンス管理者のクライアント認証方式を 
  │                │     trust 以外に設定している場合
  │                │    B) max_connections で設定した最大数分のアプリケー
  │                │     ションをデータベースサーバに接続している場合
  │                │  かつ、
  │                │  2) 条件1)の状態で、pgx_dmpallコマンド、または、
  │                │   PostgreSQL Plus Administrator の「データベースのバ
  │                │   ックアップ」の実行が、アクセス禁止状態の資源が存在
  │                │   しているために異常終了する。
  │                │   このときに出力されるメッセージは以下のとおりである
  │                │   。
  │                │     ERROR:qdg13155u: 資源's*'はアクセス禁止状態です
  │                │
  │                │ただし、条件2)のエラー事象の発生後に、以下の条件を満た
  │                │す場合には、本障害は発生しない。
  │                │
  │                │  イ)条件2)で検出したアクセス禁止状態の資源がテーブル
  │                │    、または、インデックスのいずれかである。
  │                │  かつ、
  │                │  ロ) 条件2)で検出したアクセス禁止状態の資源に対して
  │                │    、以下のいずれかの操作により、アクセス禁止状態を解
  │                │    除している。
  │                │      a) TRUNCATE コマンド
  │                │      b) REINDEX コマンド
  │                │      c) DROP コマンド
  │                │  かつ、
  │                │  ハ)ロ)の実行後に、pgx_dmpallコマンド、または、
  │                │    PostgreSQL Plus Administrator からのバックアップの
  │                │    実行が、正常に終了している。
─┼────────┼───────────────────────────
12│PGPLUS20C-03    │PowerGres Plusマニュアルビューアを起動し、終了すると、
  │(PG40315)       │以下の条件に合致するファイルが不当に削除される。
  │                │1) PowerGres Plusをインストールしたフォルダのあるドラ
  │                │   イブの直下に配置されている。かつ、
  │                │2) ファイル名の拡張子に""txt""の文字列を含んでいる
  │                │   (*.txtと*.txt*)。
─┼────────┼───────────────────────────
13│PGPLUS20C-03    │以下の条件において、Administratorが、下記
  │(PG40446)       │の不当なエラーを画面に表示する場合がある。(本現象は、
  │                │不当なエラーが画面に表示されるが、バックアップは続行さ
  │                │れる。)
  │                │ Http − 500 − InternalError
  │                │1)Administratorで「データベースのバック
  │                │    アップ」メニューから「バックアップ」をクリックして
  │                │    、バックアップを実行している。かつ,
  │                │2)1)のバックアップ中に表示される「表示更新」ボタン
  │                │   をクリックしている。
  │                │または、
  │                │1)Administratorで「データベースの詳細設
  │                │    定」メニューから以下のいずれかをクリックして、設定
  │                │    を変更している。かつ、
  │                │  − 「文字コードとロケールの変更」
  │                │  − 「バックアップの設定」
  │                │  − 「テンポラリログ量の変更」
  │                │  − 「アプリケーションとの通信の設定」
  │                │  − 「SQLオプション」
  │                │  − 「使用メモリの変更」
  │                │2)1)の後、「データベースのバックアップ」メニューを
  │                │    クリックし、「表示更新」ボタンをクリックしている。
─┼────────┼───────────────────────────
14│PGPLUS20C-03    │以下の条件を満たす場合に、pgx_rcvallコマンドを実行する
  │(PG40833)       │と、PostgreSQL Plus Administrator の「データベースの詳
  │                │細設定」で変更した内容が、 変更前の内容に戻ってしまう
  │                │。
  │                │  1-1) 以下のいずれかの条件を満たしている。
  │                │     a) バックアップディレクトリを配置したディスクが枯
  │                │      渇している。
  │                │     b) メモリ不足が発生している。
  │                │  かつ、
  │                │  1-2)条件1-1)の状態で、PostgreSQL Plus Administrator
  │                │     の「データベースの詳細設定」で、以下のいずれかの
  │                │     変更が正常に終了している。
  │                │     a) 「文字コードとロケールの変更」
  │                │     b) 「アプリケーションとの通信の設定」
  │                │     c) 「SQLオプション」
  │                │     d) 「使用メモリの変更」
  │                │  または、
  │                │  2) PostgreSQL Plus Administrator の 「データベースの
  │                │   詳細設定」の「テンポラリログ量の変更」の設定値の変
  │                │   更が正常に終了している。
  │                │  かつ、
  │                │  3) 1-2) または、2)の操作後、以下のいずれかの操作を実
  │                │   行していない。
  │                │     A) PostgreSQL Plus Administrator から「データベー
  │                │      スのバックアップ」
  │                │     B) バックアップコマンド (pgx_dmpall)
  │                │     C) バックアップコマンド (pgx_dmpall -c)
─┼────────┼───────────────────────────
15│PGPLUS20C-03    │以下の条件の場合に、PowerGres Plus Administratorの起動
  │(PG41466)       │に数秒程度の時間がかかることがある。
  │                │  −  PowerGres Plusをインストールした後に初めて
  │                │    Administratorを起動している
─┼────────┼───────────────────────────
16│PGPLUS20C-03    │以下の条件のとき、テーブルに対する処理が正しく行われな
  │(PG41763)       │い場合がある。
  │                │1) 複数の列を持つテーブルを定義している。かつ、
  │                │2) 列の一部がNULL値であるような行を当該テーブルが持
  │                │   つ。かつ、
  │                │3) 以下のいずれかの処理を実行する。
  │                │   3-1) 当該テーブルに対して、当該行のNULL値を持つ列お
  │                │        よびNULL値以外の値を持つ列を含む、複数列の一意
  │                │        インデックスを作成する。または、
  │                │   3-2) 当該テーブルに対して、3-1と同じ条件の複数列の
  │                │        一意インデックスの作成後、インデックスが作成
  │                │        された複数列のうち、当該行のNULL値を持つ列が同
  │                │        じくNULL値を持ち、それ以外の列については当該行
  │                │        のそれぞれの列と等しい値を持つ行を、コピー機能
  │                │        によりファイルからテーブルにコピーする。または
  │                │   3-3) 当該テーブルに対して、3-1と同じ条件の複数列の
  │                │        一意インデックスの作成後、インデックスが作成さ
  │                │        れた複数列のうち、当該行のNULL値を持つ列が同じ
  │                │        くNULL値を持ち、それ以外の列については当該行の
  │                │        それぞれの列と等しい値を持つ行を、テーブルに挿
  │                │        入する。または、
  │                │   3-4) 当該テーブルに対して、3-1と同じ条件の複数列の
  │                │        一意インデックスの作成後、インデックスが作成さ
  │                │        れた複数列のうち、当該行のNULL値を持つ列が同じ
  │                │        くNULL値を持ち、それ以外の列については当該行の
  │                │        それぞれの列と等しい値を持つ行で、テーブルを更
  │                │        新する。
─┼────────┼───────────────────────────
17│PGPLUS20C-03    │以下の条件の時、nextval関数を使用して次回値を取得する
  │(PG42384)       │場合、または、連番型のデータ型を定義しているテーブルに
  │                │対してinsert文またはcopy文を実行する場合、シーケンスが
  │                │限界値に達していないのに、限界値に達したとのエラーとな
  │                │る場合がある。
  │                │本現象が発生した場合には、次のエラーメッセージが出力さ
  │                │れる。
  │                │昇順のシーケンスの場合:
  │                │  "ERROR: シーケンス名.nextval: reached MAXVALUE
  │                │                                            (最大値)"
  │                │降順のシーケンスの場合:
  │                │  "ERROR: シーケンス名.nextval: reached MINVALUE
  │                │                                            (最小値)"
  │                │エラーメッセージ中のシーケンス名、最大値、最小値には、
  │                │以下の値が出力されます。
  │                │  シーケンス名:処理対象のシーケンス名
  │                │  最大値:処理対象のシーケンスの最大値
  │                │  最小値:処理対象のシーケンスの最小値
  │                │1)  シーケンスがサイクリックに使用されない定義となって
  │                │    いる。かつ、
  │                │2)  シーケンスの現最終値から限界値までで、生成可能なシ
  │                │    ーケンス値の個数が33以下になっている。かつ、
  │                │3)  以下のいずれかの条件を満たす。
  │                │  3-1)  データベース接続後、初めて処理するシーケンスで
  │                │        ある。または、
  │                │  3-2)  シーケンスの現在値設定(setval関数実行)後に初め
  │                │        て処理するシーケンスである。または、
  │                │  3-3)  シーケンスの定義変更(ALTER SEQUENCE文実行)後に
  │                │        初めて処理するシーケンスである。
─┼────────┼───────────────────────────
18│PGPLUS20C-03    │PostgreSQLを"7.4.7"から"7.4.8"に変更。                
  │(PG41761)       │
─┼────────┼───────────────────────────
19│PGPLUS20C-03    │以下の条件のとき、正しい結果が得られない(結果件数が多
  │(PG41511)       │くなる)場合がある。
  │                │  1) 複数の列を持つテーブルを定義している。かつ、
  │                │  2) 当該テーブルに対して、複数列インデックスを定義し
  │                │   ている。かつ、
  │                │  3) 当該インデックスの2列目以降にNULL値を持つ行が当該
  │                │   テーブルに格納されている。かつ、
  │                │  4) 当該インデックスが定義された列のうち、当該行の
  │                │   NULL値を持つ列以前のすべての列に対して、検索条件が
  │                │   指定されている。かつ、
  │                │  5) 当該インデックスが定義された列のうち、当該行の
  │                │   NULL値を持つ列より前のいずれかの列に、=およびINを使
  │                │   用した検索条件が指定されていない列がある。かつ、
  │                │  6) 当該行のNULL値を持つ列に対する検索条件に、ある値
  │                │   よりは小さい、および、ある値以下という条件が指定さ
  │                │   れていない。
─┼────────┼───────────────────────────
20│PGPLUS20C-04    │システムを無停止で運用を続けていると、データベースへの
  │(PG44168)       │アクセス性能が劣化することがある。
─┼────────┼───────────────────────────

                                                                −  以上  −