Skip To Content

Обновление баз геоданных PostgreSQL в ArcGIS Server for Amazon Web Services

В этом разделе

Для обновления функциональности базы геоданных вы можете либо создать экземпляр ArcGIS Server 10.3.1 for Amazon Web Services (AWS), переместить ваши данные в новую базу геоданных и снова опубликовать сервисы, либо обновить программное обеспечение ArcGIS на существующем экземпляре AWS и обновить базу геоданных.

В разделах ниже описываются способы доведения вашей базы геоданных до самого современного состояния, и ситуации, когда их можно применять.

Создание экземпляра ArcGIS 10.3.1 for AWS и перемещение ваших данных с предшествующего экземпляра

Самый простой способ получить самые свежие версии ArcGIS и PostgreSQL – создать экземпляр ArcGIS Server for AWS из последнего Amazon Machine Image (AMI), переместить ваши данные и опубликовать заново сервисы. См. Образы ArcGIS Server AMI для получения подробной информации о программном обеспечении и версиях операционных систем, представленных в последних образах ArcGIS Server AMI.

Более подробно о перемещении данных см. тему "Опции передачи данных в облако" в разделе Способы передачи данных в Amazon Web Services.

Если вы используете экземпляр ArcGIS Server 10 AWS с данными в PostgreSQL, то вы должны применить этот метод обновления вашей базы геоданных. Если вы собираетесь переместить свои данные на экземпляр Amazon Relational Database Service (RDS) for PostgreSQL, вам нужно создать экземпляры, переместить данные и заново опубликовать сервисы.

Переход с экземпляра 10 на экземпляр 10.3.1

В ArcGIS 10 существовал отдельный образ AMI с многопользовательской базой геоданных, которая содержала кластер базы данных PostgreSQL 8.3.8 для Windows. В ArcGIS 10.3.1 образ ArcGIS Server (Linux) с PostgreSQL AMI работает на Ubuntu Linux и может дополнительно содержать кластер базы данных PostgreSQL 9.3.4. Вы не можете переместить данные напрямую из базы данных PostgreSQL для Windows на Linux; поэтому, если вы переходите на ArcGIS 10.3.1 Server for AWS с ArcGIS 10 Server for AWS, то вам следует переместить или перезагрузить ваши данные.

Переход с экземпляра 10.1 или 10.2.x на экземпляр 10.3.1

Версия PostgreSQL, входящая в ArcGIS Server AMI, изменилась в течением времени. Ниже приведена таблица версий PostgreSQL, включённых в каждый Linux AMI:

ArcGIS Server (Linux) с PostgreSQL AMIВключённая версия PostgreSQL

ArcGIS 10.1

9.05

ArcGIS 10.2

9.013

ArcGIS 10.2.1 и 10.2.2

9.2.4

ArcGIS 10.3

9.3.4

ArcGIS 10.3.1

9.3.6

Если вы хотите использовать PostgreSQL 9.3.6, вы можете переместить ваши данные на ArcGIS Server 10.3.1 for AWS.

Обновление программного обеспечения ArcGIS на существующем экземпляре AWS и обновление базы геоданных

Вы можете установить самую позднюю версию ArcGIS Server на вашем существующем экземпляре, обновить базу геоданных в PostgreSQL и продолжить использовать имеющиеся данные и сервисы, если версия установленного вами ArcGIS Server совместима с версией PostgreSQL на вашем экземпляре. Будьте внимательны, операционная система и всё остальное программное обеспечение на экземпляре останется прежней версии, которая была при создании вашего экземпляра. Например, если вы создали ваш экземпляр из образа ArcGIS Server 10.2.2 for AWS AMI, вы будете продолжать использовать базу данных PostgreSQL 9.2.4 на ОС Ubuntu 12.04.

Если имеющаяся на вашем экземпляре версия PostgreSQL несовместима с новой версией ArcGIS Server, необходимо также обновить PostgreSQL до поддерживаемой версии. К примеру, если вы запустили экземпляр ArcGIS 10.2 и хотите на этом экземпляре обновить его до версии ArcGIS 10.3.1 for Server, вам нужно обновить до поддерживаемой версии и PostgreSQL.

Следующие два раздела объясняют, как обновить базу геоданных PostgreSQL на существующем экземпляре ArcGIS Server AWS. (Эти инструкции неприменимы к базам данных Amazon RDS for PostgreSQL.)

Обновление ArcGIS Server на существующем экземпляре ArcGIS Server for AWS и обновление баз геоданных на SITEHOST

Если вы хотите обновить экземпляр ArcGIS Server for AWS, выполните следующие шаги, чтобы обновить базы геоданных в PostgreSQL, которые располагаются на том же экземпляре, что и ArcGIS Server (SITEHOST).

