|
КА 1.1.107.4 - проблемы с архивацией на СУБД Postgres | ☑ | ||
---|---|---|---|---|
0
mgk2
16.10.18
✎
08:52
|
Исходные данные :
КА 1.1.107.4 с мелкими доработками Платформа 8.3.9.2170 СУБД Postgres Pro 9.4 Все работало стабильно почти 2 года, пока не обновил конфу на релиз 1.1.107.4 . Заметил, что перестали восстанавливаться архивы созданные с помощью pg_dump. Начал разбираться и выяснил, что pg_dump в процессе архивации выдает ошибки : pg_dump: Ошибка выгрузки таблицы "config": сбой в PQgetResult(). pg_dump: Сообщение об ошибке с сервера: Р?РЁР?Р'Р?Р?: invalid memory alloc request size 1174829507 pg_dump: Выполнялась команда: COPY public.config (filename, creation, modified,attributes, datasize, binarydata) TO stdout; Переносил базу на другие сервера , менял версии Postgres (9.6 и 10.5), менял платформу (8.3.9.2309 и 8.3.10.2772) - результат тот же, pg_dump не может нормально создать архив. При постановке конфы обратно на поддержку архивация начинает работать нормально. Как можно решить проблему? |
|||
1
Cool_Profi
16.10.18
✎
08:54
|
Поставить нормальный скуль не предлагать?
|
|||
2
shuhard
16.10.18
✎
08:54
|
(0)[Как можно решить проблему?]
invalid memory alloc request size 1174829507 видимо копать нужно от сюда |
|||
3
Фрэнки
16.10.18
✎
08:54
|
в данном контексте вот эту фразу раскрой, если не трудно
// При постановке конфы обратно на поддержку // |
|||
4
mgk2
16.10.18
✎
08:55
|
(3) на замок
|
|||
5
Фрэнки
16.10.18
✎
08:56
|
(4) когда конфа на замке, то требуется грубо в два раза меньше оперативы
|
|||
6
mgk2
16.10.18
✎
08:57
|
Проводил эксперимент:
1. Выгружаю конфу поставщика в cf. 2. Из цф создаю чистую базу. 3. Запускаю pg_dump - архивация проходит нормально. 4. В этой же конфе включаю возможность изменения. 5. Запускаю pg_dump - архивация проходит НЕ нормально. |
|||
7
mgk2
16.10.18
✎
08:58
|
(5) Оперативы достаточно. Пробовал компы с 16 и 32 Гб оперативки.
Postgres Pro - х64. |
|||
8
mgk2
16.10.18
✎
09:00
|
+(6) только цифры после invalid memory alloc request size другие.
|
|||
9
Фрэнки
16.10.18
✎
09:01
|
(7) Был у меня клиент пару лет назад. Жаловался на похожие траблы. Поскольку ему нужно было хоть какое-то решение, то ему пришлось делать все такие штуки непосредственно в линуксе - под виндой уже не работало.
Именно с конфигой на КА 1.1 !!! |
|||
10
mgk2
16.10.18
✎
09:05
|
Если кто имеет возможность провести эксперимент (6), попробуйте и напишите о результате. На все про все нужно 15 минут на нормальном компе.
Я пробовал на WinServer 2008 R2 и Win7 . |
|||
11
mgk2
16.10.18
✎
09:09
|
(2) Вроде как у Postgres лимиты не маленькие :
Максимальный размер таблицы - 32 TB Максимальный размер строки - 400 Gb Максимальный размер поля - 1 GB |
|||
12
Nikoss
18.10.18
✎
06:42
|
(0)
Покажи скрипт, как бэкап делается. [проблемы с архивацией] не путаешь понятия дампа и архива? Проблемы именно с архивацией? |
|||
13
mgk2
18.10.18
✎
07:50
|
set fTime=%time%
set fHour=%fTime:~0,2% set fHour=%fHour: =0% set fMin=%fTime:~3,2% Set f_date=%date% set f_year=%f_date:~6,4% set f_month=%f_date:~3,2% set f_day=%f_date:~0,2% set f_name=%f_year%_%f_month%_%f_day%_%fHour%_%fMin% "C:\Program Files\PostgresPro 1C\9.4\bin\pg_dump" -U postgres -F c -Z9 -c -f C:\arc\arc_pg\ara_backup.backup bs ren C:\arc\arc_pg\ara_backup.backup bs_%f_name%.* |
|||
14
Nikoss
18.10.18
✎
08:15
|
попробуй формат старндартный
убери "-F c -Z9" |
|||
15
mgk2
18.10.18
✎
08:25
|
(14) Не помогло. Та же ошибка.
|
|||
16
Йохохо
18.10.18
✎
08:39
|
тут пишут что не туда копаешь
https://www.endpoint.com/blog/2010/06/01/tracking-down-database-corruption-with |
|||
17
Йохохо
18.10.18
✎
08:43
|
||||
18
ansh15
18.10.18
✎
09:36
|
(15) Снятие с поддержки любой другой конфигурации также приводит к такой ошибке? Или только КА указанной версии?
|
|||
19
Фрэнки
18.10.18
✎
09:42
|
(18) немного не так - если снять с поддержки совсем, то есть без сохранения поддержки, то ошибка может исчезнуть.
з.ы. Трабл именно при снятии с "замка" и при сохранении поддержки |
|||
20
mgk2
18.10.18
✎
09:58
|
(18) Именно в версиях КА 1.1.107.3 и 1.1.107.4.
В КА 1.1.106 проблемы еще нет. Попробовал уже с типовыми демоконфами КА - все так же. Т.е проблема не в моей базе , а в конфигурации конкретной версии. |
|||
21
ansh15
18.10.18
✎
09:59
|
(19) Я понимаю. У нас бухгалтерия и зарплата в таком режиме поддержки уже много лет, ничего подобного никогда не возникало. Правда, и сервер приложений и СУБД на Linux(тоже много лет).
|
|||
22
mgk2
18.10.18
✎
10:03
|
+(20) Тут же УТ11.4 и БП3 живут без проблем.
|
|||
23
mgk2
18.10.18
✎
10:13
|
(19) [если снять с поддержки совсем, то есть без сохранения поддержки, то ошибка может исчезнуть]
попробую |
|||
24
shuhard
18.10.18
✎
10:26
|
(22) а ты выгрузи Cf и посмотри его размер, скорее всего он будет больше 1.2 Гбайт
а потом сравни с 1.1.106.1 - там будет 650 Мбайт ларчик то просто открывается |
|||
25
mgk2
18.10.18
✎
10:55
|
(24) Посмотрю.
[ скорее всего он будет больше 1.2 Гбайт ] А что за ограничение в этом случае срабатывает? |
|||
26
shuhard
18.10.18
✎
11:00
|
(25) Я с Postgres не работаю, а размер cf заметил в УПП 1.3.112.4 (крайний релиз)
так что дальнейшие действия у тебя на форумах Postgres |
|||
27
Фрэнки
18.10.18
✎
11:04
|
(25) твой же пост:
-*- Вроде как у Postgres лимиты не маленькие : Максимальный размер таблицы - 32 TB Максимальный размер строки - 400 Gb Максимальный размер поля - 1 GB |
|||
28
mgk2
18.10.18
✎
11:08
|
(27) Хочешь сказать, что платформа конфу заталкивает в 1 поле?
|
|||
29
shuhard
18.10.18
✎
11:14
|
(28) да, это один BLOB
|
|||
30
Nikoss
18.10.18
✎
11:25
|
Вот это поворот -_-
|
|||
31
mgk2
18.10.18
✎
11:38
|
+(25) размер cf 1.03 гб
|
|||
32
Nikoss
18.10.18
✎
11:42
|
(31) я бы чисто ради интереса грохнул что-нибудь из конфы, чтоб привести размер cf к 0.99Гб, и проверить еще раз бэкап. (что там есть такого, макеты с двоичными данными, какие-нибудь)
|
|||
33
Фрэнки
18.10.18
✎
11:48
|
(32) да я ж и предлагаю - снять с поддержки полностью и размер в два раза упадет и проблема должна уйти, если это в ней причина.
|
|||
34
Йохохо
18.10.18
✎
11:51
|
(33) а тут выяснили почему работает твое кривоватое решение, лучше же нормально сделать
|
|||
35
Фрэнки
18.10.18
✎
11:57
|
(34) кому? Поставщикам конфиги из 1С ?
|
|||
36
Йохохо
18.10.18
✎
11:57
|
(35) почему нет
|
|||
37
Фрэнки
18.10.18
✎
11:59
|
(36) 1С предлагает всем бесплатный апгрейд с конфиги КА 1.1 на конфиг КА 2.х
|
|||
38
shuhard
18.10.18
✎
12:17
|
(37) гильотина лучшее средство от перхоти (с)
|
|||
39
Nikoss
18.10.18
✎
12:57
|
(37) а КА 2.х не >1Гб cf?
|
|||
40
Фрэнки
18.10.18
✎
13:14
|
(39) если на замке, то 615 мб в релизе 2.4.5.24
если с вклеченными изменениями с сохранением поддержки = 1.1 гиг (до внесения каких-то изменений) Но это ни одного там в ней изменения нет, когда вкл изм и накидать туда макетов огромных, то будет больше, конечно. з.ы. Все-таки я думаю, что в КА 1.1 там не прямая зависимость с размером, а с самим наличием "второй копии" конфигурации, которая конфликтует с "первой" при запихивании ее в БЛОБ платформой - просто глючит в данном случае при попытке архивации баз, а так оно и в других событиях глючит тоже. При накатывании обновлений из Поддержка-Обновить конфигурацию, например. |
|||
41
shuhard
18.10.18
✎
13:24
|
(40) [ просто глючит в данном случае при попытке архивации баз]
+100500 проблема Postgres, с MS SQL её нет |
|||
42
mgk2
18.10.18
✎
16:38
|
(40) Такая же проблема должна быть и под линуксом. Ведь лимит на размер поля у Postgres одинаковый для обоих версий.
|
|||
43
shuhard
18.10.18
✎
16:45
|
(42) [pg_dump: Ошибка выгрузки таблицы "config": сбой в PQgetResult().
pg_dump: Сообщение об ошибке с сервера: Р?РЁР?Р'Р?Р?: invalid memory alloc request size 1174829507] таблицы "config invalid memory alloc request size 1174829507 можно и дальше позаниматься флюдом, но тема закрыта |
|||
44
shuhard
18.10.18
✎
20:19
|
(43) на родственном ресурсе та же ошибка в отраслевой на базе УПП 1.3.112.4 =)
http://www.sql.ru/forum/1304093/1s-molokozavod-1-3-112-4-ne-rabotaet-bekap-sredstvami-postgresql т.е. дело однозначно в размере cf |
|||
45
mgk2
18.10.18
✎
21:19
|
(44) благодарю
|
|||
46
ansh15
18.10.18
✎
22:55
|
http://www.sql.ru/forum/1302916/problema-pri-sozdanii-rezervnoy-kopii-pg-dump - каких-то конкретных положительных решений тоже не наблюдается.
Остается писать в 1С, пусть разбираются. Попутно можно было бы попробовать в Linux. Так, на всякий случай, чтобы убедиться, что там то же самое(или нет). |
|||
47
tesseract
18.10.18
✎
23:53
|
BLOB побился явно. Перезагрузить конфу прямой загрузкой.
>>Платформа 8.3.9.2170 Ретроград? |
|||
48
Фрэнки
19.10.18
✎
08:25
|
(47) попробовать можно, но в тех вариантах не помогало, на которые я ссылался, что ошибки с КА 1.1 возникали в серверном режиме.
|
|||
49
Фрэнки
19.10.18
✎
08:29
|
я сегодня проверю вариант с большой конфигой по размеру (ка_2.4) на субд постгри и сервером на винде - сглючит или нет - проверю. Не знаю только получится ли протестить, если сервер для субд будет линуксовый... долго такое городить и профита не будет чисто поэкспериментировать и прокачать экспу разве что :-)
|
|||
50
Trotter
19.10.18
✎
08:36
|
100 гигов, полёт нормальный.
SET PGPASSWORD=12344321 "C:\Program Files\PostgreSQL\10.3-2.1C\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "D:\1cBackupNew\BUH_%date:~6,4%-%date:~3,2%-%date:~0,2%.backup" "BUH" |
|||
51
Фрэнки
19.10.18
✎
08:39
|
(50) а размер выгруженной одной только CF из этой базы какой?
|
|||
52
Фрэнки
19.10.18
✎
08:40
|
(50) BUH ? - это же вероятно конфигурация БП какая-то?
|
|||
53
Trotter
19.10.18
✎
08:40
|
(51) не проверял размер CF, БП30
|
|||
54
Фрэнки
19.10.18
✎
08:42
|
(53) ну дык... с этими конфигами проблем нет, не было и не будет - про такие никто и не говорит.
|
|||
55
shuhard
19.10.18
✎
08:58
|
(54) +100500
|
|||
56
mgk2
22.10.18
✎
09:17
|
Вырезал из конфигурации несколько макетов ненужных драйверов.
cf сократил до 0,98 Гб. Но проблема с архивацией осталась. |
|||
57
Nikoss
22.10.18
✎
09:28
|
(56) полностью снятие с поддержки (чтоб конфа была 600мб) тоже не помогает?
|
|||
58
Фрэнки
22.10.18
✎
09:34
|
(56) а какую теперь ошибку пишет?
|
|||
59
mgk2
22.10.18
✎
09:37
|
(58) Ту же самую.
|
|||
60
mgk2
22.10.18
✎
09:39
|
(57) Этот вариант на крайний случай. Боюсь проблем с обновлениями.
|
|||
61
Фрэнки
22.10.18
✎
09:39
|
(59) ??? invalid memory alloc request size 1174829507
|
|||
62
mgk2
22.10.18
✎
09:43
|
(61) Да. Только циферки немного другие , поскольку на демобазе эксперименты ставлю.
|
|||
63
Йохохо
22.10.18
✎
09:58
|
просто для теста пг_дамп с
--exclude-table-data=public.config пройдет? |
|||
64
mgk2
22.10.18
✎
10:08
|
(63) так архивация проходит без ошибок.
|
|||
65
Йохохо
22.10.18
✎
10:20
|
(64) гугл упорно говорит, что таблица битая. Я бы уменьшил ее еще, но значительно - до 500мб, например, и еще раз пг_дамп. Это подтвердит битая или нет
|
|||
66
Фрэнки
22.10.18
✎
11:06
|
можно предположить, что источником ошибки и вовсе окажется некий конкретный объект метаданных, только сколько раз надо провернуть все-все-все манипуляции, чтоб найти такой объект. Причем, сбоить этот объект начинает в процессе клонирования конфиги поставщика в подкопию основной ЦФ-конфиги
|
|||
67
Вафель
22.10.18
✎
11:08
|
постгре под виндой чтоли?
|
|||
68
mgk2
22.10.18
✎
11:12
|
(65) Ставлю конфу на замок , или снимаю ее с поддержки - проблема уходит.
|
|||
69
mgk2
22.10.18
✎
11:14
|
(67) см (24)-(31) - судя по всему такая же проблема возможна и под linux.
|
|||
70
Йохохо
22.10.18
✎
11:21
|
(69) тогда бы гугл знал о ней, 1гб сейчас не то чтобы много
|
|||
71
mgk2
22.10.18
✎
11:25
|
(70) уже знает - в (44) (46) есть ссылки.
|
|||
72
Фрэнки
22.10.18
✎
11:28
|
(71) извини, но это ссылки практически такого уровня, как на ветки на нашей же мисте
|
|||
73
Йохохо
22.10.18
✎
11:32
|
(71) вероятно они твои)
https://pgconf.ru/media/2018/02/14/DBeaver_PgConf-Russia-2018.pdf будешь дальше копать или альтернативу искать? |
|||
74
mgk2
22.10.18
✎
16:53
|
(66) Похоже ты прав.
Развернул демоконфу КА2, включил возможность изменения - в результате cf размером 1,2 Гб. Архивация проходит без проблем. |
|||
75
Колянович
24.10.18
✎
10:41
|
Такая же проблема. dt делается. в копию серверную(Postgres pro 9.6) не грузится, ругается на память, а в файловую загрузился. Пытаюсь определить проблемный объект в метаданных. Попутно попробую в mssql 2008 загрузить dt.
|
|||
76
Фрэнки
24.10.18
✎
11:19
|
(75) А я бы просто оставил базу с полностью снятой с поддержки, а обновления заготавливал по мере необходимости из файлового режима. Какая разница, если развернута тестовая копия и завершить процедуру обновления все равно нужно только на тестовой, а затем уже из тестовой забирать CF и обновлять продакшн базу сравнением/объединением.
|
|||
77
Колянович
24.10.18
✎
11:37
|
(76) как сейчас решение да, но причина явно не устранена. попробую 107.5 накатить на файле и перенести на серверную.
|
|||
78
Колянович
24.10.18
✎
14:03
|
В MsSQL действительно все загружается без ошибок. Проблема на стороне Postgres, попробую покопать настройки. Ни у кого нет опыта тонкой настройки? Не хочется верить, что Postgres настолько не продуман.
|
|||
79
mgk2
24.10.18
✎
14:20
|
в релиз КА 1.1.107.5 этот косяк не убрали.
|
|||
80
Фрэнки
24.10.18
✎
15:17
|
(78) никто и не заставляет. Только две конфиги КА 1.1 и УПП 1.3 - с остальными проблем нет. с КА 2.4 тоже проблем нет.
(79) этому косяку уже много лет. |
|||
81
mgk2
24.10.18
✎
15:47
|
(80) Но воспроизводится он только на демоконфигурациях версий 1.1.107.х.
|
|||
82
gae
25.10.18
✎
06:50
|
Раньше была проблема на 32-ух битных версиях PostgreSQL, не хватало им памяти для больших конфигураций. Приходилось снимать с поддержки конфу, чтобы работать. С появлением 64-битной проблема ушла.
И вот опять что-то похожее. |
|||
83
Мимохожий Однако
25.10.18
✎
07:14
|
(0) Какая операционная система?
|
|||
84
Nikoss
25.10.18
✎
07:16
|
(83) вин
|
|||
85
Мимохожий Однако
25.10.18
✎
07:18
|
(84) Ты не автор. "вин" бывает разный.
|
|||
86
mgk2
25.10.18
✎
10:50
|
(83) win7, win10, win2008r2
|
|||
87
Колянович
31.10.18
✎
10:50
|
Насколько я разобрался 1С пихает файл конфигурации в поле. Поле имеет ограничение 1 Гб. Размер конфы закрытой для ред. и снятой с поддержки не превышает 1 Гб, а частично дописанная превышает. 1С рекомендует (прочитал на форуме SQL) снимать с поддержки полностью или использовать pg_basebackup. Снял на тестовой с поддержки - дамп отработал без ошибок.
|
|||
88
Nikoss
31.10.18
✎
11:10
|
(87) см (74)
|
|||
89
Фрэнки
31.10.18
✎
11:15
|
(87) Просто рекомендация 1С не совсем честная. Если снять конфу КА 1.1 с поддержки или УПП 1.3 с поддержки, то проблема действительно пропадает. Однако, есть другие конфы, с которыми этой проблемы в принципе нет - см (74),
а так же и другие. |
|||
90
Колянович
31.10.18
✎
13:40
|
(89) и решения от 1с скорее всего не дождемся. Работу с данными в этом случае организует кластер серверов 1с? имею в виду структуру таблиц.
|
|||
91
mgk2
06.11.18
✎
10:44
|
(87) На каком варианте остановился?
|
|||
92
kook
07.11.18
✎
21:14
|
(87)В тему: те же проблемы с УПП 1.3.112.4 на pg 9.6:
-при архивировании средствами pg - описанная выше ошибка -при обновлении - вылетает При анализе выяснилось, что ошибка возникает с таблицей config (конфигурация БД), при обработке определенной строки таблицы, подробности ниже. 1. Просмотрел таблицу config, поля: filename (строка), creation (датавремя), modified(датавремя), attributes(целое), datasize(целое), binarydata(bytea). 2. Строк 34017. 3. Сумма размера бинарных полей примерно 98% размера файла .cf (остальное занимают оставшиеся поля), т.е. в binarydata хранится конфигурация. 4. Проверил: для любой строки размер binarydata не более 100МБ. Кроме одной, там размер binarydata 555МБ. И именно в этой строке возникает ошибка. Выяснил, что в данной строке, в одном поле хранится конфигурация поставщика. 5. Поэтому при снятии с поддержки или запрете изменений (замок) ошибка исчезает, т.к. при этом удаляется строка по п.4. Суммируя вышеизложенное: максимальный размер данных, внесенных в ОДНО поле - 0,55ГБ (см. п.4.), что не дотягивает до озвученного лимита объема данных в ОДНОМ поле 1ГБ. Вывод: либо лимит объема ОДНОГО поля около 0,5ГБ, либо причина в другом. Пробовал играть настройками конфигурации pg (размеры буферов памяти и т.п.) - ошибка не исчезла. |
|||
93
kook
07.11.18
✎
21:47
|
(92)Кстати, и обычный select средствами pg вызывает эту же ошибку, если в его результате содержится поле Binarydata с конфигурацией поставщика (555МБ) - еще одно подтверждение что ограничение 1ГБ ни при чем.
|
|||
94
mgk2
07.11.18
✎
21:51
|
(93) да. конфа ка2 нормально переносит снятие с замка.
|
|||
95
spectre1978
07.11.18
✎
22:46
|
(0) ровно та же проблема у меня была с УПП в 2012 году - с той же ошибкой pg_dump грохался. Стабильность - признак мастерства, чо... Сколько лет прошло, а ничего не меняется.
|
|||
96
timurhv
08.11.18
✎
00:41
|
(95) Так поди все на форумах пошушукались и разработчикам никто не отписал.
|
|||
97
Garykom
гуру
08.11.18
✎
01:22
|
shared_buffers = 512Mb ?
|
|||
98
Фрэнки
08.11.18
✎
08:37
|
(96) отписывались. Я помню об этих глюках примерно с 2011-2012 годов. Когда это поперло, то начали откладывать на ИТС полные дистрибы КА 1.1 и УПП 1.3 , т.к. реально был всплеск обращений, что не проходит процедура обновления конфиги апдейтами.
|
|||
99
mgk2
08.11.18
✎
10:25
|
(97) shared_buffers = 768MB
|
|||
100
mgk2
08.11.18
✎
10:29
|
(96) Я две недели назад написал на v8@1c.ru.
Отписались, что проблема передана разработчикам, и, пока, все. |
|||
101
ansh15
08.11.18
✎
10:36
|
Извиняюсь за многословие.
Простой эксперимент. createdb test; psql test В базе создаем таблицу create table config(id int, bindata bytea); и грузим в нее что-нибудь(неважно что, какой-нибудь файл) insert into config values (1, pg_read_binary_file('_input/tstf.tgz')); Все хорошо загрузилось, без ошибок. Смотрим размер бинарной строки select octet_length(bindata) FROM config; octet_length -------------- 668411047 размер загруженного файла в байтах (1 row) После этого пытаемся использовать pg_dump для создания выгрузки pg_dump -F c -b -f test.backup test Результат — такая же ошибка, как и у автора темы invalid memory alloc request size 1336822097 - число, равное длина_бинарной_строки * 2 + 3 Далее, опять psql test Смотрим, можно ли командой copy выгрузить таблицу config в файл copy config to '/home/postgres/config.tbl'; Нет, нельзя, возникает та же ошибка. В документации видим, что у команды copy есть параметр формата чтения/записи данных binary, пробуем - copy config to '/home/postgres/temp2/config.tbl' with binary; Ошибки не возникает, файл создается того же размера, что и бинарная строка. Если размер бинарной строки, скажем, 350 МБ, то ошибки не возникает. |
|||
102
Фрэнки
08.11.18
✎
10:42
|
(101) круто!
А вот интересно (раз пошла такая пьянка - режь последний огурец), почему такого вида траблы нет, когда конфигурации не равны КА 1.1 или УПП 1.3 , например, КА 2 какая-то ? |
|||
103
Garykom
гуру
08.11.18
✎
11:16
|
(99) Но он же хочет больше "invalid memory alloc request size 1 174 829 507"
Может в этом дело? |
|||
104
Garykom
гуру
08.11.18
✎
11:19
|
(101) Урра ошибка не в 1С а в PostgreSQL так?
|
|||
105
Фрэнки
08.11.18
✎
11:25
|
(104) нет. Пост собственно о том, что платформа 1С как-то криво и неоднозначно прописывает в базу конфигу Поставщика
|
|||
106
ansh15
08.11.18
✎
11:29
|
Сервер для выполнения команды copy пытается выделить память, натыкается на ограничение в 1 GB и выдает ошибку.
< 2018-11-08 10:53:02.140 MSK >LOG: 00000: statement: copy config to '/home/postgres/config.tbl'; < 2018-11-08 10:53:02.140 MSK >LOCATION: exec_simple_query, postgres.c:940 < 2018-11-08 10:53:02.513 MSK >ERROR: XX000: invalid memory alloc request size 1336822097 < 2018-11-08 10:53:02.513 MSK >LOCATION: palloc, mcxt.c:858 < 2018-11-08 10:53:02.513 MSK >STATEMENT: copy config to '/home/postgres/config.tbl'; |
|||
107
Garykom
гуру
08.11.18
✎
11:36
|
(105) Тоже верно, не учли особенностей постгрес и лимитов на одну запись.
Точнее учли но не догадались что при выгрузке бинарного поля оно каким то хитрым образом конвертится и занимает чуть более чем в 2 раза памяти. |
|||
108
Фрэнки
08.11.18
✎
11:57
|
(107) все бы ничего, но почему-то в других конфигах с этими примерно размерами траблы не возникает
з.ы. я уже одно и тоже повторяю :-) |
|||
109
stopa85
08.11.18
✎
12:10
|
(101) Снимаю шляпу. Я был уверен что эта фича-бага как-то так воспроизведется. Но вы меня опередили)
|
|||
110
ansh15
08.11.18
✎
12:38
|
(109)Просто интересно стало.
(108)Может в более новых конфигурациях и стали учитывать. Не превышать размер конфы поставщика выше определенного значения. |
|||
111
Rema Dan
08.11.18
✎
12:38
|
(0) Хорошо бы проверить повторится ли эта ошибка на демобазе с разрешёнными изменениями и отключённым режимом совместимости. Возможно, что из-за активного режима совместимости платформа не использует какой-нибудь трюк для обхода этой проблемы.
|
|||
112
mgk2
08.11.18
✎
12:57
|
(111) на демобазе все воспроизводится.
|
|||
113
stopa85
08.11.18
✎
15:43
|
ansh15, а тебе удается восстановить табличку config из файла после COPY ... binary?
COPY public.config (id, bindata) FROM '/var/lib/postgresql/copy.test' with binary; У меня вызывает крах сервера ИЛИ "Ошибка при запросе памяти (850672995 Б)" |
|||
114
NorthWind
08.11.18
✎
21:42
|
(102) возможно, там либо этот объем меньше, либо как-то изменен формат хранения, чтобы в одном поле одной строки столько не хранилось. Собственно, в (105) вы пишете как раз об этом
|
|||
115
NorthWind
08.11.18
✎
21:47
|
(108) "примерно" здесь не сработает, нужно сделать запрос и посмотреть размер. Скорее всего, в новых конфигурациях каким-то образом обошли критический размер поля, а в старых это либо оказалось трудоемко, либо просто поленились связываться с этим. Либо третий вариант - обошли, но в сочетании новая платформа/новая конфигурация.
|
|||
116
kook
08.11.18
✎
21:49
|
(115)Вероятнее всего дело в объеме данных.
Формат хранения конфигурации поставщика поменять - это ж нужно платформу допиливать, так? |
|||
117
ansh15
08.11.18
✎
21:49
|
(113) Да, в пустую таблицу.
|
|||
118
NorthWind
08.11.18
✎
21:57
|
(116) здесь может быть сочетание особенностей платформы и особенностей файла конфигурации. Т.е. что постарше хранят так, а что поновее - по-другому.
|
|||
119
Фрэнки
09.11.18
✎
09:05
|
(118) +100500 :-)
вот у меня абсолютно такое же впечатление - сочетание особенностей |
|||
120
ewgenik
17.11.18
✎
08:43
|
Возьму на себя смелость описать техническую причину проблемы.
1. У PG давным-давно сложилось, что размер буфера памяти для работы со строками не может превышать 1Гб. 2. pg_dump развёртывает бинарные строки в текст (под 1 байт бинарных данных отводится 16 бит (2 байта) текстовых данных). Таким образом размер данных удваивается. 3. Конфигурация в базе хранится одной бинарной строкой. Как только ее размер перевалит за ~0.5Гб. pg_dump не сможет ее сохранить, это и приводит к ошибке описанной в первом посте. Что можно сделать. 1. Использовать pg_basebackup https://its.1c.ru/db/metod8dev#content:5947:hdoc 2. Перекомпилировать pg_dump заменив оператор выгрузки COPY на бинарный. В инете есть инфа, что люди так делали, и что характерно, выгруженные данные с исправленного pg_dump`а нормально восстанавливаются стандартным pg_restore. 3. Сами разработчики PG ограничение в 1Гб снимать не торопятся, так как не уверены, что снятие ограничения не вызовет других конфликтов. Вопрос находится в категории «пожелания». PS: В техподдержку 1С заява отправлеа. ИМХО 1С должна была учитывать эту особенность и хранить конфигурацию как-то иначе. |
|||
121
palsergeich
17.11.18
✎
09:42
|
(120) Снимаю шляпу
|
|||
122
Фрэнки
17.11.18
✎
10:38
|
(120) фишка заключается в одной маленькой подробности и я об этой подробности выше упоминал уже неоднократно.
А подробность эта свидетельствует о том, что ничего особенного 1С делать не будет. И проблема эта им в 1С известна уже не первый и не второй год. Вот эта подробность: Особенность в работе с СУБД Postgres наблюдается только с двумя конфигурациями, хотя и в остальных конфигурациях размер превышает в сумме 1Гб - это только КА 1.1 и УПП 1.3 Так что на Ваше ИМХО отвечу своим ИМХО - 1С предлагает просто переходить с КА 1.1 на КА 2.4 без доплаты за апдейт, так же как на любых других ЗУП или БП или УТ Ну нет официального заявления о прекращении поддержки и какие-то обновления по КА 1.1 выходят, но на системном уровне обеспечить в конфигурации (в ее системно закрытой части) решение такого рода проблемы 1С не станет. |
|||
123
Фрэнки
17.11.18
✎
10:46
|
Да и вообще, если смотреть серьезно, то и сама описываемая проблема не является какой-то мега-супер-пупер критичной траблой, а вполне себе обходится на практике ловкостью рук безо всякого мошенничества (и выше об этом в постах тоже было написано) - базу на СУБД можно хранить в виде "снята с поддержки", чтоб конфигурации поставщика в ней просто не было. Ну не нужна там на сервере никому в процессе ежедневной пользовательской работы.
|
|||
124
avm7
20.11.18
✎
09:59
|
(120) На данный момент проблему резервных копий решили так (в том числе благодаря информации с данного обсуждения) (linux).
Резервная копия создается тремя командами вместо одной: pg_dump -Z 9 -T config -f путь_к_файлу имя_базы pg_dump -t config -s -f путь_к_файлу_схемы имя_базы psql -d имя_базы -c "COPY public.config TO 'путь_к_файлу_конф' WITH BINARY;" Первой командой выгружаем дамп базы за исключением проблемной таблицы config. Второй командой выгружаем схему для таблицы config. Третьей - выгружаем таблицу config в бинарном виде. В результате у нас на выходе три файла. Восстановление. Распаковыввем основной архив: gunzip --keep путь_к_файлу Восстанавливаем БД, при этом восстанавливается БД без таблицы config >psql имя_базы < путь_к_распакованному_файлу Теперь восстанавливаем таблицу config. Создаем в БД таблицу config: >psql имя_базы < путь_к_файлу_схемы Заливаем в таблицу config данные из файла psql -d имя_базы -c "COPY public.config FROM 'путь_к_файлу_конф' WITH BINARY;" |
|||
125
MaximRodnik
20.11.18
✎
10:07
|
(120) Исправлена ли эта проблема в PG 11, которая вышла недавно?
|
|||
126
Serg_1960
20.11.18
✎
10:14
|
Зачем вам в рабочей базе нужна конфигурация поставщика?
PS: особо всё внимательно не читал, поэтому sorry если уже спрашивали. |
|||
127
Serg_1960
20.11.18
✎
10:20
|
PSS: проблемы, возникающие с конфигурацией УПП, не только связаны с самой конфигурацией, но с "низким" режимом совместимости на "высоких" платформах.
|
|||
128
Фрэнки
20.11.18
✎
10:25
|
(127) конечно. Поэтому я даже не знаю, как можно рассчитывать на решение подобного рода проблем в конфиге КА 1.1 и УПП 1.3
Если повышение релиза СУБД даст какой-то заметный эффект только при повышении релиза платформы, а релиз платформы упирается в грабли под названием "режим совместимости" |
|||
129
rsv
20.11.18
✎
10:59
|
(0) похоже скоро слон будет без альтернатив http://www.cnews.ru/news/top/2018-11-20_microsoft_sokrashchaet_shtat_v_rossii_sotrudnikov
|
|||
130
ansh15
20.11.18
✎
11:09
|
(128) Когда снимут с поддержки и КА 1.1 и УПП 1.3, и у людей не останется выбора, кроме как переползти на КА 2 и ERP, проблема решится сама собой. Наверное, перейти на новые конфы с "переписанных вдоль и поперек" старых будет весьма непросто...
|
|||
131
ewgenik
21.11.18
✎
11:09
|
(124) Проверено, работает! Спасибо, жму руку!
Вопрос, а имеет ли смысл каждый раз сохранять таблицу 'config', или ее копию можно делать только после внесений изменений в конфигурацию? |
|||
132
stopa85
21.11.18
✎
11:35
|
(124)(131) Вот она сила Мисты! Первые подобные проблемы в интернете встечаются очень давно. Но разобрались только в Мисте.
|
|||
133
stopa85
21.11.18
✎
12:03
|
(124) Нужно только не забывать что команда
psql -d имя_базы -c "COPY public.config TO 'путь_к_файлу_конф' WITH BINARY;" - платформо-зависимая. Может не восстановиться на других релизах и даже при перепрыгивании с х32 на х64. |
|||
134
ewgenik
22.11.18
✎
03:53
|
(133) Думаю никому не придет в голову делать переход на другую платформу через SQL backup/restore. Для таких вещей используют средства самой 1С.
|
|||
135
mgk2
22.11.18
✎
10:21
|
(134) в обсуждаемой ситуации выгрузка в dt проходит без проблем, а загрузка вылетает с ошибкой.
См (75) |
|||
136
stopa85
22.11.18
✎
10:49
|
(134) я имею в виду релиз PostgreSQL.
Когда я менял релиз постгреса - я делал выгрузку/загрузку dt для 1С-овских баз и dump/restore для не 1С-совских. Если мне не изменяет моя память, то при переходе с релиза на релиз постгреса, например с 8.4 на 9.1, нужно подключится к серверу постгреса 8.4 утилитой pg_dump из 9.1, сделать бекап и восстановить его в 9.1. Если я что-то путаю или отстал от жизни - поправьте, пожалуйста. Соответственно в случае краха сервера (пожар/землетрясение/метеорит) бекапы нужно восстанавливать на том же релизе постреса с той же разрядностью. |
|||
137
ewgenik
22.11.18
✎
11:05
|
(135) Не факт.
Была проблема, что конфигурация из .dt`шника не загружалась. Причина была в том, что на виртуалке с PGSQL было всего 1Гб ОЗУ. Увеличил до 2Гб - все загрузилось. Речь идет о базе как раз подпадающую под обсуждаемую ситуацию. |
|||
138
ansh15
22.11.18
✎
11:25
|
(135)Потому что при загрузке из dt сервер приложений 1C пишет в базу данных при помощи COPY.
При выгрузке в dt сервер приложений получает данные из СУБД посредством через курсор FETCH, видимо там другой алгоритм выделения памяти, который не приводит к такой ошибке. Посмотрел сейчас лог PostgrSQL - при выгрузке в dt создается declare cursor mycursor binary специально для таблицы config, и потом fetch. |
|||
139
ansh15
02.12.18
✎
12:19
|
+(130) Собственно, выбора уже нет - http://catalog.mista.ru/journal/news/mir-1s/polzovateli-1s-kompleksnaya-avtomatizatsiya-1-1-ne-smogut-sdat-otchetnost-za-2019-god_955646/
|
|||
140
mgk2
04.12.18
✎
13:17
|
Жесть какая. Давно я оленей не кормил.
Оказывается в марте уже объявили. |
|||
141
mgk2
04.12.18
✎
13:18
|
Вопрос к франчам : сколько будет стоить апгрейд с КА 1.1 на УПП 1.3 ?
|
|||
142
spectre1978
04.12.18
✎
18:23
|
(141) а могет быть такой апгрейд? Разные продукты вроде как совсем. Да и УПП уже просто так не купить, нужно долго доказывать что она тебе нужна. Апгрейд только на КА2...
|
|||
143
Фрэнки
04.12.18
✎
18:53
|
(142) для КА 1.1 есть халявный апгрейд на КА 2.4
|
|||
144
Фрэнки
04.12.18
✎
18:54
|
А вообще, могут зачесть стоимость, как это всегда бывает при смены конфигурации на более дорогую.
|
|||
145
NorthWind
04.12.18
✎
20:10
|
(143) на КА2 понятно что есть в том или ином виде. Человек же на УПП хочет :)
|
|||
146
gni
17.12.18
✎
10:18
|
Здравствуйте!
(124) А как решили проблему (если решили) с индексацией? Спасибо. |
|||
147
NorthWind
18.12.18
✎
21:59
|
(146) если схема по команде №2 выгружается с командами создания индексов, то проблемы как будто и нет...
|
|||
148
avm7
21.12.18
✎
15:14
|
(146) насколько я помню, в полной выгрузке таблица config не упоминается в создании индексов. Т.е. проблем быть не должно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |