Создание дампа БД: различия между версиями
Перейти к навигации
Перейти к поиску
Misha (обсуждение | вклад) Новая страница: «==Выполняйте на сервере, где установлен клиент== Создаем папку для дампа <pre>mkdir -p ~/postgre/dump</pre> Создайте файл ~/.pgpass с содержимым <pre>IP_SERV_POSTGR:5432:NAME_BD:postgres:ПАРОЛЬ</pre> где:<br> IP_SERV_POSTGR - ip адрес сервера<br> NAME_BD - Имя БД которой создается дамп<br> postgres:ПАРОЛЬ - имя пользо...» |
Misha (обсуждение | вклад) |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 13: | Строка 13: | ||
Проверьте подключение: | Проверьте подключение: | ||
<pre>psql -h IP_SERV_POSTGR -p 5432 -U postgres -d | <pre>psql -h IP_SERV_POSTGR -p 5432 -U postgres -d NAME_BD -c "SELECT current_database(), version();"</pre> | ||
Создайте дамп в рекомендуемом custom-формате: | Создайте дамп в рекомендуемом custom-формате: | ||
| Строка 24: | Строка 24: | ||
--no-owner \ | --no-owner \ | ||
-f /PATH_DUMP/NAME_DUMP_$(date +%F).dump | -f /PATH_DUMP/NAME_DUMP_$(date +%F).dump | ||
</pre> | |||
Если надо сделать дамп только нужных таблиц. Используйте параметр -t для каждой таблицы: | |||
<pre>pg_dump \ | |||
-h IP_SERV_POSGR \ | |||
-p 5432 \ | |||
-U postgres \ | |||
-d NAME_BD \ | |||
-Fc \ | |||
--no-owner \ | |||
-t 'main.tabl1' \ | |||
-t 'main.tabl2' \ | |||
-t 'main.tabl3' \ | |||
-f /PATH_DUMP/FILE.dump | |||
</pre> | </pre> | ||
Проверьте дамп: | Проверьте дамп: | ||
Текущая версия от 16:34, 26 августа 2026
Выполняйте на сервере, где установлен клиент
Создаем папку для дампа
mkdir -p ~/postgre/dump
Создайте файл ~/.pgpass с содержимым
IP_SERV_POSTGR:5432:NAME_BD:postgres:ПАРОЛЬ
где:
IP_SERV_POSTGR - ip адрес сервера
NAME_BD - Имя БД которой создается дамп
postgres:ПАРОЛЬ - имя пользователя и пароль пользователя БД
Задайте права:
chmod 600 ~/.pgpass
Проверьте подключение:
psql -h IP_SERV_POSTGR -p 5432 -U postgres -d NAME_BD -c "SELECT current_database(), version();"
Создайте дамп в рекомендуемом custom-формате:
pg_dump \ -h IP_SERV_POSTGR \ -p 5432 \ -U postgres \ -d NAME_BD \ -Fc \ --no-owner \ -f /PATH_DUMP/NAME_DUMP_$(date +%F).dump
Если надо сделать дамп только нужных таблиц. Используйте параметр -t для каждой таблицы:
pg_dump \ -h IP_SERV_POSGR \ -p 5432 \ -U postgres \ -d NAME_BD \ -Fc \ --no-owner \ -t 'main.tabl1' \ -t 'main.tabl2' \ -t 'main.tabl3' \ -f /PATH_DUMP/FILE.dump
Проверьте дамп:
ls -lh /PATH_DUMP pg_restore --list /PATH_DUMP/NAME_DUMP_$(date +%F).dump
Формат -Fc удобен для последующего восстановления через pg_restore. Дамп содержит всю базу NAME_BD, включая схему main.
-Fc означает custom format PostgreSQL:
- дамп сжатый;
- не является обычным SQL-файлом;
- восстанавливается командой pg_restore;
- позволяет выборочно восстанавливать объекты и использовать параллельные потоки.