ジオデータベースをアップグレードすると、ジオデータベースに実装された新機能と改善機能を利用できます。PostgreSQL 上の Amazon Web Services (AWS) のエンタープライズ ジオデータベースをアップグレードするには、次のいずれかの操作を行います。
- 既存の AWS インスタンス上で ArcGIS ソフトウェアをアップデートし、ジオデータベースをアップグレードします。
ジオデータベースが PostgreSQL 上の AWS データベース クラスターにある場合は、既存の PostgreSQL バージョンが ArcGIS ソフトウェアの最新バージョンと互換性があることを確認してください。互換性がない場合、PostgreSQL データベース クラスターもアップグレードする必要があります。
ジオデータベースが Amazon Relational Database Service (RDS) for PostgreSQL にすでに存在する場合、Amazon は自動的に PostgreSQL バージョンをアップデートするため、ArcGIS ソフトウェアをアップグレードした後にジオデータベースをアップグレードするだけで済みます。
- Amazon データベース サービス インスタンスの新しいジオデータベースにコンテンツを移動します。
この方法にはより長い時間がかかりますが、ArcGIS 10 インスタンスからアップグレードする場合はこの方法を使用する必要があります。これは 10 から 10.7.1 への直接のアップグレード パスが存在しないためです。また、既存の PostgreSQL データベース クラスターまたは Microsoft SQL Server インスタンスから Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL へデータを移行して、Amazon がこれらのインスタンスに適用する自動アップデートを利用する場合も、この方法を使用できます。
次のセクションでは、ジオデータベースを最新状態にする方法について説明します。
既存の AWS インスタンス上で ArcGIS ソフトウェアをアップデートし、ジオデータベースをアップグレードします。
既存のインスタンス上の ArcGIS Server をアップグレードし、PostgreSQL のジオデータベースをアップグレードして、既存のデータおよびサービスの使用を継続することができます。ただし、オペレーティング システムおよびその他すべてのインスタンス上のソフトウェアは、インスタンスを作成したときのバージョンのままであることに注意してください。たとえば、ArcGIS Server 10.2.2 for AWS AMI からインスタンスを作成した場合は、PostgreSQL 12.04 オペレーティング システム上の Ubuntu 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 サイトを作成した方法によって異なります。Amazon Web Services での ArcGIS Server のアップグレード方法については、「AWS での ArcGIS のアップグレード」をご参照ください。ArcGIS Server をアップグレードしたら、手順に従って、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 のジオデータベースをアップグレードします。
- Amazon RDS for PostgreSQL に信頼性の高い最新のデータベースのバックアップがあることを確認してください。
- Amazon RDS for PostgreSQL に接続し、sde ユーザーに rds_superuser ロールが付与されていることを確認します。
- arcgis ユーザーとして、AWS 上の ArcGIS Server インスタンスのいずれかにログインします。
- テキスト エディターを開き、Python スクリプトを作成してジオデータベースをアップグレードします。
例:
vi upgrade.py
- 次のスクリプトをテキスト エディターにコピーします。
スクリプトを変更してユーザーのサイトに固有の情報 (インスタンス名、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")
ツール構文に関する詳細については、「データベース接続の作成」および「ジオデータベースのアップグレード」をご参照ください。
- ファイルを保存して、テキスト エディターを閉じます。
- ArcGIS Server を停止します。
/arcgis/server/stopserver.sh
- 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<#> に書き込まれます。
- ジオデータベースがアップグレードされていることを確認するには、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 isCurrent が True を返す場合、ジオデータベースはアップグレードされています。
- arcpy プロンプトを終了するには、quit() と入力します。
- 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 を再起動します。
- 新しいバージョンの ArcGIS Server を AWS インスタンス上にインストールして、オンプレミスの ArcGIS Server サイトと同様にアップグレードします。
アップグレード手順については、『ArcGIS Server インストール ガイド』をご参照ください。
- ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、最も簡単な方法です。手順については、Amazon Web Services のドキュメントをご参照ください。
- また、アップグレードする前に、st_geometry.so から /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 に /usr/lib/postgresql/<postgresql version>/lib ファイルをコピーする必要があります。
- st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu としてAmazon Web Services SITEHOST インスタンスに接続した後、ユーザーを root に切り替えます。
sudo su -
備考:
arcgis ユーザーで接続してから root ユーザーに切り替えることはできませんので、注意してください。
- 新しいファイルをコピーする前に、古いファイルの名前を変更します。
mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
- 新しい st_geometry.so ファイルをコピーします。
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib
- st_geometry.so ファイルに対する権限を変更して他のユーザーの読み取りと実行を許可します。
chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
- st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu としてAmazon Web Services SITEHOST インスタンスに接続した後、ユーザーを root に切り替えます。
- arcgis ユーザーに切り替えます。
su - arcgis
- テキスト エディターを開いて、アップグレード Python スクリプトを作成します。
vi upgrade.py
- 次のスクリプトをテキスト エディターにコピーします。
スクリプトを変更してユーザーのサイトに固有の情報 (インスタンス名、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")
ツール構文に関する詳細については、「データベース接続の作成」および「ジオデータベースのアップグレード」をご参照ください。
- ファイルを保存して、テキスト エディターを閉じます。
- ArcGIS Server を停止します。
/arcgis/server/stopserver.sh
- 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<#> に情報が書き込まれます。
- ジオデータベースがアップグレードされたことを確認するには、以下の 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 isCurrent が True を返す場合、ジオデータベースはアップグレードされています。
- arcpy プロンプトを終了するには、quit() と入力します。
- スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。
- PostgreSQL を対応バージョンにアップグレードする必要がある場合は、データベースのバックアップを作成した後で、PostgreSQL のアップグレードを実行します。PostgreSQL のアップグレード方法は、アップグレード元とアップグレード先の PostgreSQL バージョンによって異なります。手順については、PostgreSQL のドキュメントをご参照ください。
- すべてのジオデータベース (必要に応じてデータベース) をアップグレードしたら、ArcGIS Server を再起動します。
/arcgis/server/startserver.sh
EGDBHOST 上のジオデータベースのアップグレード
ArcGIS Server Cloud Builder on Amazon Web Services を使用して ArcGIS Server サイトとジオデータベースを作成する場合、このセクションの手順に従って、ユーザー自身の専用 PostgreSQL インスタンス (EGDBHOST) 上にある AWS のジオデータベースをアップグレードします。
SITEHOST 上の ArcGIS Server をアップデートし、新しい st_geometry.so ファイルを SITEHOST から EGDBHOST 上の PostgreSQL lib ディレクトリに移行し、ArcGIS Server を停止し、SITEHOST から Python スクリプトを実行して各ジオデータベースをアップグレードした後、ArcGIS Server を再起動します。
- 新しいバージョンの ArcGIS Server を AWS インスタンス上にインストールして、オンプレミスの ArcGIS Server サイトと同様にアップグレードします。
アップグレード手順については、『ArcGIS Server インストール ガイド』をご参照ください。
- ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、最も簡単な方法です。EBS ボリュームのスナップショットの作成方法の手順については、Amazon Web Services ドキュメントをご参照ください。
- また、アップグレードする前に、st_geometry.so から /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 に /usr/lib/postgresql/<postgresql version>/lib ファイルをコピーする必要があります。
- 新しいファイルをコピーする前に、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
- 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
- gisdata として EGDBHOST にログインします。
- root ユーザーに切り替えます。
sudo su -
- st_geometry.so ファイルを gisdata から /usr/lib/postgresql/<postgresql version>/lib にコピーします。
cp /gisdata/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
- st_geometry.so ファイルに対する権限を変更して他のユーザーの読み取りと実行を許可します。
chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
- 新しいファイルをコピーする前に、EGDBHOST 上の古いファイルの名前を変更します。st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu として EGDBHOST にログインして、root ユーザーに切り替えます。
- arcgis ユーザーとして SITEHOST にログインします。
- テキスト エディターを開いて、アップグレード Python スクリプトを作成します。
例:
vi upgrade.py
- 次のスクリプトをテキスト エディターにコピーします。
スクリプトを変更してユーザーのサイトに固有の情報 (インスタンス名、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")
ツール構文に関する詳細については、「データベース接続の作成」および「ジオデータベースのアップグレード」をご参照ください。
- ファイルを保存して、テキスト エディターを閉じます。
- ArcGIS Server を停止します。
/arcgis/server/stopserver.sh
- 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<#> に書き込まれます。
- ジオデータベースがアップグレードされていることを確認するには、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 isCurrent が True を返す場合、ジオデータベースはアップグレードされています。
- arcpy プロンプトを終了するには、quit() と入力します。
- upgrade.py スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。
- PostgreSQL を対応バージョンにアップグレードする必要がある場合は、データベースのバックアップを作成した後で、PostgreSQL のアップグレードを実行します。PostgreSQL のアップグレード方法は、アップグレード元とアップグレード先の PostgreSQL バージョンによって異なります。手順については、PostgreSQL のドキュメントをご参照ください。
- すべてのジオデータベース (必要に応じてデータベース) をアップグレードしたら、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 アイテムを使用して作成されたアプリの場合は、アプリで使用されるマップまたはシーン内のレイヤーをアップデートする必要があります。