Skip To Content

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

Обновляйте базы геоданных, чтобы использовать реализованные в них новые функциональные возможности и усовершенствования. Варианты выполнения обновления многопользовательской базы геоданных в PostgreSQL на Amazon Web Services (AWS) следующие:

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

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

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

Если имеющаяся на вашем экземпляре версия PostgreSQL несовместима с новой версией ArcGIS Server необходимо также обновить PostgreSQL до поддерживаемой версии. К примеру, если вы запустили экземпляр ArcGIS 10.3 и хотите на этом экземпляре обновить его до версии ArcGIS Server 10.9.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.

  1. Убедитесь в том, что у вас имеется надежная, актуализированная резервная копия базы данных в Amazon RDS for PostgreSQL.
  2. Подключитесь к Amazon RDS for PostgreSQL и обновите права доступа пользователя sde следующим образом:
    1. Предоставьте пользователю sde роль rds_superuser.
    2. Пользователю SDE необходимо предоставить все роли, владеющие данными в базе геоданных.

    Отзовите эти роли у пользователя SDE после того, как база геоданных обновится.

  3. Выполните вход в один из своих экземпляров ArcGIS Server на AWS в качестве пользователя arcgis.
  4. В текстовом редакторе создайте скрипт Python для обновления своей базы геоданных.

    Например:

    vi upgrade.py

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

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

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

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

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

  10. Чтобы выйти из командной строки arcpy, введите quit().
  11. Измените скрипт upgrade.py и снова запустите его, и так далее для каждой базы геоданных, которую необходимо обновить.

Обновление баз геоданных на SITEHOST

Если вы создали свои сайт и базы геоданных ArcGIS Server помощью ArcGIS Server Cloud Builder on Amazon Web Services, выполните описанные в этом разделе действия для обновления баз геоданных в кластере базы данных PostgreSQL, который находится на том же экземпляре, что и SITEHOST ArcGIS Server.

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

  1. Установите новую версию ArcGIS Server на ваш экземпляр AWS и выполните обновление так же, как вы бы это сделали на автономном сайте ArcGIS Server.

    Инструкции по обновлению см. в Руководстве по установке ArcGIS Server.

  2. Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ сделать это – создать снимок тома 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

Обновление баз геоданных на EGDBHOST

Если вы создали свои сайт и базы геоданных ArcGIS Server с помощью ArcGIS Server Cloud Builder on Amazon Web Services, выполните описанные в этом разделе действия для обновления баз геоданных в PostgreSQL, которые находятся в отдельном выделенном экземпляре AWS (EGDBHOST).

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

  1. Установите новую версию ArcGIS Server на ваш экземпляр AWS и выполните обновление так же, как вы бы это сделали на автономном сайте ArcGIS Server.

    Инструкции по обновлению см. в Руководстве по установке ArcGIS Server.

  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

Перенос ресурсов в базу геоданных 10.9.1 в экземпляре сервиса базы данных Amazon

Чтобы убедиться в том, что вы получили последнюю версию PostgreSQL и выполняете обновление с ArcGIS 10 на AWS, выполните следующее:

  • Создайте базу геоданных в экземпляре Amazon RDS for PostgreSQL или Amazon Aurora (PostgreSQL-compatible edition) и зарегистрируйте ее на своем обновленном (или новом) сайте ArcGIS Server 10.9.1.
  • Переместите имеющиеся данные в новую базу геоданных.
  • Переопубликуйте сервисы.

    Более подробную информацию о публикации сервисов см. в справке ArcGIS Server.

  • Обновите приложения для работы с новыми сервисами.

    Способ обновления зависит от метода создания данных. Для пользовательских приложений, непосредственно использующих кредиты, обновите URL сервиса. Для приложений, созданных с использованием портала ArcGIS Enterprise или элемента ArcGIS Online, необходимо обновить слой на карте или сцене, используемых в приложении.