Обновление баз геоданных в PostgreSQL в ArcGIS Server for Amazon Web Services
В следующих разделах описаны четыре сценария обновления баз геоданных:
- Перемещение данных с ArcGIS 10.1 for Amazon Web Services на ArcGIS 10.2.1 for Amazon Web Services
- Перемещение данных с ArcGIS 10 for Amazon Web Services на ArcGIS 10.2.1 for Amazon Web Services
- Перемещение данных с экземпляра ArcGIS Server 10.1 или 10.2 for Amazon Web Services на экземпляр ArcGIS Server 10.2.1 for Amazon Web Services
- Обновление существующего экземпляра ArcGIS 10.1 for Amazon Web Services до версии 10.2.1 и обновление баз геоданных, которые находятся на том же экземпляре, что и ArcGIS Server (SITEHOST)
- Обновление существующего экземпляра ArcGIS 10.1 for Amazon Web Services до версии 10.2.1 и обновление баз геоданных, которые находятся на собственном экземпляре Amazon Web Services (EGDBHOST)
Перемещение данных с экземпляра ArcGIS Server 10.1 for Amazon Web Services на экземпляр ArcGIS Server 10.2.1 for Amazon Web Services
Один из способов перехода на ArcGIS 10.2.1 – это создание нового экземпляра ArcGIS Server 10.2.1 for Amazon Web Services, перемещение данных и повторная публикация сервисов.
Перемещение данных с экземпляра ArcGIS 10 for Amazon Web Services EGDB на экземпляр ArcGIS Server 10.2.1 for Amazon Web Services
В ArcGIS 10 существовал отдельный образ Amazon Machine Image (AMI) с многопользовательской базой геоданных, которая содержала кластер базы данных PostgreSQL 8.3.8 для Windows. В ArcGIS 10.2.1, образ ArcGIS Server (Linux) с PostgreSQL AMI работает на Ubuntu Linux и может дополнительно содержать кластер базы данных PostgreSQL 9.2.4. Вы не можете перейти напрямую с использования базы данных в PostgreSQL на Windows на использование базы данных на Linux. Однако, когда вы переходите на ArcGIS Server 10.2.1 for Amazon Web Services, вам необходимо переместить или заново загрузить ваши данные. См. раздел "Опции для перемещения файлов в облаке" в документе Способы передачи данных в Amazon Web Services. Как только все ваши данные будут перемещены на новый экземпляр, вам будет необходимо заново опубликовать ваши сервисы.
Перемещение данных с экземпляра ArcGIS Server 10.1 или 10.2 for Amazon Web Services на экземпляр ArcGIS Server 10.2.1 for Amazon Web Services
В ArcGIS версий 10.1 и 10.2, ArcGIS Server (Linux) с PostgreSQL AMI содержал PostgreSQL 9.0.13. Если вы хотите переместить ваши данные на ArcGIS Server 10.2.1 for Amazon Web Services и PostgreSQL 9.2.4, переместите или заново загрузите ваши данные. См. раздел "Опции для перемещения файлов в облаке" в документе Способы передачи данных в Amazon Web Services. Как только все ваши данные будут перемещены на новый экземпляр, вам будет необходимо заново опубликовать ваши сервисы.
Обновление существующего экземпляра ArcGIS 10.1 for Amazon Web Services до версии 10.2.1 и обновление баз геоданных, которые находятся на том же экземпляре, что и ArcGIS Server (SITEHOST)
Подробные шаги в этом разделе ознакомят вас с процессом обновления баз геоданных в PostgreSQL, находящихся на том же экземпляре, что и ArcGIS for Server (SITEHOST).
Обновите ArcGIS for Server, переместите новый файл st_geometry.so в директорию библиотеки lib PostgreSQL, остановите службу ArcGIS Server, запустите скрипт Python для обновления каждой из баз геоданных, затем перезапустите службу ArcGIS Server.
-
Вы должны заранее установить пакет обновлений или файл обновлений (патч) в ArcGIS for Server на вашем экземпляре AWS.
Если вы еще не установили программное обеспечение, вы можете ознакомиться с инструкциями в разделе Применение обновления ArcGIS для сайта, состоящего из одного компьютера или Применение обновления ArcGIS для сайта, состоящего из нескольких компьютеров.
- Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ сделать это – создать снимок (snapshot) тома (volume) EBS, содержащего ваши данные.
- Также перед началом обновления вы должны скопировать файл st_geometry.so из папки /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 в /usr/lib/postgresql/9.0/lib.
- Файл st_geometry.so принадлежит пользователю root. Поэтому после подключения к экземпляру Amazon Web Services SITEHOST из-под пользователя ubuntu, переключитесь на пользователя root:
sudo su -
Примечание:
Помните о том, что вы не можете подключиться, как пользователь arcgis, и затем переключиться на пользователя root.
- Перед тем, как вы скопируете новый файл, переименуйте старый.
mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
- Скопируйте новый файл st_geometry.so.
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/9.0/lib
- Измените права доступа для файла st_geometry.so, чтобы позволить другим пользователям читать и производить его запуск.
chmod 755 /usr/lib/postgresql/9.0/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")
Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.
- Сохраните файл и закройте текстовый редактор.
- Остановите службу ArcGIS Server.
/arcgis/server/stopserver.sh
- Запустите скрипт в среде 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().
- Измените скрипт и запустите его снова для каждой базы геоданных, которую необходимо обновить.
- Как только все базы геоданных будут обновлены, запустите службу ArcGIS Server.
/arcgis/server/startserver.sh
Если ваш сайт состоит из нескольких компьютеров, перейдите к шагу 14 в разделе Применение обновления ArcGIS для сайта, состоящего из нескольких компьютеров с Ubuntu.
Обновление существующего экземпляра ArcGIS 10.1 for Amazon Web Services до версии 10.2.1 и обновление баз геоданных, которые находятся на собственном экземпляре Amazon Web Services (EGDBHOST)
Подробные шаги в этом разделе ознакомят вас с процессом обновления баз геоданных в PostgreSQL, находящихся на собственном, выделенном экземпляре Amazon Web Services (EGDBHOST).
Обновите ArcGIS for Server на SITEHOST, переместите новый файл st_geometry.so из SITEHOST в директорию библиотеки lib PostgreSQL на EGDBHOST, остановите службу ArcGIS Server, запустите скрипт Python на SITEHOST для обновления каждой базы геоданных, затем запустите службу ArcGIS Server.
-
Вы должны заранее установить пакет обновлений или файл обновлений (патч) в ArcGIS for Server на вашем экземпляре AWS.
Вы можете ознакомиться с инструкциями в разделе Применение пакета обновлений к сайту, находящемуся на отдельном компьютере или Применение пакета обновлений к сайту, состоящему из нескольких компьютеров.
- Создайте резервные копии ваших баз геоданных перед тем, как выполнить их обновление. Самый простой способ сделать это – создать снимок (snapshot) тома (volume) EBS, содержащего ваши данные.
- Также перед началом обновления вы должны скопировать файл st_geometry.so из папки /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 в /usr/lib/postgresql/9.0/lib.
- Перед тем, как вы скопируете новый файл, переименуйте старый файл на EGDBHOST. Поскольку файл st_geometry.so принадлежит пользователю root, то войдите в EGDBHOST из-под пользователя ubuntu, а затем переключитесь на пользователя root.
sudo su - mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
- Вы должны переместить файл st_geometry.so из /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 на SITEHOST в директорию /usr/lib/postgresql/9.0/lib на EGDBHOST.
Поскольку две исходные и целевые директории на различных экземплярах не могут быть доступны одному и тому же пользователю, войдите на SITEHOST как пользователь arcgis и скопируйте файл в директорию gisdata на EGDBHOST.
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /net/EGDBHOST/gisdata/st_geometry.so
- Выполните вход на EGDBHOST из-под пользователя ubuntu.
- Переключитесь на пользователя root.
sudo su -
- Скопируйте новый файл st_geometry.so из gisdata в /usr/lib/postgresql/9.0/lib.
cp /gisdata/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometry.so
- Измените права доступа для файла st_geometry.so, чтобы позволить другим пользователям читать и производить его запуск.
chmod 755 /usr/lib/postgresql/9.0/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")
Более подробно о синтаксисе инструмента см. в разделах Создание подключения к базе данных и Обновление базы геоданных.
- Сохраните файл и закройте текстовый редактор.
- Остановите службу ArcGIS Server.
/arcgis/server/stopserver.sh
- Запустите скрипт в среде 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 и запустите его снова для каждой базы геоданных, которую необходимо обновить.
- Как только все базы геоданных будут обновлены, запустите службу ArcGIS Server.
/arcgis/server/startserver.sh
Если ваш сайт состоит из нескольких компьютеров, перейдите к шагу 14 в разделе Применение обновления ArcGIS для сайта, состоящего из нескольких компьютеров с Ubuntu.