web-dev-qa-db-ja.com

PostGIS拡張機能を含むGreenplumDBのアップグレード

PostGIS1.4を実行している4.2.3.2Greenplumデータベースがいくつかあります。これらのデータベースを4.3.8.1や再リリースされたバージョンの4.3.9.1などのより新しいバージョンのGreenplumに取り込もうとしていますが、PostGISをバージョン2.0にアップグレードしようとすると問題が発生します。 PostGIS 1.4に依存するデータと関数を損なうことなくデータベースをアップグレードするためのさまざまな方法を試みましたが、新しいPostGIS拡張機能で gppkg ユーティリティを実行するとエラーが発生するだけのようです、次のようになります。

gppkg -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg 
20160919:13:21:20:024675 gppkg:s-md-pv-gp-01-01:gpadmin-[INFO]:-Starting gppkg with args: -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
20160919:13:21:20:024675 gppkg:s-md-pv-gp-01-01:gpadmin-[CRITICAL]:-gppkg failed. (Reason='__init__() got an unexpected keyword argument 'postupdate'') exiting...

-uフラグを渡してgppkgも実行しましたが、同様の結果が得られました。

gppkg -u postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg 
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[INFO]:-Starting gppkg with args: -u postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-WARNING: The process of updating a package includes removing all
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-previous versions of the system objects related to the package. For
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-example, previous versions of shared libraries are removed.
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-After the update process, a database function will fail when it is
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-called if the function references a package file that has been removed.
Do you still want to continue ? Yy|Nn (default=N):
> y
20160919:13:35:59:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[CRITICAL]:-gppkg failed. (Reason='__init__() got an unexpected keyword argument 'postupdate'') exiting...

主な警告は、 Greenplumバージョン4.2.6.Xから4.2.8.XはpostGISのバージョン1.4と2.0の両方をサポートしている という事実にも関連している可能性があります。この時点で、他の人がこれらのハードルのいくつかに直面した可能性があることを期待して、どのように進めるかについての方向性を探しています。

ベンダーのPivotalとチケットを持っていますが、これらは実り多いものではないので、コミュニティが私を指し示すことができる方向性があることを願って、ここに投稿します。

ありがとう、

ジョン

2
John Eisbrener

私たちが特定したアップグレードパスは、まさに kludgy の定義ですが、アップグレードされたデータベースとアップグレードされたPostGIS拡張機能の両方の最終結果ですべてのデータを取得するように見えます。 (確かにRube Goldberg風の)手順は次のとおりであり、PostGISデータを含むアップグレードされるサーバー上のすべてのデータベースに必要です。

  1. pg_dumpPostGIS関連データを含むすべてのテーブルサーバー上のすべてのデータベース用
  2. ステップ1でPostGISテーブルを持っていたデータベースのPostGIS関連データ(バックアップされたばかりのものと同じ)を含むすべてのテーブルを削除します
  3. unstall_postgis.sql$GPHOME/share/postgrestql/contribスクリプトを実行しますステップ1でPostGISテーブルを持っていたデータベース
  4. PostGIS 1.0 gppkgをアンインストールします(%> gppkg -r postgis-1.0
  5. gpmigrator/gpmigrator_mirrors 標準プロセスを介してGreenPlumデータベースをアップグレードします
  6. PostGIS 2.0 gppkgをインストールします(%> gppkg -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
  7. postgis.sql$GPHOME/share/postgresql/contrib/postgis-2.0スクリプトを実行しますステップ1でPostGISテーブルを持っていた各データベース
  8. pg_restoreステップ1でエクスポートされたすべてのテーブル

また、インプレースアップグレードを回避するために、ここに記載されていないいくつかの手順を中間サーバーに含めているため、迅速な復旧ポイントがあります。このプロセスは少し面倒ですが、これまでのところ、テストでは明らかな問題なく機能していることが示されているようです。

うまくいけば、これは将来誰かを助けるでしょう、

ジョン

0
John Eisbrener