Skip To Content

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

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

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

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

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

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

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

Перемещение с экземпляра 10 на текущий экземпляр.

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

Переход с экземпляра 10.1, 10.2.x, 10.3.x, 10.4.x на экземпляр 10.5

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

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

ArcGIS 10.1

9.0.5

ArcGIS 10.2

9.0.13

ArcGIS 10.2.1 и 10.2.2

9.2.4

ArcGIS 10.3

9.3.4

ArcGIS 10.3.1

9.3.6

ArcGIS 10.4.x

9.3.10

ArcGIS 10.5

9.3.12

Если вы хотите использовать PostgreSQL 9.3.12, вы можете переместить ваши данные на ArcGIS Server 10.5 for AWS. Помните, что PostgreSQL больше не поддерживает версии 9.0.x СУБД, в связи с чем необходимо либо запустить более новый экземпляр и переместить свои данные, либо обновить PostgreSQL на имеющемся экземпляре. Следуйте инструкциям документации PostgreSQL для обновления PostgreSQL.

Обновление программного обеспечения 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 Server 10.5 for Server, вам нужно обновить до поддерживаемой версии и PostgreSQL.

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

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

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

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

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

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

  2. Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ это сделать – создать резервную копию вашего сайта в Cloud Builder (если вы создали ваш сайт с помощью Cloud Builder) или сделать снимок тома EBS, который содержит ваши данные. Если вы желаете сделать снимок тома EBS, см. документацию Amazon Web Services для подробной информации.
  3. Также до обновления скопируйте файл st_geometry.so из /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 Server на SITEHOST, переместите новый файл st_geometry.so из SITEHOST в папку lib PostgreSQL на EGDBHOST, остановите ArcGIS Server, запустите скрипт Python из SITEHOST для обновления каждой базы геоданных и перезапустите ArcGIS Server.

  1. Установите новую версию ArcGIS Server на своем экземпляре AWS.
  2. Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ сделать это – создать снимок тома EBS, содержащего ваши данные. Для получения инструкций по созданию снимка тома EBS см. документацию Amazon Web Services.
  3. Также до обновления скопируйте файл st_geometry.so из /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 из /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.