Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Restore  [new]
Alexander_190
Member

Откуда:
Сообщений: 3
Всем привет!
Подключаюсь к базе по ssh, делаю бэкапы они складываются в папку backup. Хочу восстановится, пишу команду: pg_restore -U postgres -d test1 -l /var/backup/test.sql.gz выдаётся ошибка input file does not appear to be a valid archive. Оно и понятно файл архивный надо распаковать, но как это сделать в этой же строке? Перепробовал кучу вариантов, ничего не получается.

Сообщение было отредактировано: 19 апр 21, 17:28
19 апр 21, 17:35    [22311133]     Ответить | Цитировать Сообщить модератору
 Re: Restore  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
Alexander_190
Всем привет!
Подключаюсь к базе по ssh, делаю бэкапы они складываются в папку backup. Хочу восстановится, пишу команду: pg_restore -U postgres -d test1 -l /var/backup/test.sql.gz выдаётся ошибка input file does not appear to be a valid archive. Оно и понятно файл архивный надо распаковать, но как это сделать в этой же строке? Перепробовал кучу вариантов, ничего не получается.


А зачем вам в одной строке?
Что то меня смущает на самом деле .sql
а какой командой вы backup делаете?


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
19 апр 21, 18:12    [22311152]     Ответить | Цитировать Сообщить модератору
 Re: Restore  [new]
Alexander_190
Member

Откуда:
Сообщений: 3
Maxim Boguk,

Делаю скриптом:

#!/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
backup="/var/backup"
for dbname in echo "SELECT datname FROM pg_database;" | psql | tail -n +3 | head -n -2 | egrep -v 'template0|template1|postgres'; do
pg_dump $dbname | gzip > $backup/$dbname-$(date "+%Y-%m-%d").sql.gz
done;
19 апр 21, 18:33    [22311167]     Ответить | Цитировать Сообщить модератору
 Re: Restore  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4719
Alexander_190
Maxim Boguk,

Делаю скриптом:

#!/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
backup="/var/backup"
for dbname in echo "SELECT datname FROM pg_database;" | psql | tail -n +3 | head -n -2 | egrep -v 'template0|template1|postgres'; do
pg_dump $dbname | gzip > $backup/$dbname-$(date "+%Y-%m-%d").sql.gz
done;


тогда у вас на выходе plain sql файл а не dump
и pg_restore со всеми его ключами работать не будет

и восстанавливать через psql надо


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
19 апр 21, 18:39    [22311174]     Ответить | Цитировать Сообщить модератору
 Re: Restore  [new]
mefman
Member

Откуда:
Сообщений: 3395
и распаковать можете через пайп(так же как запаковываете)
19 апр 21, 18:45    [22311177]     Ответить | Цитировать Сообщить модератору
 Re: Restore  [new]
kira ivanov
Member

Откуда: питер
Сообщений: 166
Alexander_190

как это сделать в этой же строке?


zcat /var/lib/pgsql/backup/dump.sql.gz | psql -h 127.0.0.1 -U postgres -W -d database
21 апр 21, 16:19    [22312034]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить