Имя: Пароль:
IT
Админ
Postgresql 15.2 как ускорить выгрузку бэкапа?
0 Ipesa
 
11.10.23
18:02
Добрый день, столкнулся с такой проблемой что выгрузка бэкапа
весов 120Гб происходит в 3-4 часа.
Как можно ускорить выгрузку
"C:\Program Files\PostgreSQL\15.2-1.1C\bin\pg_dump.exe" -h localhost -p 5434 -U postgres -F c -b -v -f "H:\PGArhive\Arhiv_one\%YYYYMMDD%bases1.dump" "bases1"
Диск nvme.
Может надо в конфигураторе что до настроить?
1 Волшебник
 
11.10.23
18:03
При чём тут 1С-конфигуратор, если Вы выгружаете через PostgreSQL?

Скорее всего, Ваш диск уже при смерти.
2 Ipesa
 
11.10.23
22:12
(1) Возможно не так написал, в конфигурационном файле postgressql
3 Ipesa
 
11.10.23
22:23
(1) Диск samsung ssd 980 1tb
4 stopa85
 
11.10.23
23:05
(0) Нужно выгружать многопоточно.

d
directory

    Выгрузить данные в формате каталога. .... также поддерживает работу в несколько потоков.

-j число_заданий
--jobs=число_заданий

    Осуществить выгрузку в параллельном режиме, обрабатывая одновременно несколько таблиц (в количестве число_заданий).

https://postgrespro.ru/docs/postgresql/15/app-pgdump
5 stopa85
 
11.10.23
23:07
А лучше освойте архивирование журнала транзакций. Тогда "почти всегда" будет актуальная резервная копия.
6 Ipesa
 
12.10.23
06:16
(4) Спасибо, по пробую
7 Ipesa
 
12.10.23
06:17
(5) Это через запись wal? и бэкапа целого ластера?
8 stopa85
 
12.10.23
06:22
Да. Бекапте весь кластер. Если нужна одна ИБ восстанавливает его целиком и pg_dump одной базы.
9 Ipesa
 
12.10.23
10:19
(8) Просто в одно кластере куча баз, надо тогда разделить базы по клатера postgresql?
10 novichok79
 
12.10.23
10:36
еще в бытность 9-й версии вроде можно было распараллелить на кол-во CPU.
--jobs=njobs
https://www.postgresql.org/docs/15/app-pgdump.html

пробовали?
11 dervishsy
 
12.10.23
10:32
(0) Попробуй  поиграться с этим:
https://postgrespro.ru/products/pg_probackup
12 Arh01
 
12.10.23
11:00
(11) Эта утилита в стандартной версии Postgresql в однопоточном режиме работает.
13 Fram
 
12.10.23
11:45
(0) Только мне кажется что диск Н - сетевой?
14 Fram
 
12.10.23
11:51
(13) + и если допустить что сеть 100 Мбит/с то примерно 3-4 часа и выходит
15 dervishsy
 
12.10.23
12:27
(12) Судя по описанию работает в многопоточном https://prnt.sc/QYzNw0lr-vaU
16 stopa85
 
12.10.23
12:36
(9) ПГ по другому, к сожалению, не умеет. Opensource такой opensource.

Когда Вам нужно что-то восстановить какуюто БД: восстановите все БД на соседнем сервере и уже от туда делаете pg_dump.

Вообще правильная схема: основной сервер, резервный сервер (реплика, онлайн накатывает транзакции с мастера). Хранилище резервных копий. Тогда в случае краха 2х узлов из 3х, вы восстановите всё с минимальными потерями. Это бесплатно и в 100500 раз лучше ежесуточного бекапа.

Прочтите доку, она на русском. Поднимите стенд на виртуалках и попробуйте. Потом поставите pg_probackup.
17 H A D G E H O G s
 
12.10.23
12:39
(13) (14) Не только тебе.
18 Ipesa
 
12.10.23
16:13
(13) Это не сетевой диск
19 Ipesa
 
12.10.23
16:13
(4) Получилось сделать, время сократилось с 3 часов до 30 минут
20 Ipesa
 
12.10.23
16:16
(11) Так если у меня postgressql от 1С, а не от Postgres Pro, смогу ли по играться? или мне нужна всего то команда pg_probackup?
21 Ipesa
 
12.10.23
16:18
(16) Это все хорошо, пока возможностей нет сделать реплику.
И так все крутится на Windows server 2016. Так надо еще перевести postgres в линукс и уже оттуда делать реплику
22 lodger
 
12.10.23
16:26
(21) так надо было начать с переезда на линупс.
23 Ipesa
 
12.10.23
16:29
(22) Возможно подумаем над этим
24 Ipesa
 
12.10.23
17:34
(19) ОШибка, не 30 минут, а 1 час 40
25 stopa85
 
12.10.23
20:53
(20) сможете. Читайте доку про обычный пг. Он все умеет.

pg_probackup для 1с-пг тоже работает. Но это вершина айсберга. Научитесь обычными командами сначала. Потом сторонние утилиты.
AdBlock убивает бесплатный контент. 1Сергей