Size: a a a

PostgreSQL + 1C + Linux

2020 November 20

СХ

Сергей Худояров... in PostgreSQL + 1C + Linux
оуч.. забыл уточнить.. у меня совсем оффтоп.. мне бэкапить файловую базу..
источник

MV

Mikhail Vydrin in PostgreSQL + 1C + Linux
Сергей Худояров
оуч.. забыл уточнить.. у меня совсем оффтоп.. мне бэкапить файловую базу..
источник

И

Иван in PostgreSQL + 1C + Linux
источник

MV

Mikhail Vydrin in PostgreSQL + 1C + Linux
@ivandeg , дабл страйк )
источник

И

Иван in PostgreSQL + 1C + Linux
)))
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
PostgreSQL 9.4.8
База Комплексная автоматизация 1.1.115.1
Пытаюсь сделать дамп:
/usr/bin/pg_dump -F c -b -c -f region.pgdump region
pg_dump: Ошибка выгрузки таблицы "config": сбой в PQgetResult().
pg_dump: Сообщение об ошибке с сервера: ОШИБКА:  invalid memory alloc request size 1116578769
pg_dump: Выполнялась команда: COPY public.config (filename, creation, modified, attributes, datasize, binarydata) TO stdout;

На сервере памяти 10 Гигабайт, в момент бекапа 1с-сервер остановлен.
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
Смотрю данные в таблице:
неужели конфигурация может занимать полгигабайта?
источник

И

Иван in PostgreSQL + 1C + Linux
Пару раз тут это уже обсуждали, поищи по чату.
источник

11

19 17 in PostgreSQL + 1C + Linux
Михаил Корнилов
Смотрю данные в таблице:
неужели конфигурация может занимать полгигабайта?
И гигабайт может, особенно после того, как в нее все драйверы то включили
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
Сама база ~15 Гигабайт
Временно решил проблему бекапом всего, кроме этой таблицы:
/usr/bin/pg_dump -F c -b -c -C --exclude-table-data=config -f /usr/bin/pg_dump
И отдельно бекапом самой таблицы:
/usr/bin/psql --dbname region --command "COPY public.config TO region.config WITH BINARY

Но и восстановить таблицу config даже на 12-й версии Postgresql не удаётся:
psql -d region --command "COPY public.config FROM '/backup/region.config' WITH BINARY;"
ОШИБКА:  нехватка памяти
ПОДРОБНОСТИ:  Ошибка при запросе блока размером 1073741823 в контексте памяти "COPY".
КОНТЕКСТ:  COPY config, строка 22557, столбец binarydata
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Это известная проблема
Пока не решенная
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Есть на гитхабе отдельные утилиты dump и restore, которые умеют работать с такими объёмами данных
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
Антон Дорошкевич
Это известная проблема
Пока не решенная
Ну насчёт 1С я не удивляюсь - хранить гигабайт бинарников в одной ячейке таблицы - с них станется...

Но postgres-то почему так странно себя ведёт: вот данные, да, они двоичные и их много, так выведи ты всё в pipe, делов-то...

Ведь сам конфигуратор/сервер 1С  как-то умудряется их вытянуть (причём наверняка тянет не всё)...
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Ну не рассчитана субд на такой подход к хранению
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
Антон Дорошкевич
Есть на гитхабе отдельные утилиты dump и restore, которые умеют работать с такими объёмами данных
спасибо за наводочку
источник

11

19 17 in PostgreSQL + 1C + Linux
какая конфигурация?
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
19 17
какая конфигурация?
Комплексная автоматизация 1.1.115.1
источник

СЯ

Сергей Якушев... in PostgreSQL + 1C + Linux
Михаил Корнилов
Ну насчёт 1С я не удивляюсь - хранить гигабайт бинарников в одной ячейке таблицы - с них станется...

Но postgres-то почему так странно себя ведёт: вот данные, да, они двоичные и их много, так выведи ты всё в pipe, делов-то...

Ведь сам конфигуратор/сервер 1С  как-то умудряется их вытянуть (причём наверняка тянет не всё)...
Если я не ошибаюсь проблема pg_dump в том, что она может на одно значение выделить буфер максимум 4GB (привет от 32бит архитектуры), а бинарная строка кодируется как base64 и того только 512MB.  Как только в этой таблице что-то больше 512MB - происходит ошибка.

Жаль, что я эти не помог совсем)
источник

МК

Михаил Корнилов... in PostgreSQL + 1C + Linux
Сергей Якушев
Если я не ошибаюсь проблема pg_dump в том, что она может на одно значение выделить буфер максимум 4GB (привет от 32бит архитектуры), а бинарная строка кодируется как base64 и того только 512MB.  Как только в этой таблице что-то больше 512MB - происходит ошибка.

Жаль, что я эти не помог совсем)
да, но я ведь делаю
/usr/bin/pg_dump -F c -b -c -f region.pgdump region
источник