Обновляйте базы геоданных, чтобы использовать реализованные в них новые функциональные возможности и усовершенствования. Варианты выполнения обновления многопользовательской базы геоданных в PostgreSQL на Amazon Web Services (AWS) следующие:
- Обновление программного обеспечения ArcGIS на существующем экземпляре Amazon Elastic Compute Cloud (EC2) и обновление базы геоданных.
Если база геоданных находится в кластере баз данных PostgreSQL на AWS, убедитесь в том, что существующая версия PostgreSQL совместима с последней версией программного обеспечения ArcGIS. Если нет, вам также потребуется обновить кластер баз данных PostgreSQL.
Если база геоданных уже находится в Amazon Relational Database Service (RDS) for PostgreSQL, то Amazon автоматически обновляет версию PostgreSQL, поэтому вам нужно только обновить базу геоданных после обновления программного обеспечения ArcGIS.
- Перенесите ресурсы в новую базу геоданных в экземпляре сервиса реляционной базы данных Amazon.
Это способ занимает больше времени, но его нужно использовать при обновлении из экземпляра ArcGIS 10, поскольку нет способа прямого обновления с 10 версии на 11.1. Вы также можете использовать этот метод, если хотите перенести ваши данные из имеющегося кластера базы данных PostgreSQL или экземпляра Microsoft SQL Server в Amazon RDS for PostgreSQL или Amazon Aurora (PostgreSQL-compatible edition) для применения автоматических обновлений Amazon к этим экземплярам.
В разделах ниже описываются способы приведения базы геоданных в самое актуальное состояние.
Обновление программного обеспечения ArcGIS на существующем экземпляре AWS и обновление базы геоданных
Вы можете обновить ArcGIS Server на вашем существующем экземпляре EC2, обновить базу геоданных в PostgreSQL и продолжить использовать существующие данные и сервисы. Будьте внимательны, операционная система и всё остальное программное обеспечение на экземпляре останется прежней версии, которая была при создании вашего экземпляра. Например, если вы создали ваш экземпляр из ArcGIS Server 10.2.2 для Amazon Machine Image, вы продолжите использовать базу данных PostgreSQL 9.2.4 в операционной системе Ubuntu 12.04. В зависимости от версии ArcGIS Server, до которой вы обновляетесь, версии PostgreSQL и операционная система могут быть несовместимы с обновленной версией ArcGIS Server.
Если имеющаяся на вашем экземпляре версия PostgreSQL несовместима с новой версией ArcGIS Server необходимо также обновить PostgreSQL до поддерживаемой версии. Например, если вы запустили экземпляр ArcGIS 10.8 и хотите на этом экземпляре обновить его до версии ArcGIS Server 11.1, необходимо обновить PostgreSQL до поддерживаемой версии. Смотрите в документации PostgreSQL информацию по обновлению PostgreSQL.
Если версия операционной системы не поддерживается новой версией PostgreSQL или ArcGIS Server, вы также должны обновить версию операционной системы или переместить данные в новый экземпляр и повторно опубликовать сервисы.
Способ обновления 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 есть права, необходимые для обновления.
- Войдите в один из экземпляров ArcGIS Server EC2 как пользователь arcgis.
- В текстовом редакторе создайте скрипт 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")
Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.
- Сохраните файл и закройте текстовый редактор.
- Используйте stopserver.sh, чтобы остановить ArcGIS Server.
- Запустите скрипт обновления в 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 10.6.1 и более ранние версии до 11.1. Сначала необходимо выполнить обновление до промежуточной версии, а затем выполнить обновление до 11.1.
Также обратите внимание, что любая база геоданных в PostgreSQL, изначально созданная с использованием ArcGIS Server Cloud Builder on Amazon Web Services 10.6.1, потребует обновления PostgreSQL до поддерживаемой версии и обновления операционной системы Ubuntu до поддерживаемой версии. Вероятно, вам также придется обновить каждую из них до промежуточной версии. Например, если вы обновляете сайт ArcGIS Server 10.5.1 с базой геоданных в PostgreSQL, обновите ArcGIS Server до версии 10.7.1 и обновите операционную систему и PostgreSQL до версий, которые поддерживались в 10.7.1.
Всегда создавайте резервные копии базы данных и сайта перед обновлением. Протестируйте промежуточное обновление, прежде чем переходить к обновлению до 11.1.
Порядок обновления PostgreSQL зависит от имеющей версии PostgreSQL и версии, которую вы хотите использовать. Инструкции смотрите в документации PostgreSQL .
После обновления PostgreSQL и Ubuntu до поддерживаемых версий обновите ArcGIS Server, загрузите новый файл st_geometry.so с My Esri, поместите файл в каталог PostgreSQL lib, остановите ArcGIS Server, запустите скрипт Pythonдля обновления каждой базы геоданных и перезапустите ArcGIS Server.
- Установите новую версию ArcGIS Server на экземпляр EC2 и выполните обновление так же, как вы бы это сделали на локальном сайте ArcGIS Server.
Смотрите Руководство по установке ArcGIS Server для получения дополнительных инструкций.
- Создайте резервные копии баз геоданных перед тем, как выполнить их обновление.
Одним из способов резервного копирования базы геоданных является создание снимка тома EBS, содержащего ваши данные. Инструкции смотрите в документации Amazon Web Services.
- Также перед обновлением скачайте файл st_geometry.so с My Esri и замените файл в /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 /usr/downloads/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")
Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.
- Сохраните файл и закройте текстовый редактор.
- Используйте stopserver.sh, чтобы остановить ArcGIS Server.
- Запустите скрипт обновления в 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().
- Измените скрипт и запустите его для каждой базы геоданных, которую необходимо обновить.
- После обновления всех баз геоданных используйте startserver.sh, чтобы перезапустить ArcGIS Server.
Обновление баз геоданных на EGDBHOST
Если вы создали сайт ArcGIS Server и базы геоданных с помощью ArcGIS Server Cloud Builder on Amazon Web Services, выполните описанные в этом разделе действия для обновления баз геоданных в PostgreSQL, которые находятся в отдельном выделенном экземпляре AWS (EGDBHOST).
Примечание:
Вы не можете напрямую обновить ArcGIS Server 10.6.1 и более ранние версии до 11.1. Сначала необходимо выполнить обновление до промежуточной версии, а затем выполнить обновление до 11.1.
Любая база геоданных в PostgreSQL, изначально созданная с использованием ArcGIS Server Cloud Builder on Amazon Web Services версии 10.6.1 или ранее, потребует обновления PostgreSQL до поддерживаемой версии и обновления операционной системы Ubuntu до поддерживаемой версии. Вероятно, вам также придется обновить каждую из них до промежуточной версии. Например, если вы обновляете сайт ArcGIS Server 10.5.1 с базой геоданных в PostgreSQL, обновите ArcGIS Server до версии 10.7.1 и обновите операционную систему и PostgreSQL до версий, которые поддерживались в 10.7.1.
Всегда создавайте резервную копию базы данных и сайта перед обновлением. Протестируйте промежуточное обновление, прежде чем переходить к обновлению до 11.1.
Порядок обновления PostgreSQL зависит от имеющей версии PostgreSQL и версии, которую вы хотите использовать. Инструкции смотрите в документации PostgreSQL .
После обновления PostgreSQL и Ubuntu, обновите ArcGIS Server на SITEHOST, загрузите новый файл st_geometry.so с My Esri и поместите его в каталог PostgreSQL lib на EGDBHOST, остановите ArcGIS Server, запустите скрипт Python из SITEHOST для обновления каждой базы геоданных и перезапустите ArcGIS Server.
- Установите новую версию ArcGIS Server на экземпляр EC2 и выполните обновление так же, как вы бы это сделали на локальном сайте ArcGIS Server.
Инструкции по обновлению см. в Руководстве по установке ArcGIS Server.
- Создайте резервные копии баз геоданных перед тем, как выполнить их обновление.
Одним из способов резервного копирования базы геоданных является создание снимка тома EBS, содержащего ваши данные. Для получения инструкций по созданию снимка тома EBS см. документацию Amazon Web Services.
- Также перед обновлением скачайте файл st_geometry.so с My Esri и замените его в /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 из каталога, в который вы его загрузили.
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")
Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.
- Сохраните файл и закройте текстовый редактор.
- Используйте stopserver.sh, чтобы остановить ArcGIS Server.
- Запустите скрипт обновления в 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 и снова запустите его, и так далее для каждой базы геоданных, которую необходимо обновить.
- После обновления всех баз геоданных используйте startserver.sh, чтобы перезапустить ArcGIS Server.
Перенос ресурсов в базу геоданных 11.1 в экземпляре сервиса базы данных Amazon
Если вы выполняете обновление с ArcGIS 10 на AWS, или если вы хотите избежать необходимости обновления и обслуживания PostgreSQL и операционной системы, переместите свои ресурсы на экземпляр Amazon Relational Database Service (RDS) и повторно опубликуйте сервисы. Ниже приводится краткое описание этого перехода:
- Создайте базу геоданных в экземпляре Amazon RDS for PostgreSQL или Amazon Aurora (PostgreSQL-compatible edition) и зарегистрируйте ее на своем обновленном (или новом) сайте ArcGIS Server 11.1.
- Переместите имеющиеся данные в новую базу геоданных.
- Переопубликуйте сервисы.
Более подробную информацию о публикации сервисов см. в справке ArcGIS Server.
- Обновите приложения для работы с новыми сервисами.
Способ обновления зависит от метода создания данных. Для пользовательских приложений, непосредственно использующих кредиты, обновите URL сервиса. Для приложений, созданных с помощью портала ArcGIS Enterprise или элемента ArcGIS Online, необходимо обновить слой на карте или в сцене, используемой в приложении.