|
Постгрес, резервное копирование. timurhv, ansh15, Чеширский, eRik, ivanov-i-i, , Garykom, , DrLekter, zablic2010, bolder, vbus, X Leshiy, Шурик71, Hawk_1c, Затейник, Климов Сергей, Djelf, formista2000, АНДР, Ногаминебить, Krendel, Prog_man, yanikolay, YaFedor, , Vostochnick, arsik, Джордж1, Gattuso, maxab72, Черников, Crusher, Федя Тяпкин, alexela, abfm, Mihenius, who respawn, Мультук, , Zamestas, obs191, privetik, rom4eg, ig0z
| ☑ | ||
---|---|---|---|---|
0
YaFedor
27.03.25
✎
15:11
|
Выполняю резервное копирование при помощи pg_dump, при этом, при восстановлении ругается. Хотя база как-то восстанавливается и открывается при этом в режиме предприятие.
Прочитал вот здесь: http://www.gilev.ru/pg_dump/ Пишут, что pg_dump не лучшая идея, лучше pg_dumpall. Хорошо, сделал резервную копию всего экземпляра сервера Postgres. А как из него восстановить конкретную базу? |
|||
1
Garykom
гуру
27.03.25
✎
15:25
|
||||
2
YaFedor
27.03.25
✎
15:34
|
(2) Там нет ответа на этот вопрос
|
|||
3
vbus
27.03.25
✎
15:43
|
Неправильный вариант, восстановить все базы, всего экземпляра и pg_dump -ом перенести нужную куда нужно. Правильный вариант один инстанс- одна база, восстановил и все. Я пользуюсь dump -ом, но у меня все маленькое.
|
|||
4
YaFedor
27.03.25
✎
15:46
|
(3) "Неправильный вариант, восстановить все базы, всего экземпляра"
Т.е. в некий новый экземпляр востанавливаем весь экземпляр из резервной копии, а потом оттуда pg_dump опять архивируем нужную базу, после чего pg_dunp восстанавливаем базу уже из этого архива в рабочий экземпляр? |
|||
5
Daniilvb
27.03.25
✎
15:49
|
Попробуйте восстановить в новую(созданную базу) или с опцией "Clean before restore". Пользуюсь pg_dump в таком сценарии без проблем.
|
|||
6
Garykom
гуру
27.03.25
✎
15:52
|
(0) >при этом, при восстановлении ругается
надеюсь восстанавливаешь в чистую пустую (или новую) базу а не в уже существующую? если база уже с данными - сначала надо ее очистить или лучше удалить и создать заново |
|||
7
YaFedor
27.03.25
✎
15:54
|
(6) Да, в чистую.
|
|||
8
YaFedor
27.03.25
✎
15:55
|
(5) Та же фигня
|
|||
9
ansh15
27.03.25
✎
23:29
|
>>при восстановлении ругается
Что пишет? Может, это и не ошибки вовсе, а просто "безвредные сообщения", подлежащие игнорированию. |
|||
10
YaFedor
28.03.25
✎
15:13
|
(9) Ошибки типа таких:
pg_restore: error: could not execute query: ERROR: index "_reference98_2" does not exist Command was: DROP INDEX public._reference98_2; pg_restore: error: could not execute query: ERROR: table "_inforgchngr2311" does not exist Command was: DROP TABLE public._inforgchngr2311; pg_restore: error: could not execute query: ERROR: table "_inforgchngr2274" does not exist Command was: DROP TABLE public._inforgchngr2274; |
|||
11
Чеширский
28.03.25
✎
15:57
|
Бекап делали в момент реструктуризации базы?
|
|||
12
YaFedor
28.03.25
✎
15:59
|
(11) нет, во время обычной работы
|
|||
13
bolder
28.03.25
✎
16:07
|
(0) Как же хорошо доверить все это адммину).
Ps. MS SQL сам могу,очень удобная штука,жаль что они нас так кинули.PG только скриптом бэкап написал на сохранение,есть заготовка в интернете.Админ грозится что владееет магией восстановления) |
|||
14
YaFedor
28.03.25
✎
16:06
|
(13) Ага, смотрю постгрес и понимаю как было хорошо, когда было хорошее ПО :-)
|
|||
15
Garykom
гуру
28.03.25
✎
16:46
|
(11) бэкап PgSQL в момент реструктуризации это тушите свет
я так однажды базу прода запорол повезло что бэкап оказался рабочий, хотя реструктуризация упала и запорола базу |
|||
16
Garykom
гуру
28.03.25
✎
16:48
|
(14) PgSQL хорошее ПО
но не очень юзер-френдли ибо опенсорсное бесплатное |
|||
17
Чеширский
28.03.25
✎
19:34
|
Тогда мне не понятно, зачем при восстановлении бекапа удалять индексы и таблицы
|
|||
18
Garykom
гуру
28.03.25
✎
19:48
|
(17) потому что этот вот "бэкап" (логический) - фактически текст, последовательность sql команд для воссоздания базы
включите туда в самое начало команды очистки базы (удаления всех индексов, таблиц и прочего) если надо |
|||
19
Garykom
гуру
28.03.25
✎
19:48
|
(18)+ в статье в (1) все описано
если надо можно делать физический (бинарный) бэкап вместо логического (текстового) но это требует остановки службы PgSQL у MSSQL предусмотрена частичная остановка или точнее восстановление из физического бэкапа одной базы на лету в PgSQL нет но кто/что вам мешает для каждой отдельной базы поднимать отдельный экземпляр службы PgSQL? понятно на разных портах |
|||
20
ansh15
28.03.25
✎
20:27
|
(10) Для чистой базы --clean не нужен, там нечего удалять.
Из инструкции(pg_restore): "--clean Прежде чем восстанавливать объекты базы данных, выполните команды DROP для всех восстанавливаемых объектов. Этот параметр полезен для перезаписи существующей базы данных. Без дополнительного указания --if-exists при этом могут выдаваться безвредные сообщения об ошибках, если таких объектов не окажется в целевой базе данных." Я же говорил, что безвредные сообщения... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |