Skip To Content

Amazon Web Services上の PostgreSQL のジオデータベースのアップグレード

ジオデータベースをアップグレードすると、ジオデータベースに実装された新機能と改善機能を利用できます。Amazon Web Services (AWS) 上の PostgreSQL のエンタープライズ ジオデータベースをアップグレードするには、次のいずれかの操作を行います。

次のセクションでは、ジオデータベースを最新状態にする方法について説明します。

既存の AWS インスタンス上で ArcGIS ソフトウェアをアップデートし、ジオデータベースをアップグレードします。

既存のインスタンス上の ArcGIS Server をアップグレードし、PostgreSQL のジオデータベースをアップグレードして、既存のデータおよびサービスの使用を継続することができます。ただし、オペレーティング システムおよびその他すべてのインスタンス上のソフトウェアは、インスタンスを作成したときのバージョンのままであることに注意してください。たとえば、ArcGIS Server 10.2.2 for AWS AMI からインスタンスを作成した場合は、Ubuntu 12.04 オペレーティング システム上の PostgreSQL 9.2.4 データベースを引き続き使用します。アップグレードする ArcGIS Server バージョンによっては、そのバージョンの PostgreSQL と互換性がない場合があります。

インスタンス上の既存の PostgreSQL のバージョンと新規の ArcGIS Server のバージョンに互換性がない場合は、PostgreSQL も対応バージョンにアップグレードする必要があります。たとえば、ArcGIS 10.3 インスタンスを起動し、そのインスタンス上の ArcGIS Server 10.7.1 をアップグレードする場合は、PostgreSQL も対応バージョンにアップグレードする必要があります。PostgreSQL のアップグレードの詳細については、PostgreSQL のドキュメントをご参照ください。

AWS 上で ArcGIS Server をアップグレードする方法は、ArcGIS Server サイトを作成した方法によって異なります。

  • Esri が提供する AWS CloudFormation テンプレートを使用して ArcGIS Server 10.6.x サイトを作成した場合、アップグレード CloudFormation テンプレートを使用して ArcGIS Server をアップグレードできます。ArcGIS Server をアップグレードしたら、手順に従って、Amazon RDS for PostgreSQL のジオデータベースをアップグレードします。
  • Esri が提供する CloudFormation テンプレートを使用して ArcGIS Server 10.5.1 以前のリリース サイトを作成した場合、AWS 上のインスタンスに接続し、ArcGIS Server サイトをオンプレミスで配置する場合と同様に、ArcGIS Server をアップグレードします。ArcGIS Server をアップグレードしたら、手順に従って、Amazon RDS for PostgreSQL のジオデータベースをアップグレードします。
  • AWS Management Console を使用して Esri AMI からサイトを作成した場合、AWS 上のインスタンスに接続し、ArcGIS Server サイトをオンプレミスで配置する場合と同様に、ArcGIS Server をアップグレードします。ジオデータベースが AWS 上の PostgreSQL データベース クラスターにある場合、いずれかの ArcGIS Server コンピューター上で Python スクリプトから [ジオデータベースのアップグレード (Upgrade Geodatabase)] ツールを実行して、オンプレミスのジオデータベースと同様にジオデータベースをアップグレードします。ジオデータベースが Amazon RDS for PostgreSQL にある場合は、手順に従って、Amazon RDS for PostgreSQL のジオデータベースをアップグレードします。
  • ArcGIS Server Cloud Builder on Amazon Web Services 10.6.1 以前のリリースを使用して、ArcGIS Server サイトとジオデータベースを作成した場合は、PostgreSQL の場所、つまり SITEHOST インスタンスまたは EGDBHOST インスタンスのいずれかに適した手順をご参照ください。

Amazon RDS for PostgreSQL のジオデータベースのアップグレード

