pg_dump и pg_restore.
Предварительные требования
- Доступ к исходной базе данных PostgreSQL.
- На локальном компьютере должны быть установлены
pg_dumpиpg_restore. Обычно они входят в состав PostgreSQL. Если нет, их можно скачать с официального сайта PostgreSQL.
Настройка
- Две таблицы —
eventsиusers. Вeventsмиллион строк, а вusers— тысяча. - У
eventsесть индекс. - Представление поверх таблицы
events. - Пара последовательностей
Создайте дамп исходной базы данных
pg_dump, чтобы создать дамп-файл перечисленных выше объектов. Это простая команда:
- Замените
<user>,<password>,<host>,<port>и<database>на учетные данные исходной базы данных. Большинство провайдеров Postgres предоставляют строку подключения, которую можно использовать напрямую. --format directoryуказывает, что дамп нужно сохранить в формате каталога, который подходит дляpg_restore.-f rds-dumpуказывает выходной каталог для файлов дампа. Обратите внимание: этот каталог будет создан автоматически и не должен существовать заранее.- Вы также можете распараллелить создание дампа, добавив флаг
--jobs, а затем указав количество параллельных задач, которые нужно запустить. Подробнее см. в документации pg_dump.
Восстановите дамп в ClickHouse Managed Postgres
pg_restore.
Создайте экземпляр ClickHouse Managed Postgres
Восстановите дамп
pg_restore, чтобы восстановить данные из дампа в наш экземпляр ClickHouse Managed Postgres:
--verboseвыводит подробную информацию в процессе восстановления.- Здесь также можно использовать флаг
--jobs, чтобы распараллелить восстановление. Подробнее см. в документации pg_restore.
Проверьте миграцию
Что следует учитывать
- Убедитесь, что версии PostgreSQL исходной и целевой баз данных совместимы. Использование версии pg_dump старше, чем на исходном сервере, может привести к отсутствию некоторых возможностей или проблемам при восстановлении. В идеале используйте ту же основную версию pg_dump, что и для исходной базы данных, или более новую.
- Создание дампа и восстановление больших баз данных может занять значительное время. Заранее спланируйте этот процесс, чтобы свести простой к минимуму, и при возможности используйте параллельное создание дампа и восстановление (—jobs).
- Обратите внимание, что pg_dump / pg_restore не переносят все объекты, связанные с базой данных, и не сохраняют всё состояние среды выполнения. К ним относятся роли и членство в ролях, слоты репликации, конфигурация на уровне сервера (например, postgresql.conf, pg_hba.conf), табличные пространства и статистика времени выполнения.
Следующие шаги
pg_dump и pg_restore. Теперь можно перейти к изучению возможностей ClickHouse Managed Postgres и его интеграции с ClickHouse. Вот краткое 10-минутное руководство для быстрого старта: