ArcGIS Server for Amazon Web Services の Workgroup ジオデータベースのアップグレード(PostgreSQL)
以下のセクションで、3 つのジオデータベース アップグレード シナリオを説明します。
- ArcGIS 10 for Amazon Web Services から ArcGIS 10.1 for Amazon Web Services へのアップグレード
- 既存の ArcGIS 10.1 for Amazon Web Services インスタンスへのサービス パックまたはパッチの適用および ArcGIS Server(SITEHOST)と同じインスタンス上にあるジオデータベースのアップグレード
- 既存の ArcGIS 10.1 for Amazon Web Services インスタンスへのサービス パックまたはパッチの適用および独自の Amazon EC2 インスタンス(SITEHOST)上にあるジオデータベースのアップグレード
ArcGIS 10 for Amazon Web Services EGDB インスタンスから ArcGIS Server 10.1 for Amazon Web Services へのデータの移行
ArcGIS 10 では、Windows 上に PostgreSQL 8.3.8 データベース クラスタを含んだ個別のエンタープライズ ジオデータベース AMI(Amazon Machine Image)がありました。ArcGIS 10.1 では、PostgreSQL AMI を使用した ArcGIS Server 10.1(Linux)は、Ubuntu Linux を実行し、必要に応じて PostgreSQL 9.0.5 データベース クラスタを含めることができます。Windows 上の PostgreSQL データベースから Linux 上のデータベースに直接移行することはできません。そのため、ArcGIS Server 10.1 for Amazon Web Services に移行する場合、データを移動または再読み込みする必要があります。「Amazon Web Services へのデータ転送方法」の「データをクラウドに転送するオプション」セクションをご参照ください。
サービス パックまたはパッチの適用および ArcGIS Server EC2 インスタンス(SITEHOST)上のジオデータベースのアップグレード
Amazon Web Services(AWS)インスタンスの PostgreSQL のジオデータベースは、AWS インスタンス上のソフトウェアにサービス パックまたはパッチを適用した後にアップグレードする必要がある場合が多くあります。このセクションの手順で、ArcGIS Server(SITEHOST)と同じインスタンスにある PostgreSQL のジオデータベースをアップグレードする方法を説明します。
ArcGIS for Server をアップデートし、新しい st_geometry.so ファイルを PostgreSQL lib ディレクトリに移動し、ArcGIS Server を停止し、Python スクリプトを実行して各ジオデータベースにアップグレードし、次に ArcGIS Server を再起動します。
-
この時点では、AWS インスタンス上の ArcGIS for Server にサービス パックまたはパッチをすでにインストールしている必要があります。
まだソフトウェアをインストールしていない場合は、「サービス パックの単一コンピュータのサイトへの適用」または「サービス パックの複数コンピュータのサイトへの適用」で手順をご確認ください。
- ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、もっとも簡単な方法です。
- アップグレードする前に、st_geometry.so ファイルを /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 から /usr/lib/postgresql/9.0/lib にコピーする必要があります。
- st_geometry.so ファイルは、ルートが所有しています。そのため、ubuntu として Amazon Web Services SITEHOST インスタンスに接続した後、ユーザをルートに切り替えます。
sudo su -
- 新しいファイルをコピーする前に、古いファイルの名前を変更します。
mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
- 新しい st_geometry.so ファイルをコピーします。
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/9.0/lib
- st_geometry.so ファイルの権限を変更して他のユーザがファイルを読み取ったり実行できるようにします。
chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
- st_geometry.so ファイルは、ルートが所有しています。そのため、ubuntu として Amazon Web Services SITEHOST インスタンスに接続した後、ユーザをルートに切り替えます。
- arcgis ユーザに切り替えます。
su - arcgis
- テキスト エディタを開いて、アップグレード Python スクリプトを作成します。
次に例を示します。
vi upgrade.py
- 次のスクリプトをテキスト エディタにコピーします。
スクリプトを変更してユーザのサイトに固有の情報(インスタンス名、sde パスワード、接続ファイル名と場所、およびデータベース名など)を使用します。
#Import arcpy module import arcpy # Create connection file arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESSQL","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
型の参照について複数のメッセージが表示される場合があります。これらは、アップグレードの失敗を示すものではないため、無視してかまいません。
アップグレードが失敗した場合、情報が /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server10.1 の GDBUpgrade.log に書き込まれます。
- ジオデータベースがアップグレードされたことを確認するには、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() と入力します。
- スクリプトを変更し、アップグレードが必要な各ジオデータベースにもう一度そのスクリプトを実行します。
- すべてのジオデータベースがアップグレードされたら、ArcGIS Server を再起動します。
/arcgis/server/startserver.sh
複数コンピュータのサイトを保有している場合、「複数の Ubuntu コンピュータのサイトへのサービス パックの適用」の手順 13 に進みます。
サービス パックまたはパッチの適用と EGDBHOST 上のジオデータベースのアップグレード
このセクションの手順で、ジオデータベース独自の Amazon EC2 インスタンス(EGDBHOST)上にある PostgreSQL のジオデータベースをアップグレードする方法を説明します。
SITEHOST 上の ArcGIS for Server をアップデートし、SITEHOST の新しい st_geometry.so ファイルを EGDBHOST の PostgreSQL lib ディレクトリに移動し、ArcGIS Server を停止し、SITEHOST から Python スクリプトを実行して各ジオデータベースにアップグレードし、次に ArcGIS Server を再起動します。
-
AWS インスタンス上の ArcGIS for Server にサービス パックまたはパッチをインストールします。
「サービス パックの単一コンピュータのサイトへの適用」または「サービス パックの複数コンピュータのサイトへの適用」で手順をご確認ください。
- ジオデータベースをアップグレードする前にジオデータベースのバックアップ コピーを作成します。データを含む EBS ボリュームのスナップショットを作成するのが、もっとも簡単な方法です。
- また、アップグレードする前に、st_geometry.so ファイルを /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 から /usr/lib/postgresql/9.0/lib にコピーする必要もあります。
- 新しいファイルをコピーする前に、EGDBHOST 上の古いファイルの名前を変更します。st_geometry.so ファイルは、root ユーザが所有しているため、ubuntu として EGDBHOST にログインして、root ユーザに切り替えます。
sudo su - mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
- st_geometry.so ファイルを SITEHOST 上の /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 から EGDBHOST 上の /usr/lib/postgresql/9.0/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/9.0/lib にコピーします。
cp /gisdata/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometry.so
- st_geometry.so ファイルの権限を変更して他のユーザがファイルを読み取ったり実行できるようにします。
chmod 755 /usr/lib/postgresql/9.0/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","POSTGRESSQL","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
タイプ参照についてメッセージがいくつか表示される場合があります。これらのメッセージは、無視してかまいません。
アップグレードが失敗した場合、情報は /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server10.1 の GDBUpgrade.log に書き込まれます。
- ジオデータベースがアップグレードされていることを確認するには、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 を変更して、アップグレードが必要な各ジオデータベースに対してもう一度実行します。
- すべてのジオデータベースがアップグレードされたら、ArcGIS Server を再起動します。
/arcgis/server/startserver.sh
複数コンピュータのサイトを保有している場合、「複数の Ubuntu コンピュータのサイトへのサービス パックの適用」の手順 13 に進みます。