AWS 上の ArcGIS Server サイトをアップグレードした後、次の手順に従って、Amazon RDS for PostgreSQL のジオデータベースをアップグレードします。

  1. Amazon RDS for PostgreSQL に信頼性の高い最新のデータベースのバックアップがあることを確認してください。
  2. Amazon RDS for PostgreSQL に接続し、sde ユーザーに rds_superuser ロールが付与されていることを確認します。
  3. arcgis ユーザーとして、AWS 上の ArcGIS Server インスタンスのいずれかにログインします。
  4. テキスト エディターを開き、Python スクリプトを作成してジオデータベースをアップグレードします。

    たとえば、次のように指定します。

    vi upgrade.py

  5. 次のスクリプトをテキスト エディターにコピーします。

    スクリプトを変更してユーザーのサイトに固有の情報 (インスタンス名、sde パスワード、接続ファイル名と場所、およびデータベース名など) を使用します。

    #Import arcpy module
    import arcpy
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdbrds_connection.sde","POSTGRESQL","my_db_instance_identifier.awsregion_id.rds.amazonaws.com","DATABASE_AUTH", "sde", "E$ri3774", "SAVE_USERNAME", "egdb")
    # Upgrade geodatabase
    arcpy.UpgradeGDB_management("/tmp/egdbrds_connection.sde", "PREREQUISITE_CHECK", "UPGRADE")

    ツール構文に関する詳細については、「データベース接続の作成」および「ジオデータベースのアップグレード」をご参照ください。

  6. ファイルを保存して、テキスト エディターを閉じます。
  7. ArcGIS Server を停止します。
    /arcgis/server/stopserver.sh
  8. Python でスクリプトを実行します。

    /arcgis/server/tools/python <path to the file>/upgrade.py

    アップグレードが失敗すると、情報が GDBUpgrade.log 内の /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> に書き込まれます。

  9. ジオデータベースがアップグレードされていることを確認するには、Python を開いて次のコマンドを実行します。/tmp/egdbrds_connection.sde は、接続ファイルの場所と名前に置き換えてください。

    はじめに、arcpy プロンプトを開きます。

    cd /arcgis/server/tools
    ./python

    isCurrent を使用して、ジオデータベースが現在のリリースにアップグレードされているか確認します。

    import arcpy
    isCurrent = arcpy.Describe('/tmp/egdbrds_connection.sde').currentRelease
    print isCurrent

    print isCurrentTrue を返す場合、ジオデータベースはアップグレードされています。

  10. arcpy プロンプトを終了するには、quit() と入力します。
  11. upgrade.py スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。

SITEHOST 上のジオデータベースのアップグレード

ArcGIS Server Cloud Builder on Amazon Web Services を使用して ArcGIS Server サイトとジオデータベースを作成した場合、このセクションの手順に従って、ArcGIS Server SITEHOST と同じインスタンス上にある PostgreSQL データベース クラスター内のジオデータベースをアップグレードします。

