Skip To Content

Обновление многопользовательских баз геоданных в PostgreSQL на Amazon Web Services

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

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

Обновление программного обеспечения 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.

  1. Убедитесь в том, что у вас имеется надежная, актуализированная резервная копия базы данных в Amazon RDS for PostgreSQL.
  2. Подключитесь к Amazon RDS for PostgreSQL и убедитесь, что пользователю sde предоставлена роль rds_superuser.
  3. Выполните вход в один из своих экземпляров ArcGIS Server в качестве пользователя arcgis AWS.
  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, который находится на том же экземпляре, что и ArcGIS Server SITEHOST.

Обновите ArcGIS Server, переместите новый файл st_geometry.so в директорию lib PostgreSQL, остановите 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 SITEHOST ).

Обновите ArcGIS Server на SITEHOST, переместите новый файл st_geometry.so из SITEHOST в директорию lib PostgreSQL на 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.8.1 в экземпляре сервиса базы данных Amazon

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