Обновите ArcGIS for Server, переместите новый файл st_geometry.so в директорию библиотеки lib PostgreSQL, остановите сервис ArcGIS Server, запустите скрипт Python для обновления каждой из баз геоданных, а затем перезапустите сервис ArcGIS Server.

  1. Установите последнюю версию ArcGIS for Server на вашем экземпляре AWS.

    Если вы еще не установили программное обеспечение, вы можете ознакомиться с инструкциями в разделе Применение обновления ArcGIS для сайта, состоящего из одного компьютера или Применение обновления ArcGIS для сайта, состоящего из нескольких компьютеров с Ubuntu.

  2. Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ это сделать – создать резервную копию вашего сайта в Cloud Builder (если вы создали ваш сайт с помощью Cloud Builder) или сделать снимок тома EBS, который содержит ваши данные. Если вы желаете сделать снимок тома EBS, см. документацию Amazon Web Services для подробной информации.
  3. Также до обновления скопируйте файл st_geometry.so file из папки /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 в /usr/lib/postgresql/<postgresql version>/lib.
    1. Файл st_geometry.so принадлежит пользователю root, следовательно, после подключения к экземпляру Amazon Web Services SITEHOST из-под ubuntu переключите пользователя на root:
      sudo su -
      Примечание:

      Помните о том, что вы не можете подключиться, как пользователь arcgis, и затем переключиться на пользователя root.

    2. Перед тем, как вы скопируете новый файл, переименуйте старый.
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    3. Скопируйте новый файл st_geometry.so.
      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib
    4. Измените права доступа для файла st_geometry.so, чтобы позволить другим пользователям читать и производить его запуск.
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. Переключитесь на пользователя arcgis.
    su - arcgis
  5. Откройте текстовый редактор, чтобы создать скрипт обновления Python.

    vi upgrade.py

  6. Скопируйте следующий скрипт в текстовый редактор.

    Измените скрипт, чтобы использовать информацию, относящуюся к вашему сайту, включая имя экземпляра, пароль учетной записи 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")

    Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.

  7. Сохраните файл и закройте текстовый редактор.
  8. Остановите службу ArcGIS Server.
    /arcgis/server/stopserver.sh
  9. Запустите скрипт в среде 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<#>, если происходит ошибка обновления.

  10. Запустите следующий код в 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, значит, база геоданных была обновлена.

  11. Чтобы выйти из командной строки arcpy, введите quit().
  12. Измените скрипт и запустите его снова для каждой базы геоданных, которую необходимо обновить.
  13. Если вам требуется обновить PostgreSQL до поддерживаемой, создайте резервную копию базы данных и перейдите к обновлению PostgreSQL. Порядок обновления PostgreSQL зависит от имеющей версии PostgreSQL и версии, которую вы хотите использовать. Дополнительные сведения см. в документации к PostgreSQL.
  14. После обновления всех баз геоданных (и, при необходимости, баз данных), перезапустите ArcGIS Server.

    /arcgis/server/startserver.sh

Если ваш сайт состоит из нескольких компьютеров, то перейдите к шагу 11 в разделе Применение обновления ArcGIS для сайта, состоящего из нескольких компьютеров с Ubuntu.

Обновление ArcGIS Server на существующем экземпляре ArcGIS Server for AWS и обновление баз геоданных, которые находятся на своём собственном экземпляре AWS (EGDBHOST)

Если вы хотите обновить экземпляр ArcGIS Server for AWS, выполните следующие шаги в данном разделе, чтобы обновить базы геоданных в PostgreSQL, которые располагаются на собственном специальном экземпляре AWS (EGDBHOST).

Обновите ArcGIS for Server на SITEHOST, переместите новый файл st_geometry.so из SITEHOST в директорию библиотеки lib PostgreSQL на EGDBHOST, остановите сервис ArcGIS Server, запустите скрипт Python на SITEHOST для обновления каждой базы геоданных и перезапустите сервис ArcGIS Server.

  1. Установите новую версию ArcGIS for Server на вашем экземпляре AWS.
  2. Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ сделать это – создать снимок тома EBS, содержащего ваши данные. Для получения инструкций по созданию снимка тома EBS см. документацию Amazon Web Services.
  3. Также до обновления скопируйте файл st_geometry.so file из папки /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 в /usr/lib/postgresql/<postgresql version>/lib.
    1. Перед тем, как вы скопируете новый файл, переименуйте старый файл на 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
    2. Вам следует переместить файл st_geometry.so file из /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
    3. Выполните вход на EGDBHOST из-под пользователя ubuntu.
    4. Переключитесь на пользователя root.
      sudo su -
    5. Скопируйте новый файл st_geometry.so из gisdata в /usr/lib/postgresql/<postgresql version>/lib.
      cp /gisdata/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
    6. Измените права доступа для файла st_geometry.so, чтобы позволить другим пользователям читать и производить его запуск.
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. Войдите на SITEHOST из-под пользователя arcgis.
  5. Откройте текстовый редактор, чтобы создать скрипт обновления Python.

    Пример:

    vi upgrade.py

  6. Скопируйте следующий скрипт в текстовый редактор.

    Измените скрипт, чтобы использовать информацию, относящуюся к вашему сайту, включая имя экземпляра, пароль учетной записи 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")

    Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.

  7. Сохраните файл и закройте текстовый редактор.
  8. Остановите службу ArcGIS Server.
    /arcgis/server/stopserver.sh
  9. Запустите скрипт в среде 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<#>.

  10. Чтобы убедиться, что ваша база данных обновлена, откройте окно 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, значит, база геоданных была обновлена.

  11. Чтобы выйти из командной строки arcpy, введите quit().
  12. Измените скрипт upgrade.py и запустите его снова для каждой базы геоданных, которую необходимо обновить.
  13. Если вам требуется обновить PostgreSQL до поддерживаемой, создайте резервную копию базы данных и перейдите к обновлению PostgreSQL. Порядок обновления PostgreSQL зависит от имеющей версии PostgreSQL и версии, которую вы хотите использовать. Дополнительные сведения см. в документации к PostgreSQL.
  14. После обновления всех баз геоданных (и, при необходимости, баз данных), перезапустите ArcGIS Server.

    /arcgis/server/startserver.sh

Если ваш сайт состоит из нескольких компьютеров, то перейдите к шагу 11 в разделе Применение обновления ArcGIS для сайта, состоящего из нескольких компьютеров с Ubuntu.