Всем привет, выручайте, может кто сталкивался или знает куда копать?
1С вылетает с ошибкой каждые 2 часа, потом восстанавливается сама спустя 5 мин, ошибка http://joxi.ru/eAO49R6u9Rz1er
(2) Повторяющаяся ошибка Postgres при запросе
FROM _InfoRg15978 T1
INNER JOIN _InfoRg15970 T2
ON (T1._Fld15980RRef = T2._Fld15972RRef) AND (T1._Fld15981 = T2._Fld15973)
LEFT OUTER JOIN _Document175 T3 и как следствие
не удалось отправить данные клиенту: установленное соединение было прервано программным обеспечением на вашем хост-компьютере. Характеристики сервера, что установлено, сколько баз, сколько пользователей?
ТИИ в режиме конфигуратора выполняли?
(4) < 2020-06-19 16:51:06.364 MSK >LOG: server process (PID 113280) was terminated by exception 0xC0000005
У вас падает postgres с ошибкой доступа к памяти. Попробуйте сделать reindex/vacuum. Либо где-то поврежден неудачно индекс, либо проблемы с оперативной памятью на сервере. Или попробуйте обновить его на более свежий в пределах релиза. Где-то возможно где-то баг в самом постгресе.
Соответственно при такой ошибке он кладет все подпроцессы:
< 2020-06-19 16:51:06.365 MSK >DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
Это нормальное его поведение если память общая была повреждена.
У вас падает postgres с ошибкой доступа к памяти. Попробуйте сделать reindex/vacuum. Либо где-то поврежден неудачно индекс, либо проблемы с оперативной памятью на сервере. Или попробуйте обновить его на более свежий в пределах релиза. Где-то возможно где-то баг в самом постгресе.
(5) Вот это не совсем понял
(12) Постгрес на винде
Я решил проблему по другому. Так как информационная база была целой, за исключением "Регистра сведений Ресурсы механизмов онлайн сервисов РО" и был архив базы dt на начало февраля, выгрузив данные из базы с битой таблицей загрузил в новую информационную базу.
(8) У меня была выгрузка из базы .dt. Создал новую базу, загрузил dt. Из поврежденной базы выгрузил все данные за период, кроме битого регистра, загрузил в новую базу.
Мне кажется, для вас это не подойдет. Если попробовать остановить отправку и прием электронных писем, и найти визуально ошибку?
Если б знать? Нужна структура таблицы этого регистра, открыть таблицу в просмотровщике, там ведь и скрытые поля есть.
Ошибка связана с длиной какого то реквизита регистра, размер его превышен.
В вашем случае можно поступить проще - конфигурация открывается - открыть этот регистр сведений, найти запись, с поврежденными данными и ее удалить, или написать обработку по очищению этого регистра.
Валится 1С на выполнении какого-то регламентного задания при обращении к поврежденной записи регистра сведений.
(6) А как найти эту запись? Это регистр исходящих и входящих сообщений по всем учетным записям электронной почты в 1С. Если вообще все очищу, то пропадут исходящие письма из структуры подчиненности документов которые были отправлены
А как найти эту запись? Это регистр исходящих и входящих сообщений по всем учетным записям электронной почты в 1С. Если вообще все очищу
Или попробовать через отладчик прогнать Регламентное задание Загрузка Электронной почты, найти сообщение, которое валит базу. Руками удалить запись регистра и связанный документ Событие.
Это вроде виндовая ошибка, неопределенного происхождения. Вот вроде похожие симптомы
https://www.sql.ru/forum/1253643/regulyarno-padaet-baza-fatal-the-database-system-is-in-recovery-mode По коду ошибки поиск выдает советы по исправлению направления танцев с бубном
Посоветовал бы во-первых конечно сделать физическую копию баз и попробовать перенести их на физически другую машину. Лучше с линуксами, там стабильней =)
Это вроде виндовая ошибка, неопределенного происхождения.
В логах PostgreSQL валится процесс при отправке и получении электронной почты. Вернее в регламентном задании, при попытке записи в регистр сведений ИдентификаторыСообщений.
Полистал логи, действительно ошибка на одном и том-же запросе, сорри. Битый регистр это бывает. Тогда восстанавливать данные таблицы из бэкапа чаще всего.
Физическая копия для начала обязательна =) да и экспериментируем на копиях =)
pg_dump выгружает данные plain текстом, psql загружает из него же
вот команды
# Выгрузить проблемную таблицу
pg_dump -t my_problem_table(s) ... > my_screwed_up_data.sql
# Выгрузить все КРОМЕ проблемной
pg_dump -T my_problem_table(s) ... > my_not_screwed_up_data.sql
Тут можно и глазами посмотреть на содержимое таблицы, а можно и заскриптовать что-нибудь, простой текст
А дальше загружаем (отредактированные) файлики. В новую БД
cat my_screwed_up_data.sql | psql
cat my_not_screwed_up_data.sql | psql
Аналогично можно просто сдернуть табличку с развернутого бэкапа
[IS-QUOTE]Физическая копия для начала обязательна =) да и экспериментируем на копиях =)
[/IS-QUOTE]
Проблема в том, что у вопрошавшего походу архивов нет и создать архив не представляется возможным, для восстановления. Это первое. Второе, ошибка такова, что восстановление ее не решишь, только найти и удалить поврежденную или ошибочную запись в РС. Можно средствами pgadmin, можно средствами 1С.
< 2020-06-19 19:38:27.298 MSK >LOG: server process (PID 122432) was terminated by exception 0xC0000005
< 2020-06-19 19:38:27.298 MSK >DETAIL: Failed process was running: SEL ECT
T1._Fld15979RRef,
T1._Fld15980RRef,
T1._Fld15981,
T1._Fld15982
FR OM _InfoRg15978 T1
WHERE (T1._Fld333 = CAST(0 AS NUMERIC))
< 2020-06-19 19:38:27.298 MSK >HINT: See C include file "ntstatus.h" for a description of the hexadecimal value.
Это из лога постгресса
Получив структуру данных видим
Это не приближает вас к решению задачи. Нужно найти проблемную запись в регистре сведений и удалить ее или исправить. Ошибка у вас при тестировании invalid string enlargement request size: -4 - превышен размер строки
Попробовать физически скопировать всю базу Postgresql, в другую папку и с ней уже работать далее по инструкции из (16)
Ошибка понятная ошибка: недопустимый размер запроса выделения памяти
таблица _inforg15978, поля _fld15979rref, _fld15980rref
, _fld15981, _fld15982, _fld333
Вот эти поля нужно чистить.
Нужно службе postgres поменять путь до каталога на тот, в который был скопировать каталог data.
Копировать нужно именно полностью весь каталог data со всеми подкаталогами и копировать при остановленной службе postgresql
Нужно службе postgres поменять путь до каталога на тот, в который был скопировать каталог data.
Копировать нужно именно полностью весь каталог data со всеми подкаталогами и копировать при остановленной службе postgresql
Еще изменить скрипт запуска службы postgresql.
Но, вообще, лучше это делать на другой машине.
Все эксперименты надо проводить только на физической копии БД. Лучше вообще на другой машине. Вот например
Как перенести postgres в другое место копирование аналогично, только без удаления исходного =) и на этой отдельной БД экспериментировать, создав под нее конечно и отдельную ИБ в 1С