ジオデータベースをアップグレードすると、ジオデータベースに実装された新機能と改善機能を利用できます。AWS 上の PostgreSQL でエンタープライズ ジオデータベースをアップグレードするには、次のいずれかの操作を行います。
- 10.6.1 Amazon Machine Image (AMI) を使用して Amazon Web Services (AWS) で ArcGIS Server 10.6.1 インスタンスを作成し、この AMI に含まれている新しいバージョンの PostgreSQL でジオデータベースを作成してデータを新しいジオデータベースに移動し、サービスを再公開します。
ArcGIS 10 インスタンスからアップグレードする場合は、この方法を使用する必要があります。
- 既存の AWS インスタンス上で ArcGIS ソフトウェアをアップデートし、ジオデータベースをアップグレードします。
ジオデータベースが AWS 上の PostgreSQL データベース クラスターにある場合、既存の PostgreSQL バージョンが ArcGIS ソフトウェアの最新バージョンと互換性があることを確認してください。互換性がない場合、PostgreSQL データベース クラスターもアップグレードする必要があります。
ジオデータベースが Amazon Relational Database Service (RDS) for PostgreSQL にある場合、Amazon は自動的に PostgreSQL バージョンをアップデートするため、ArcGIS ソフトウェアをアップグレードした後にジオデータベースをアップグレードするだけで済みます。
ヒント:
データが AWS の PostgreSQL データベース クラスターにあり、データを Amazon RDS for PostgreSQL インスタンスに移動する場合は、Amazon RDS for PostgreSQL インスタンスにジオデータベースを作成し、データを移動してサービスを再公開することができます。
次のセクションでは、ジオデータベースを最新状態にする方法について説明します。
AWS インスタンスへの ArcGIS 10.6.1 の作成と古いインスタンスのデータの移行
アップグレードまたはパッチ適用が不要な最新バージョンの ArcGIS ソフトウェア、PostgreSQL、およびオペレーティング システムを入手するには、最新の Esri AMI から ArcGIS Server for AWS インスタンスを作成し、データを移動してサービスを再公開します。最新の ArcGIS Server AMI に含まれているソフトウェアとオペレーティング システムの情報については、「Esri AMI」をご参照ください。
データの移行方法については、「アマゾン ウェブ サービスへのデータ転送方法」をご参照ください。
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 に移行するときは、ユーザーがデータを移行するか再度読み込んで、再公開する必要があります。
次の表に示すように、Esri Ubuntu AMI に付属する PostgreSQL バージョンは、そのときによって異なります。
Esri AMI バージョン | 付属の PostgreSQL バージョン |
---|---|
10.1 | 9.0.5 |
10.2 | 9.0.13 |
10.2.1 および 10.2.2 | 9.2.4 |
10.3 | 9.3.4 |
10.3.1 | 9.3.6 |
10.4.x | 9.3.10 |
10.5.x | 9.3.12 |
10.6.x | 9.5.3 |
既存の 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.6.1 をアップグレードする場合は、PostgreSQL も対応バージョンにアップグレードする必要があります。PostgreSQL のアップグレードの詳細については、PostgreSQL のドキュメントをご参照ください。
AWS 上で ArcGIS Server をアップグレードする方法は、ArcGIS Server サイトの作成方法によって異なることに注意してください。
- ArcGIS Server サイトとジオデータベースの作成に ArcGIS Server Cloud Builder on Amazon Web Services を使用した場合は、次の 2 つのセクションの手順に従ってサイトとジオデータベースをアップグレードします。最初のセクションでは、ジオデータベースが ArcGIS Server と同じ EC2 インスタンス上にある場合のアップグレードについて説明しています。次のセクションでは、ジオデータベースが別個の EC2 インスタンス上にある場合のアップグレードについて説明しています。
- Esri が提供する AWS CloudFormation テンプレートを使用して ArcGIS Server 10.6 サイトを作成した場合、アップグレード CloudFormation テンプレートを使用して ArcGIS Server をアップグレードできます。ArcGIS Server をアップグレードした後、3 つ目のセクションの手順に従って、Amazon RDS for PostgreSQL のジオデータベースをアップグレードします。
- Esri が提供する CloudFormation テンプレートを使用して ArcGIS Server 10.5.1 以前のリリース サイトを作成した場合、AWS 上のインスタンスに接続し、ArcGIS Server サイトをオンプレミスで配置する場合と同様に、ArcGIS Server をアップグレードします。3 つ目のセクションの手順に従って、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 にある場合、3 つ目のセクションの手順に従って、ジオデータベースをアップグレードします。
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 を再起動します。
- AWS インスタンス上に最新バージョンの ArcGIS Server をインストールします。
まだソフトウェアをインストールしていない場合は、「単一コンピューターのサイトへの ArcGIS アップデートの適用」または「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」で手順をご確認ください。
- ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。これを行うには、サイトの Cloud Builder バックアップを作成する (Cloud Builder を使用してサイトを作成済みの場合) か、またはデータを含む EBS ボリュームのスナップショットを作成するのが最も簡単です。EBS ボリュームのスナップショットを作成する手順の詳細は、アマゾン ウェブ サービスのドキュメントをご参照ください。
- また、アップグレードする前に、st_geometry.so から /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 に /usr/lib/postgresql/<postgresql version>/lib ファイルをコピーする必要があります。
- st_geometry.so ファイルの所有者は root ユーザーであるため、ubuntu としてアマゾン ウェブ サービス 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 としてアマゾン ウェブ サービス 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
複数コンピューターのサイトを保有している場合、「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」の手順 11 に進みます。
独自の AWS インスタンス (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 を再起動します。
- AWS インスタンス上に新しいバージョンの ArcGIS Server をインストールします。
手順については、「単一コンピューターのサイトへの ArcGIS アップデートの適用」または「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」をご確認ください。
- ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、最も簡単な方法です。EBS ボリュームのスナップショットの作成方法の手順については、アマゾン ウェブ サービスのドキュメントをご参照ください。
- また、アップグレードする前に、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 script を変更して、アップグレードが必要な各ジオデータベースに対してもう一度実行します。
- PostgreSQL を対応バージョンにアップグレードする必要がある場合は、データベースのバックアップを作成した後で、PostgreSQL のアップグレードを実行します。PostgreSQL のアップグレード方法は、アップグレード元とアップグレード先の PostgreSQL バージョンによって異なります。手順については、PostgreSQL のドキュメントでご確認ください。
- すべてのジオデータベース (必要に応じてデータベース) をアップグレードしたら、ArcGIS Server を再起動します。
/arcgis/server/startserver.sh
複数コンピューターのサイトを保有している場合、「複数の Ubuntu コンピューターのサイトへの ArcGIS アップデートの適用」の手順 11 に進みます。
Amazon RDS for SQL Server のジオデータベースのアップグレード
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 スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。