Вы можете переместить существующую многопользовательскую базу геоданных для PostgreSQL с локального сервера на экземпляр ArcGIS Enterprise on Amazon Web Services или с одного экземпляра ArcGIS Enterprise on Amazon Web Services на другой, используя файл резервного копирования.
Для этого оба кластера базы данных – и исходный, и целевой – должны быть совместимыми для переноса баз данных с помощью файла pg_dump. Чтобы проверить, являются ли используемые версии совместимыми, см. Документацию PostgreSQL.
Если версии PostgreSQL совместимы, создайте резервную копию исходной базы геоданных, перенесите файл резервной копии в целевой экземпляр ArcGIS Enterprise on Amazon Web Services, создайте базу данных и роли пользователей в целевом кластере базы данных PostgreSQL, а затем восстановите эту базу данных.
Примечание:
Этот рабочий процесс не применяется к сервисам Amazon Relational Database Services for PostgreSQL.
Проверка пользовательских параметров переменных
Пользовательские настройки, имевшиеся в исходном кластере базы данных, которые вы хотите сохранить, необходимо добавить в новый кластер базы геоданных. Настройки конфигурации сохраняются в файле postgresql.conf. Сделайте копию этого файла и переместите ее в целевой кластер базы данных на своем экземпляре ArcGIS Enterprise on Amazon Web Services.
Файл postgresql.conf на экземпляре ArcGIS Enterprise on Amazon Web Services находится в /data подключенного диска.
Создание резервной копии исходной базы геоданных
Вы можете создать резервную копию базы данных для переноса файлов с данными на экземпляр ArcGIS Enterprise on Amazon Web Services.
Используйте команду pg_dump PostgreSQL для создания дамп-файла.
- Подключитесь к серверу, на котором хранится исходная база геоданных.
- Выполните команду pg_dump в командной строке для создания резервной копии базы данных.
pg_dump -U postgres -F c > /data/spdbbu11012.dump
Более подробно о команде pg_dump см. в документации PostgreSQL.
Перемещение файла резервной копии в целевой экземпляр
Есть несколько способов передачи файла дампа на целевой экземпляр. См. раздел Способы передачи данных в Amazon Web Services, чтобы ознакомиться с различными вариантами перемещения данных. Можно использовать тот же метод для переноса файла postgresql.conf, если это необходимо.
Убедитесь, что вы разместили файл дампа на томе Elastic Block Store (EBS).
Когда файл дампа будет находиться на целевом экземпляре ArcGIS Enterprise on Amazon Web Services, подготовьте кластер базы данных PostgreSQL.
Подготовка кластера целевой базы данных PostgreSQL
Вам необходима база данных, в которую будет восстановлен файл дампа. Также в целевом кластере должны быть все роли пользователей, владеющих данными исходной базы данных.
Размещение файла конфигурации
При использовании настроенного файла postgresql.conf создайте резервную копию файла postgresql.conf по умолчанию на целевом экземпляре и разместите настроенный файл в /data подключенного диска.
Создание пустой базы данных
Создаваемая база данных должна иметь такое же имя, как и база данных исходного кластера базы данных PostgreSQL, для которой был создан файл дампа. Имена баз данных должны быть уникальными в пределах кластера базы данных. Это значит, что при перемещении баз данных из одного ArcGIS Enterprise on Amazon Web Services в другой будет верным одно из следующих утверждений:
- Исходная база данных не может иметь такое же имя, как и база данных целевого кластера баз данных.
или
- Вы должны удалить одноименную базу данных из целевого кластера баз данных PostgreSQL перед тем, как приступить к восстановлению перенесенного файла резервной копии.
- Войдите в целевой экземпляр EC2 в качестве привилегированного пользователя.
- Откройте командную строку и войдите под пользователем sde.
- Создайте базу данных, в которую вы будете восстанавливать файл дампа.
Помните о следующем:
- Имя, владелец и кодировка целевой базы данных должны быть такими же, как и у исходной базы данных.
- При использовании нестандартного шаблона для исходной базы данных, например, шаблона базы данных PostGIS, применяйте этот же шаблон и для целевой базы данных.
- Можно сохранить новую базу данных в существующее либо создать новое табличное пространство специально для этой базы данных. Если вы собираетесь использовать новое табличное пространство, его необходимо создать до создания базы данных.
CREATE DATABASE <dbname> WITH OWNER = sde TEMPLATE = template0 ENCODING = '<encoding of db>' TABLESPACE = LC_COLLATE = '' LC_CTYPE = '' CONNECTION LIMIT = -1;
Создание ролей учетных записей и групп
Кластер целевой базы данных может иметь роли логинов для каждого пользователя, владеющего данными исходной базы данных.
Если вы будете перемещать базу данных из одного экземпляра ArcGIS Enterprise on Amazon Web Services в другой с использованием ролей учетных записей по умолчанию, то вам не нужно создавать новые роли для кластера целевой базы данных. Если, однако, владельцами информации исходной базы данных являются пользователи с ролями, не заданными по умолчанию, вам необходимо будет создать роли с теме же именами в кластере целевой базы данных PostgreSQL. Аналогично, если вы планируете использовать группы логинов в целевой базе данных, вам нужно заново создать их и присвоить соответствующие роли.
См. документацию к PostgreSQL для получения информации о создании ролей для групп и логинов и добавлении логинов в группы.
Восстановление базы данных
Для восстановления базы данных используйте команду pg_restore.
Внимание:
Вы должны запустить команду pg_restore дважды: сначала для восстановления схемы public, которая содержит системную таблицу sde_spatial_references, а затем для восстановления остальных данных. Если вы этого не сделаете, пространственные данные восстановлены не будут.
- Подключитесь к целевому экземпляру ArcGIS Enterprise on Amazon Web Services (к тому, на который вы переместили дамп-файл).
- Откройте командную строку и войдите под пользователем sde.
- Выполните команду pg_restore в командной строке для восстановления схемы public в базе данных.
Для запуска команды pg_restore пользователь sde должен иметь статус пользователя superuser in PostgreSQL.
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;