Обновляйте базы геоданных, чтобы использовать реализованные в них новые функциональные возможности и усовершенствования. Варианты выполнения обновления многопользовательской базы геоданных PostgreSQL на Amazon Web Services (AWS) следующие:
- Выполните обновление программного обеспечения ArcGIS на существующем экземпляре AWS и обновление базы геоданных.
Если ваша база геоданных находится в кластере баз данных PostgreSQL на AWS, убедитесь в том, что существующая версия PostgreSQL совместима с последней версией ПО ArcGIS. Если нет, вам также потребуется обновить кластер баз PostgreSQL.
Если ваша база геоданных находится в Amazon Relational Database Service (RDS) for PostgreSQL Amazon, то Amazon автоматически обновит эту версию PostgreSQL, а вам только потребуется обновить базу геоданных после обновления ПО ArcGIS.
- Перенос ресурсов в новую базу геоданных в экземпляре сервиса базы данных Amazon.
Это способ занимает больше времени, но его нужно использовать при обновлении из экземпляра ArcGIS 10, поскольку нет способа непосредственного обновления с 10 на 10.8.1. Вы также можете использовать этот метод, если вы хотите перенести ваши данные из имеющегося кластера базы данных PostgreSQL или экземпляра Microsoft SQL Server в Amazon RDS for PostgreSQL или Amazon Aurora PostgreSQL для применения автоматических обновлений Amazon к этим экземплярам.
В разделах ниже описываются способы довести базы геоданных до самого актуального состояния.
Обновление программного обеспечения ArcGIS на существующем экземпляре AWS и обновление базы геоданных
Вы можете обновить ArcGIS Server на вашем существующем экземпляре, обновить базу геоданных PostgreSQL и продолжить использовать имеющиеся данные и сервисы. Будьте внимательны, операционная система и всё остальное программное обеспечение на экземпляре останется прежней версии, которая была при создании вашего экземпляра. Например, если вы создали ваш экземпляр из образа ArcGIS Server 10.2.2 for AWS AMI, вы будете продолжать использовать базу данных PostgreSQL 9.2.4 на ОС Ubuntu 12.04. В зависимости от версии ArcGIS Server, к которой вы переходите, эта версия PostgreSQL может оказаться несовместимой.
Если имеющаяся на вашем экземпляре версия PostgreSQL несовместима с новой версией ArcGIS Server, необходимо также обновить PostgreSQL до поддерживаемой версии. К примеру, если вы запустили экземпляр ArcGIS 10.3 и хотите на этом экземпляре обновить его до версии ArcGIS Server 10.8.1, вам нужно обновить PostgreSQL до поддерживаемой версии. Более подробную информацию об обновлении PostgreSQL см. в документации PostgreSQL.
Способ обновления ArcGIS Server на AWS зависит от способа создания сайта ArcGIS Server. См. Обновления ArcGIS на Amazon Web Services для получения дополнительных сведений об обновлении ArcGIS Server на AWS. После обновления вами 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
После выполнения обновления сайта ArcGIS Server на AWS, выполните следующие действия для обновления баз геоданных в Amazon RDS for PostgreSQL.
- Убедитесь в том, что у вас имеется надежная, актуализированная резервная копия базы данных в Amazon RDS for PostgreSQL.
- Подключитесь к Amazon RDS for PostgreSQL и убедитесь, что пользователю sde предоставлена роль rds_superuser.
- Выполните вход в один из своих экземпляров ArcGIS Server в качестве пользователя arcgis AWS.
- В текстовом редакторе создайте скрипт 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с помощью ArcGIS Server Cloud Builder on Amazon Web Services, выполните описанные в этом разделе действия для обновления баз геоданных в кластере базы данных PostgreSQL, который находится на том же экземпляре, что и ArcGIS Server SITEHOST.
Обновите ArcGIS Server, переместите новый файл st_geometry.so в директорию lib PostgreSQL, остановите 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, следовательно, после подключения к экземпляру Amazon Web Services SITEHOST из-под ubuntu переключите пользователя на 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, следовательно, после подключения к экземпляру Amazon Web Services SITEHOST из-под ubuntu переключите пользователя на 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 с помощью ArcGIS Server Cloud Builder on Amazon Web Services, выполните описанные в этом разделе действия для обновления баз геоданных в кластере базы данных PostgreSQL, который находится на том же экземпляре, что и AWS SITEHOST ).
Обновите ArcGIS Server на SITEHOST, переместите новый файл st_geometry.so из SITEHOST в директорию lib PostgreSQL на EGDBHOST, остановите ArcGIS Server, запустите скрипт Python из SITEHOST для обновления каждой базы геоданных и перезапустите 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, то войдите в EGDBHOST из-под пользователя ubuntu и переключитесь на пользователя root.
sudo su - mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
- Вам следует переместить файл st_geometry.so из /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 на SITEHOST в /usr/lib/postgresql/<postgresql version>/lib на EGDBHOST.
Поскольку две исходные и целевые директории на различных экземплярах не могут быть доступны одному и тому же пользователю, войдите на SITEHOST как пользователь arcgis и скопируйте файл в директорию gisdata на EGDBHOST.
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /net/EGDBHOST/gisdata/st_geometry.so
- Выполните вход на EGDBHOST из-под пользователя ubuntu.
- Переключитесь на пользователя 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, то войдите в EGDBHOST из-под пользователя ubuntu и переключитесь на пользователя root.
- Войдите на SITEHOST из-под пользователя 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().
- Измените скрипт upgrade.py и снова запустите его, и так далее для каждой базы геоданных, которую необходимо обновить.
- Если вам требуется обновить PostgreSQL до поддерживаемой, создайте резервную копию базы данных и перейдите к обновлению PostgreSQL. Порядок обновления PostgreSQL зависит от имеющей версии PostgreSQL и версии, которую вы хотите использовать. Дополнительные сведения см. в документации к PostgreSQL.
- После обновления всех баз геоданных (и, при необходимости, баз данных) перезапустите ArcGIS Server.
/arcgis/server/startserver.sh
Перенос ресурсов в базу геоданных 10.8.1 в экземпляре сервиса базы данных Amazon
Чтобы убедиться в том, что вы скачали последнюю версию PostgreSQL и выполняете обновление с ArcGIS 10 на AWS, выполните следующее:
- Создайте базу геоданных в Amazon RDS for PostgreSQL или экземпляру Amazon Aurora PostgreSQL и зарегистрируйте ее на своем обновленном или новом сайте ArcGIS Server 10.8.1.
- Переместите имеющиеся данные в новую базу геоданных.
- Переопубликуйте сервисы.
Более подробную информацию о публикации сервисов см. в документации к ArcGIS Server.
- Обновите приложения для работы с новыми сервисами.
Способ обновления зависит от метода создания данных. Для пользовательских приложений, непосредственно использующих кредиты, обновите URL сервиса. Для приложений, созданных на портале ArcGIS Enterprise или в ArcGIS Online, вам надо обновить слой карты или сцены, используемые в приложении.