Как восстановить резервную копию базы данных PostgreSQL без psql и pg_restore?

Я использую postgresql на встроенном устройстве с yocto (настроенный Linux). Пакет, содержащий postgresql, не предоставляет psql или pg_restore. / usr / bin предоставляет следующие инструменты:

введите описание изображения здесь

pg_basebackup указывает, что я могу создавать резервные копии. Но как мне восстановить резервную копию в терминале? С pg_restore или psql для меня это не проблема.

Обратите внимание: я хочу использовать резервную копию, созданную на моем компьютере под управлением Windows / Linux, для создания исходной базы данных на встроенном устройстве.


person Anonymous    schedule 15.05.2015    source источник
comment
psql и pg_restore - инструменты на стороне клиента. Они не нужны на сервере для восстановления резервной копии. Если вы можете подключиться со своего рабочего стола к серверу Postgres, работающему на вашем устройстве, вы можете восстановить дамп с вашего компьютера под управлением Windows / Linux. pg_basebackup в основном используется для начальной загрузки второго узла для репликации. Для этого нет эквивалентного инструмента восстановления, потому что он просто создает копию каталога данных.   -  person a_horse_with_no_name    schedule 15.05.2015
comment
Можно было бы восстановить резервную копию по сети. Однако я хочу инициализировать встроенную систему с первой загрузкой, предоставив все необходимые файлы (например, текущую резервную копию базы данных). Поэтому мне нужен совет, как восстановить резервную копию непосредственно на сервере, если файлы резервной копии доступны в системе.   -  person Anonymous    schedule 15.05.2015
comment
Вы можете инициализировать базу данных по сети, затем выключить Postgres на устройстве и скопировать каталог данных.   -  person a_horse_with_no_name    schedule 15.05.2015
comment
Это не вариант, поскольку я не хочу делать это каждый раз вручную. Я просто хочу предоставить последние файлы резервных копий в образ сервера (в настоящее время * .sql) и восстановить их при первой загрузке системы ... Уже было бы достаточно запускать простые * .sql-скрипты из командной строки, но как я могу сделать это без psql?   -  person Anonymous    schedule 15.05.2015
comment
Может быть, вы можете установить пакет postgres-client, включающий psql, с того места, где вы скачали серверное ПО?   -  person a_horse_with_no_name    schedule 15.05.2015
comment
Потратив много времени на решение этой проблемы, я просто согласился с тем, что мне нужно восстановить базу данных по сети после первой загрузки. Было бы лучше настроить базу данных автоматически, но я не могу найти простой подход.   -  person Anonymous    schedule 20.05.2015


Ответы (1)


Создайте резервную копию базы данных с помощью команды:

pg_basebackup -h {host_ip} -D pg_backup  -U {USER}

для восстановления просто измените папку данных на pg_backup. Теперь запустите сервер psql.

person Gautam Kumar    schedule 18.02.2019