ArcGIS Server をアップデートし、新しい st_geometry.so ファイルを PostgreSQL lib ディレクトリに移行し、ArcGIS Server を停止し、Python スクリプトを実行して各ジオデータベースをアップグレードした後、ArcGIS Server を再起動します。

  1. 新しいバージョンの ArcGIS ServerAWS インスタンス上にインストールして、オンプレミスの ArcGIS Server サイトと同様にアップグレードします。

    アップグレード手順については、『ArcGIS Server インストール ガイド』をご参照ください。

  2. ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、最も簡単な方法です。手順については、Amazon Web Services ドキュメントをご参照ください。
  3. また、アップグレードする前に、st_geometry.so から /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/usr/lib/postgresql/<postgresql version>/lib ファイルをコピーする必要があります。
    1. st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu としてAmazon Web Services SITEHOST インスタンスに接続した後、ユーザーを root に切り替えます。
      sudo su -
      備考:

      arcgis ユーザーで接続してから root ユーザーに切り替えることはできませんので、注意してください。

    2. 新しいファイルをコピーする前に、古いファイルの名前を変更します。
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    3. 新しい st_geometry.so ファイルをコピーします。
      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib
    4. st_geometry.so ファイルに対する権限を変更して他のユーザーの読み取りと実行を許可します。
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. arcgis ユーザーに切り替えます。
    su - arcgis
  5. テキスト エディターを開いて、アップグレード Python スクリプトを作成します。

    vi upgrade.py

  6. 次のスクリプトをテキスト エディターにコピーします。

    スクリプトを変更してユーザーのサイトに固有の情報 (インスタンス名、sde パスワード、接続ファイル名と場所、およびデータベース名など) を使用します。

    #Import arcpy module
    import arcpy
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESQL","ec2-123-456-789-100.compute-1.amazonaws.com","DATABASE_AUTH", "sde", "E$ri3774", "SAVE_USERNAME", "egdb")
    # Upgrade geodatabase
    arcpy.UpgradeGDB_management("/tmp/egdb_connection.sde", "PREREQUISITE_CHECK", "UPGRADE")

    ツール構文に関する詳細については、「データベース接続の作成」および「ジオデータベースのアップグレード」をご参照ください。

  7. ファイルを保存して、テキスト エディターを閉じます。
  8. ArcGIS Server を停止します。
    /arcgis/server/stopserver.sh
  9. Python でスクリプトを実行します。

    /arcgis/server/tools/python <path to the file>/upgrade.py

    型の参照について複数のメッセージが表示される場合があります。これらは、アップグレードの失敗を示すものではないため、無視してかまいません。

    アップグレードに失敗すると、GDBUpgrade.log/arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> に情報が書き込まれます。

  10. ジオデータベースがアップグレードされたことを確認するには、以下の Python を実行します。/tmp/egdb_connection.sde を接続ファイルの場所と名前に置き換えます。

    はじめに、arcpy プロンプトを開きます。

    cd /arcgis/server/tools
    ./python

    isCurrent を使用して、ジオデータベースが現在のリリースにアップグレードされているか確認します。

    import arcpy
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    print isCurrent

    print isCurrentTrue を返す場合、ジオデータベースはアップグレードされています。

  11. arcpy プロンプトを終了するには、quit() と入力します。
  12. スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。
  13. PostgreSQL を対応バージョンにアップグレードする必要がある場合は、データベースのバックアップを作成した後で、PostgreSQL のアップグレードを実行します。PostgreSQL のアップグレード方法は、アップグレード元とアップグレード先の PostgreSQL バージョンによって異なります。手順については、PostgreSQL のドキュメントをご参照ください。
  14. すべてのジオデータベース (必要に応じてデータベース) をアップグレードしたら、ArcGIS Server を再起動します。

    /arcgis/server/startserver.sh

EGDBHOST 上のジオデータベースのアップグレード

ArcGIS Server Cloud Builder on Amazon Web Services を使用して ArcGIS Server サイトとジオデータベースを作成する場合、このセクションの手順に従って、ユーザー自身の専用 AWS インスタンス (EGDBHOST) 上にある PostgreSQL のジオデータベースをアップグレードします。

