Skip To Content

アマゾン ウェブ サービス上の PostgreSQL のジオデータベースのアップグレード

ジオデータベース機能をアップグレードするには、ArcGIS Server 10.5.1 for Amazon Web Services (AWS) インスタンスを作成し、データを新しいジオデータベースに移行してサービスを再公開するか、既存の AWS インスタンスの ArcGIS ソフトウェアを更新してジオデータベースをアップグレードします。

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

ArcGIS 10.5.1 for AWS インスタンスの作成と古いインスタンスのデータの移行

ArcGIS および PostgreSQL のすべての最新バージョンを取得する最も簡単な方法は、最新の AMI (Amazon Machine Image) から ArcGIS Server for AWS インスタンスを作成し、データを移行してサービスを再公開することです。最新の ArcGIS Server AMI に含まれているソフトウェアとオペレーティング システムの情報については、「Esri AMI」をご参照ください。

データの移行方法については、「アマゾン ウェブ サービスへのデータ転送方法」の「データをクラウドに転送するオプション」セクションをご参照ください。

PostgreSQL のデータを含む ArcGIS Server 10 AWS インスタンスを使用する場合、この方法を使用してジオデータベースをアップグレードする必要があります。また、Amazon Relational Database Service (RDS) for PostgreSQL インスタンスにデータを移行する場合は、新しいインスタンスを作成し、データを移行して、サービスを再公開する必要があります。

10 インスタンスから最新のインスタンスへの移行

ArcGIS 10 では、PostgreSQL 8.3.8 データベース クラスターが含まれた個別のエンタープライズ ジオデータベース AMI が Windows 上にありました。PostgreSQL が含まれた ArcGIS Server AMI は、現在 Ubuntu Linux 上で実行されています。Windows 上の PostgreSQL データベースから Linux 上のデータベースに直接移行することはできません。また、ArcGIS 10 Server を ArcGIS 10.1 for Server 以降のリリースにアップグレードすることもできません。そのため、ArcGIS 10 Server for AWS から最新の ArcGIS AWS AMI に移行するときは、ユーザーがデータを移行するか再度読み込んで、再公開する必要があります。

10.1、10.2.x、10.3.x、または 10.4.x インスタンスから 10.5 インスタンスへの移行

ArcGIS AMI に付属する PostgreSQL のバージョンは、そのときによって異なります。各 Linux AMI に付属する PostgreSQL のバージョンを次の表に示します。

PostgreSQL AMI を含む ArcGIS Server (Linux)付属の PostgreSQL バージョン

ArcGIS 10.1

9.0.5

ArcGIS 10.2

9.0.13

ArcGIS 10.2.1 および 10.2.2

9.2.4

ArcGIS 10.3

9.3.4

ArcGIS 10.3.1

9.3.6

ArcGIS 10.4.x

9.3.10

ArcGIS 10.5

9.3.12

PostgreSQL 9.3.12 を使用する場合、データを ArcGIS Server 10.5 for AWS に移行できます。PostgreSQL では 9.0.x バージョンのデータベース管理システムがサポートされなくなったため、これより新しいインスタンスを起動してデータを移行するか、既存のインスタンス上の PostgreSQL をアップグレードする必要があります。PostgreSQL をアップグレードするには、PostgreSQL のドキュメントに記載の手順に従います。

既存の AWS インスタンス上の ArcGIS ソフトウェアのアップデートおよびジオデータベースのアップグレード

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

インスタンス上の既存の PostgreSQL のバージョンと新規の ArcGIS Server のバージョンに互換性がない場合は、PostgreSQL も対応バージョンにアップグレードする必要があります。たとえば、ArcGIS 10.2 インスタンスを起動し、そのインスタンス上の ArcGIS Server 10.5 をアップグレードする場合は、PostgreSQL も対応バージョンにアップグレードする必要があります。

次の 2 つのセクションでは、既存の ArcGIS Server AWS インスタンス上の PostgreSQL に格納されたジオデータベースをアップグレードする方法を説明しています。(これらの手順は、Amazon RDS for PostgreSQL に格納されたジオデータベースには適用されません)。

既存の AWS インスタンス上の ArcGIS Server のアップデートおよび SITEHOST 上のジオデータベースのアップグレード

AWS インスタンス用の ArcGIS Server をアップデートする場合は、このセクションのステップに従って、ArcGIS Server SITEHOST と同じインスタンス上にある PostgreSQL のジオデータベースをアップグレードします。

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

  1. AWS インスタンス上に最新バージョンの ArcGIS Server をインストールします。

    まだソフトウェアをインストールしていない場合は、「単一コンピューターのサイトへの ArcGIS アップデートの適用」または「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」で手順をご確認ください。

  2. ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。これを行うには、サイトの Cloud Builder バックアップを作成する (Cloud Builder を使用してサイトを作成済みの場合) か、またはデータを含む EBS ボリュームのスナップショットを作成するのが最も簡単です。EBS ボリュームのスナップショットを作成する手順の詳細は、アマゾン ウェブ サービスのドキュメントをご参照ください。
  3. また、アップグレードする前に、st_geometry.so から /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/usr/lib/postgresql/<postgresql version>/lib ファイルをコピーする必要があります。
    1. st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu としてアマゾン ウェブ サービス 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

複数コンピューターのサイトを保有している場合、「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」の手順 11 に進みます。

既存の AWS インスタンス上の ArcGIS Server の更新および独自の AWS インスタンス (EGDBHOST) 上のジオデータベースのアップグレード

AWS インスタンス上の ArcGIS Server をアップデートする場合は、このセクションのステップに従って、ユーザー自身の専用 AWS インスタンス (EGDBHOST) 上にある PostgreSQL のジオデータベースをアップグレードします。

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

  1. AWS インスタンス上に新しいバージョンの ArcGIS Server をインストールします。
  2. ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、最も簡単な方法です。EBS ボリュームのスナップショットの作成方法の手順については、アマゾン ウェブ サービスのドキュメントをご参照ください。
  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 script を変更して、アップグレードが必要な各ジオデータベースに対してもう一度実行します。
  13. PostgreSQL を対応バージョンにアップグレードする必要がある場合は、データベースのバックアップを作成した後で、PostgreSQL のアップグレードを実行します。PostgreSQL のアップグレード方法は、アップグレード元とアップグレード先の PostgreSQL バージョンによって異なります。手順については、PostgreSQL のドキュメントでご確認ください。
  14. すべてのジオデータベース (必要に応じてデータベース) をアップグレードしたら、ArcGIS Server を再起動します。

    /arcgis/server/startserver.sh

複数コンピューターのサイトを保有している場合、「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」の手順 11 に進みます。