|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
|||||||||||
pg_probackup и физическая репликация27.07.2024, 18:40. Показов 1549. Ответов 12
Метки postgresql (Все метки)
Здравствуйте!
Есть два кластера СУБД Postgres PRO Ent 11.7. Первый кластер db1 – прод, на котором локально настроен локальный бэкап pg_probackup на другой раздел, на db1 так же находится WAL-архив с помощью pg_receivewal. Db2 – пустой кластер, на который необходимо в удаленном режиме восстановить бэкап с db1, а затем воспользовавшись WAL-архивом с db1 «догнать» db2 до физической репликации. Восстановить полный и инкрементальный бэкап на db2 получается, но вот с выкачиванием WAL-сегментов проблемы. Я так понимаю, надо сформировать строку restore-command с archive-get, но как это правильно сделать? В моем случае remote-host и archive-host будут одинаковые? Или в этой ситуации вообще remote-host не нужен? Если вручную запускать archive-get получаю ошибку:
В каком направлении копать?
0
|
|||||||||||
| 27.07.2024, 18:40 | |
|
Ответы с готовыми решениями:
12
физическая Физическая задача Физическая задача 2 |
|
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
|
|
| 28.07.2024, 07:20 | |
|
--wal-method=stream
--create-slot --slot=имя_слота
1
|
|
|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
|
| 28.07.2024, 09:16 [ТС] | |
|
fte65, а слот зачем?
0
|
|
|
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
|
|
| 28.07.2024, 11:56 | |
|
Вы сам написали в топике физическая репликация - она только через физический слот репликации
Добавлено через 19 минут И для понимания, бэкап + инкреминтал != репликация - это две разные штуки, бэкап - это возможность восстановить БД (инстанс) с нуля до определённого момента времени и WAL здесь не причём, репликация - это горячий резерв, позволяющий переключится на него единомоментно, а дальше разбираться с проблемами ...
0
|
|
|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
|||
| 28.07.2024, 12:24 [ТС] | |||
|
0
|
|||
|
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
|
|
| 28.07.2024, 18:08 | |
|
--slot=имя_слота
Этот параметр может применяться только вместе с -X stream. ..... Если этот ключ не указан и сервер поддерживает временные слоты репликации (они появились в версии 10), для трансляции WAL автоматически используется временный слот репликации. --wal-method=метод Включает в резервную копию все необходимые файлы журнала предзаписи (файлы WAL). В том числе включаются все файлы журнала, сгенерированные в процессе создания резервной копии. Любой метод, кроме none, позволяет запустить сервер с восстановленным каталогом, не используя архив WAL; таким образом будет получена полностью самодостаточная резервная копия. Поддерживаются следующие методы получения журналов предзаписи: n none Не включать журналы предзаписи в резервную копию. f fetch Файлы журнала предзаписи собираются в конце процесса копирования. Таким образом необходимо установить достаточно большое значение параметра wal_keep_size, чтобы избежать преждевременного удаления нужных данных журнала. В случае переработки этих данных до завершения процесса копирования возникнет ошибка, а копия будет непригодной к использованию. Когда используется формат tar, файлы журнала предзаписи включаются в архив base.tar. s stream Передавать журнал предзаписи в процессе создания резервной копии. При выборе этого метода открывается второе соединение к серверу, через которое будет передаваться журнал предзаписи параллельно с созданием копии. Таким образом, этот метод требует использования не одного, а двух соединений репликации, но если клиент будет успевать получать данные журнала предзаписи, на исходном сервере не потребуется сохранять дополнительные журналы. Когда используется формат tar, файлы журнала предзаписи сохраняются в отдельном архиве с именем pg_wal.tar (если версия сервера ниже 10, файл будет называться pg_xlog.tar). Это значение по умолчанию.
0
|
|
|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
|
| 28.07.2024, 20:53 [ТС] | |
|
fte65, спасибо. Только вопрос в том, что можно ли воспользоваться существующим WAL-архивом, и если да, то какие ключи прописывать в restore-command?
Вы приводите ключи для команды backup скорее всего, а интересует для archive-get
0
|
|
|
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
|
||
| 28.07.2024, 22:30 | ||
|
Добавлено через 9 минут Видимо нужно углубится в изучение pg_probackup
1
|
||
|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
|
| 29.07.2024, 19:19 [ТС] | |
|
0
|
|
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,024
|
||||
| 01.08.2024, 17:22 | ||||
Сообщение было отмечено bsd9 как решение
Решение__не предназначена__ для запуска вручную со значениями %f и %p. Эти псведозначения подставляет postgresql, когда запускает заданную команду, заданную через restore_command. Сам pg_probackup ничего не знает ни про %f, ни про %p. Тогда сервер начнет использовать restore_command, ну и по логам смотреть, что он действительно запускает и выполняет (поставить log_min_messages=INFO)
1
|
||||
|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
||
| 02.08.2024, 17:54 [ТС] | ||
|
grgdvo, спасибо буду пробовать.
0
|
||
|
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 118
|
||||||||||||||||
| 04.08.2024, 18:52 [ТС] | ||||||||||||||||
|
grgdvo, здравствуйте. Ваша рекомендация очень помогла, спасибо. Действительно, нет необходимости указывать и --archive-host и --archive-user. В связке с archive-get достаточно --remote-host и --remote-user.
Сделал так, создал пользователя backup_user и на db1, и на db2, потом делаем под backup_user на db1:
У меня наверное не совсем тривиальная задача, мне необходимо делать бэкапы и держать WAL-архив на локально на сервере db1, но периодически восстанавливать их на db2. Проинициализировать каталог резервных копий под пользователем backup_user я не могу - потеряю возможность делать локальные резервные копии, так как он не сможет прочитать каталог pgdata. А если оставить под postgres, то backup_user не сможет WAL выкачать, потому что они ему не принадлежат. Не понимаю пока, как в такой ситуации правильно выставить права на каталоги резервных копий? Добавлено через 21 минуту Плюс еще у всех файлов WAL права 600, что исключает добавление в группы.
0
|
||||||||||||||||
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,024
|
|
| 12.08.2024, 04:13 | |
|
По хорошему надо, чтобы backup_user был владельцем (или имел права на запись) директории резервных копий pg_probackup.
Рассматривайте pg_probackup + backup_user как "сервер" резервных копий. На db1 локально запускаете от backup_user На db2 удаленно запускаете также от backup_user. По идее так будет работать. По-моему именно эта схема и рекомендовано к эксплуатации в документации И еще посмотрите, нет ли каких-то настроек по глубине хранения WAL, чтобы не было "случайного" удаления WAL-сегментов. По схеме у вас получается PITR (Point-In-Time-Recovery) на db2 с db1. Наверно к этой схеме и стремится по документации и рекомендациям.
0
|
|
| 12.08.2024, 04:13 | |
|
Помогаю со студенческими работами здесь
13
Физическая задача Физическая трассировка физическая по формуле Физическая задача 3 физическая модель Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|