SITEHOST 上の ArcGIS Server をアップデートし、新しい st_geometry.so ファイルを SITEHOST から EGDBHOST 上の PostgreSQL lib ディレクトリに移行し、ArcGIS Server を停止し、SITEHOST から Python スクリプトを実行して各ジオデータベースをアップグレードした後、ArcGIS Server を再起動します。

  1. 新しいバージョンの ArcGIS ServerAWS インスタンス上にインストールして、オンプレミスの ArcGIS Server サイトと同様にアップグレードします。

    アップグレード手順については、『ArcGIS Server インストール ガイド』をご参照ください。

  2. ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、最も簡単な方法です。EBS ボリュームのスナップショットの作成方法の手順については、Amazon Web Services ドキュメントをご参照ください。
  3. また、アップグレードする前に、st_geometry.so から /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/usr/lib/postgresql/<postgresql version>/lib ファイルをコピーする必要があります。
    1. 新しいファイルをコピーする前に、EGDBHOST 上の古いファイルの名前を変更します。st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu として EGDBHOST にログインして、root ユーザーに切り替えます。
      sudo su -
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    2. SITEHOST 上の st_geometry.so から EGDBHOST 上の /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/usr/lib/postgresql/<postgresql version>/lib ファイルを移行する必要があります。

      異なるインスタンスの 2 つの移行元ディレクトリおよび移行先ディレクトリに同じユーザーがアクセスすることはできないため、arcgis ユーザーとして SITEHOST にログインして、ファイルを EGDBHOST 上の gisdata ディレクトリにコピーします。

      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /net/EGDBHOST/gisdata/st_geometry.so
    3. gisdata として EGDBHOST にログインします。
    4. root ユーザーに切り替えます。
      sudo su -
    5. st_geometry.so ファイルを gisdata から /usr/lib/postgresql/<postgresql version>/lib にコピーします。
      cp /gisdata/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
    6. st_geometry.so ファイルに対する権限を変更して他のユーザーの読み取りと実行を許可します。
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. arcgis ユーザーとして SITEHOST にログインします。
  5. テキスト エディターを開いて、アップグレード Python スクリプトを作成します。

    たとえば、次のように指定します。

    vi upgrade.py

  6. 次のスクリプトをテキスト エディターにコピーします。

    スクリプトを変更してユーザーのサイトに固有の情報 (インスタンス名、sde パスワード、接続ファイル名と場所、およびデータベース名など) を使用します。

    #Import arcpy module
    import arcpy
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESQL","ec2-123-456-789-100.compute-1.amazonaws.com","DATABASE_AUTH", "sde", "E$ri3774", "SAVE_USERNAME", "egdb")
    # Upgrade geodatabase
    arcpy.UpgradeGDB_management("/tmp/egdb_connection.sde", "PREREQUISITE_CHECK", "UPGRADE")

    ツール構文に関する詳細については、「データベース接続の作成」および「ジオデータベースのアップグレード」をご参照ください。

  7. ファイルを保存して、テキスト エディターを閉じます。
  8. ArcGIS Server を停止します。
    /arcgis/server/stopserver.sh
  9. Python でスクリプトを実行します。

    /arcgis/server/tools/python <path to the file>/upgrade.py

    型の参照についてメッセージがいくつか表示される場合があります。これらのメッセージは、無視してかまいません。

    アップグレードが失敗すると、情報が GDBUpgrade.log 内の /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> に書き込まれます。

  10. ジオデータベースがアップグレードされていることを確認するには、Python を開いて次のコマンドを実行します。/tmp/egdb_connection.sde は、接続ファイルの場所と名前に置き換えてください。

    はじめに、arcpy プロンプトを開きます。

    cd /arcgis/server/tools
    ./python

    isCurrent を使用して、ジオデータベースが現在のリリースにアップグレードされているか確認します。

    import arcpy
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    print isCurrent

    print isCurrentTrue を返す場合、ジオデータベースはアップグレードされています。

  11. arcpy プロンプトを終了するには、quit() と入力します。
  12. upgrade.py スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。
  13. PostgreSQL を対応バージョンにアップグレードする必要がある場合は、データベースのバックアップを作成した後で、PostgreSQL のアップグレードを実行します。PostgreSQL のアップグレード方法は、アップグレード元とアップグレード先の PostgreSQL バージョンによって異なります。手順については、PostgreSQL のドキュメントをご参照ください。
  14. すべてのジオデータベース (必要に応じてデータベース) をアップグレードしたら、ArcGIS Server を再起動します。

    /arcgis/server/startserver.sh

Amazon データベース サービス インスタンスの 10.7.1 ジオデータベースにコンテンツを移動します。

最新バージョンの PostgreSQL を入手する場合、または AWS 上の ArcGIS 10 からアップグレードする場合は、次の手順を実行します。

  • ジオデータベースを Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL インスタンスに作成し、アップグレード後の (または新規の) ArcGIS Server 10.7.1 サイトに登録します。
  • 新しいジオデータベースに既存のデータを移動します。
  • サービスを再公開します。

    サービスの公開の詳細については、ArcGIS Server ヘルプをご参照ください。

  • 新しいサービスを使用するアプリをアップデートします。

    このアップデート方法は、アプリが作成された方法によって異なります。サービスを直接利用するカスタム アプリの場合は、サービスの URL をアップデートします。ArcGIS Enterprise ポータルまたは ArcGIS Online アイテムを使用して作成されたアプリの場合は、アプリで使用されるマップまたはシーン内のレイヤーをアップデートする必要があります。