Перемещение базы геоданных в PostgreSQL на ArcGIS Server на AWS
В этом разделе
- Проверка пользовательских параметров переменных
- Создание резервной копии исходной базы геоданных.
- Перемещение файла резервной копии в целевой экземпляр
- Подготовка кластера целевой базы данных PostgreSQL
- Восстановление базы данных
Вы можете переместить существующую многопользовательскую базу геоданных для PostgreSQL с локального сервера на экземпляр ArcGIS Server on Amazon Web Services или с одного экземпляра ArcGIS Server on Amazon Web Services на другой, используя файл резервной копии.
Для этого создайте резервную копию исходной базы геоданных, передайте файл резервной копии в целевой экземпляр ArcGIS Server on Amazon Web Services, создайте базу данных и роли пользователей в целевом кластере базы данных PostgreSQL, а затем восстановите базу данных.
Проверка пользовательских параметров переменных
Пользовательские настройки, имевшиеся в исходном кластере базы данных, которые вы хотите сохранить, необходимо добавить в новый кластер базы геоданных. Настройки конфигурации сохраняются в файле postgresql.conf. Сделайте копию этого файла и переместите ее в целевой кластер базы данных вашего экземпляра ArcGIS Server on Amazon Web Services.
Файл postgresql.conf на экземпляре ArcGIS Server on Amazon Web Services находится в папке /data подключенного диска.
Создание резервной копии исходной базы геоданных.
Вы можете создать резервную копию базы данных для переноса файлов с данными на экземпляр ArcGIS Server on Amazon Web Services.
Воспользуйтесь приложением PostgreSQL pg_dump для создания файла дампа.
- Подключитесь к серверу, на котором хранится исходная база геоданных.
- Запустите команду pg_dump в командной строке для создания резервной копии базы данных.
pg_dump -U postgres -F c > /data/spdbbu11012.dump
Более подробно о применении команды pg_dump см. в документации PostgreSQL.
Перемещение файла резервной копии в целевой экземпляр
Есть несколько способов передачи файла дампа на целевой экземпляр. См. раздел Способы передачи данных в Amazon Web Services, чтобы ознакомиться с различными вариантами перемещения данных. Можно использовать тот же метод для переноса файла postgresql.conf, если это необходимо.
Убедитесь, что вы разместили файл дампа на томе Elastic Block Store (EBS).
Когда файл дампа будет находиться на целевом экземпляре ArcGIS Server on Amazon Web Services, подготовьте кластер базы данных PostgreSQL.
Подготовка кластера целевой базы данных PostgreSQL
Вам необходима база данных, в которую будет восстановлен файл дампа. Также в целевом кластере должны быть все роли пользователей, владеющих данными исходной базы данных.
Размещение файла конфигурации
При использовании настроенного файла postgresql.conf создайте резервную копию файла postgresql.conf по умолчанию на целевом экземпляре и разместите настроенный файл в папку /data подключенного диска.
Создание пустой базы данных
Создаваемая база данных должна иметь такое же имя, как и база данных исходного кластера базы данных PostgreSQL, для которой был создан файл дампа. Имена баз данных должны быть уникальными в пределах кластера базы данных. Это значит, что при перемещении баз данных из одного ArcGIS Server on Amazon Web Services в другой, будет верным одно из следующих утверждений:
- Ваша исходная база данных не может быть одной из баз данных по умолчанию (egdb или geodata).
или
- Вам нужно удалить базу данных по умолчанию с тем же именем из целевого кластера базы данных PostgreSQL перед восстановлением переданного файла резервной копии.
- Войдите в целевой экземпляр ArcGIS Server on Amazon Web Services в качестве привилегированного пользователя.
- Откройте командную строку и войдите под пользователем sde.
- Создайте базу данных, в которую вы будете восстанавливать файл дампа.
Помните о следующем:
- Имя, владелец и кодировка целевой и исходной баз данных должны совпадать.
- При использовании нестандартного шаблона для исходной базы данных, например, шаблона базы данных PostGIS, применяйте этот же шаблон и для целевой базы данных.
- Можно сохранить новую базу данных в существующее либо создать новое табличное пространство специально для этой базы данных. Если вы собираетесь использовать новое табличное пространство, вам необходимо создать его перед созданием базы данных.
CREATE DATABASE <dbname> WITH OWNER = sde TEMPLATE = template0 ENCODING = '<encoding of db>' TABLESPACE = LC_COLLATE = '' LC_CTYPE = '' CONNECTION LIMIT = -1;
Создание ролей учетных записей и групп
Кластер целевой базы данных может иметь роли логинов для каждого пользователя, владеющего данными исходной базы данных.
При перемещении базы данных из одного экземпляра ArcGIS Server on Amazon Web Services в другой с использованием ролей учетных записей по умолчанию вам не нужно создавать новые роли для кластера целевой базы данных. Если, однако, владельцами информации исходной базы данных являются пользователи с ролями, не заданными по умолчанию, вам необходимо будет создать роли с теме же именами в кластере целевой базы данных PostgreSQL. Аналогично, если вы планируете использовать группы логинов в целевой базе данных, вам нужно заново создать их и присвоить соответствующие роли.
См. документацию к PostgreSQL для получения информации о создании ролей для групп и логинов и добавлении логинов в группы.
Восстановление базы данных
Воспользуйтесь приложением pg_restore PostgreSQL для восстановления базы данных.
Внимание:
Вам придется запустить команду pg_restore дважды: сначала для восстановления схемы public, содержащей системную таблицу sde_spatial_references, а затем для восстановления остальных данных. Если вы этого не сделаете, пространственные данные восстановлены не будут.
- Подключитесь к целевому экземпляру ArcGIS Server on Amazon Web Services (к тому, на который вы переместили файл дампа).
- Откройте командную строку и войдите под пользователем sde.
- Запустите команду pg_restore в командной строке для восстановления схемы public базы данных.
Пользователь sde должен являться суперпользователем PostgreSQL для запуска команды pg_restore.
pg_restore -U sde -n public -d spdb /data/spdbbu11012.dump Password:
- Выполните команду pg_restore вновь, чтобы восстановить базу данных целиком.
pg_restore -U sde -d spdb /data/spdbbu11012.dump Password:
Более подробно о применении команды pg_restore см. в документации PostgreSQL.
После того как база данных будет восстановлена в кластере целевой базы данных, убедитесь, что все нужные схемы и таблицы представлены в новой базе данных. Для этого запросите каталоги PostgreSQL для хранения этой информации. Например, можно запросить каталог pg_tables, чтобы увидеть все таблицы базы данных и схема, в которой они сохранены.
Настройка переменных в базах данных
Теперь вам надо воспользоваться информацией о пользовательской переменной базы данных, полученной ранее, для установки переменных новой базы данных.
В этих шагах содержатся инструкции о том, как добавить и установить переменную search_path. Те же шаги используются для присвоения пользовательских значений другим переменным базы данных.
- Подключитесь к новой базе данных из psql в качестве пользователя sde.
- В строке psql укажите путь для поиска базы данных, включающий схему sde.
SET search_path TO "$user",public,sde;