SQL Error [53200]: ОШИБКА: нехватка разделяемой памяти Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction
При выполнении запросов на БД (Postgres) возникла ошибка:
24.02.21 13:50:38.219,main,ERROR,ExecSql,null
com.bssys.db.jdbc.DBSQLException: ОШИБКА: нехватка разделяемой памяти
Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction.
Подробная информация по параметру здесь. Коротко ниже:
max_locks_per_transaction (integer)
Этот параметр управляет средним числом блокировок объектов, выделяемым для каждой транзакции; отдельные транзакции могут заблокировать и больше объектов, если все они умещаются в таблице блокировок.
Значение по умолчанию = 64
рядом также находится параметр max_pred_locks_per_transaction (integer)
В файле postgresql.conf (Postgres/data/) указано так:
#———————————————————————-
# LOCK MANAGEMENT
#———————————————————————-
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
Изменил на это значение:
#———————————————————————-
# LOCK MANAGEMENT
#———————————————————————-
#deadlock_timeout = 1s
max_locks_per_transaction = 256 # min 10
# (change requires restart)
max_pred_locks_per_transaction = 1000 # min 10
# (change requires restart)
P.S. После изменения убрать символ «#» в начале строки
Популярные сообщения из этого блога
TRUNCATE / DELETE / DROP или как очистить таблицу
ИМЕЕМ: Таблица MSG (сообщения) с большим количеством записей. SQL> CREATE TABLE msg (id INTEGER NOT NULL PRIMARY KEY, description CHAR (50) NOT NULL, date_create DATE); ЗАДАЧА: Необходимо очистить таблицу от данных РЕШЕНИЕ: Для решения данной задачи есть несколько способов. Ниже описание и пример каждого из них. Способ №1 — используем DELETE Самый простой способ (первый вариант) — выполнение оператора удаления записи. При его выполнении вы будете видеть результат (сколько записей удалено). Удобная штука когда необходимо точно знать и понимать правильные ли данные удалены. НО имеет недостатки перед другими вариантами решения поставленной задачи. SQL> DELETE FROM msg; —Удалит все строки в таблице SQL> DELETE FROM msg WHERE date_create = ‘2019.02.01’; —Удалит все строки у которых дата создания «2019.02.01» Способ №2 — используем TRUNCATE Использование оператора DML для очистки всех строк в та
Linux (РедОС). Сброс пароля
Используется ОС РедОС 7.1, которая установлена в VBox. В процессе установки ОС, был задан только пароль для «root», дополнительных пользователей не создавалось. В рекомендациях на сайте производителя ОС указано: Помимо администратора РЕД ОС (root) в систему необходимо добавить, по меньшей мере, одного обычного пользователя. Работа от имени администратора РЕД ОС считается опасной (можно по неосторожности повредить систему), поэтому повседневную работу в РЕД ОС следует выполнять от имени обычного пользователя, полномочия которого ограничены. После перезапуска и попытке войти в систему под root, система выдает сообщение «Не сработало .попробуйте еще раз». Поэтому для решения проблемы было решено создать пользователя, для этого выполняем такие действия: После загрузки, в момент выбора системы, быстро нажимаем стрелки вверх и вниз (приостанавливаем обратный отсчет). Выбираем ядро и нажимаем «e». Находим строку, которая относится к ядру: здесь будет ряд «boot parameter
КБК. КВФО — Код вида финансового обеспечения (деятельности)
НПА: Приказ Минфина России от 01.12.2010 N 157н Письмо Минфина России от 18 января 2018 г. N 02-06-10/2715 В целях организации и ведения бухгалтерского учета, утверждения Рабочего плана счетов применяются следующие коды вида финансового обеспечения (деятельности): для государственных (муниципальных) учреждений, организаций, осуществляющих полномочия получателя бюджетных средств, финансовых органов соответствующих бюджетов и органов, осуществляющих их кассовое обслуживание: 1 — деятельность, осуществляемая за счет средств соответствующего бюджета бюджетной системы Российской Федерации (бюджетная деятельность); 2 — приносящая доход деятельность (собственные доходы учреждения); 3 — средства во временном распоряжении; 4 — субсидии на выполнение государственного (муниципального) задания; 5 — субсидии на иные цели; 6 — субсидии на цели осуществления капитальных вложений; 7 — средства по обязательному медицинскому страхованию; для отражения органами Федерального казн
ЭС с ЦБ РФ. РЕКВИЗИТНЫЙ СОСТАВ ЭС
4 РЕКВИЗИТНЫЙ СОСТАВ ЭС ED101 Платежное поручение ED103 Платежное требование ED104 Инкассовое поручение ED105 Платежный ордер ED107 Поручение банка ED108 Платежное поручение на общую сумму с реестром ED109 Банковский ордер ED110 ЭПС сокращенного формата ED111 Мемориальный ордер в электронном виде ED113 Выставляемое на оплату платежное требование ED114 Выставляемое на оплату инкассовое поручение ED201 Извещение о результатах контроля ЭС (пакета ЭС) ED202 Запрос по ЭПС (пакету ЭПС) ED203 Запрос по группе ЭПС ED204 Запрос об отзыве/аннулировании ЭС (пакета ЭС). ED205 Извещение о состоянии ЭПС (пакета ЭПС) ED206 Подтверждение
ТФФ 34.0. Полный перечень документов альбома ТФФ (Таблица 2)
Для удобства и поиска информации по томам, маркерам и обозначении версии ТФФ. Таблица актуальна — версия 34.0 — (дата начала действия с 01.01.2023 г.) Ссылки на предыдущие версии форматов: ТФФ 33.0 — https://albafoxx.blogspot.com/2021/01/320-2.html ТФФ 32.0 — https://albafoxx.blogspot.com/2020/01/310-2.html ТФФ 31.0 — https://albafoxx.blogspot.com/2020/01/310-2.html ТФФ 30.0 — https://albafoxx.blogspot.com/2019/12/300-2.html ТФФ 29.0 — https://albafoxx.blogspot.com/2019/05/290-2.html ТФФ 28.0 — https://albafoxx.blogspot.com/2019/04/2.html Наименование документа (справочника) Маркер Номер версии ТФО документа № тома Казначейское уведомление SU TXSU190101 2 Расходное расписание, Реестр расходных расписаний AP TXAP190101 1 Перечень целевых субсидий TL TXTL170101 1 Уведомление (протокол), Информ
I have a query that inserts a given number of test records.
It looks something like this:
CREATE OR REPLACE FUNCTION _miscRandomizer(vNumberOfRecords int)
RETURNS void AS $$
declare
-- declare all the variables that will be used
begin
select into vTotalRecords count(*) from tbluser;
vIndexMain := vTotalRecords;
loop
exit when vIndexMain >= vNumberOfRecords + vTotalRecords;
-- set some other variables that will be used for the insert
-- insert record with these variables in tblUser
-- insert records in some other tables
-- run another function that calculates and saves some stats regarding inserted records
vIndexMain := vIndexMain + 1;
end loop;
return;
end
$$ LANGUAGE plpgsql;
When I run this query for 300 records it throws the following error:
********** Error **********
ERROR: out of shared memory
SQL state: 53200
Hint: You might need to increase max_locks_per_transaction.
Context: SQL statement "create temp table _counts(...)"
PL/pgSQL function prcStatsUpdate(integer) line 25 at SQL statement
SQL statement "SELECT prcStatsUpdate(vUserId)"
PL/pgSQL function _miscrandomizer(integer) line 164 at PERFORM
The function prcStatsUpdate looks like this:
CREATE OR REPLACE FUNCTION prcStatsUpdate(vUserId int)
RETURNS void AS
$$
declare
vRequireCount boolean;
vRecordsExist boolean;
begin
-- determine if this stats calculation needs to be performed
select into vRequireCount
case when count(*) > 0 then true else false end
from tblSomeTable q
where [x = y]
and [x = y];
-- if above is true, determine if stats were previously calculated
select into vRecordsExist
case when count(*) > 0 then true else false end
from tblSomeOtherTable c
inner join tblSomeTable q
on q.Id = c.Id
where [x = y]
and [x = y]
and [x = y]
and vRequireCount = true;
-- calculate counts and store them in temp table
create temp table _counts(...);
insert into _counts(x, y, z)
select uqa.x, uqa.y, count(*) as aCount
from tblSomeOtherTable uqa
inner join tblSomeTable q
on uqa.Id = q.Id
where uqa.Id = vUserId
and qId = [SomeOtherVariable]
and [x = y]
and vRequireCount = true
group by uqa.x, uqa.y;
-- if stats records exist, update them; else - insert new
update tblSomeOtherTable
set aCount = c.aCount
from _counts c
where c.Id = tblSomeOtherTable.Id
and c.OtherId = tblSomeOtherTable.OtherId
and vRecordsExist = true
and vRequireCount = true;
insert into tblSomeOtherTable(x, y, z)
select x, y, z
from _counts
where vRecordsExist = false
and vRequireCount = true;
drop table _counts;
end;
$$ LANGUAGE plpgsql;
It looks like the error is a result of a memory building up somewhere but since I create temp table, use it and drop right away (thus to my understanding releasing memory), I don’t see how that would be possible.
Update
I updated prcStatsUpdate function to represent the actual function that I have. I just replaced table and column names to be something generic.
The reason I didn’t post this first time is that it’s mostly very simple sql operations and I assumed there could not be any issues with it.
Also, where do you start line counting from? It says error is on line 25, but that just can’t be true since line 25 is a condition in the where
clause if you start counting from the beginning. Do you start counting from begin
?
Any ideas?
DETAIL: Failed on request of size
You may encounter an error message like following.
ERROR: out of memory
DETAIL: Failed on request of size 536870912.
Explanation:
This low-level out-of-memory (OOM) error occurs when PostgreSQL is unable to allocate the memory required for a query to run, or any other internal operation to complete.
Note that depending on your operating system configuration you might also see the server process was terminated by signal 9: Killed
message, which can occur when the operating system’s OOM killer process goes into action due to the whole system running out of memory.
PostgreSQL is usually good at handling the explicit out of memory
errors, so if you only have a momentary out of memory condition it will recover without a restart, and without crashing.
On the other hand if you get the OOM killer message that indicates a process was terminated by the kernel, PostgreSQL will restart and then enter into recovery mode.
In general it is not advised to operate your database under a recurring OOM condition, as you may see unexpected error messages at any time, and processes are at risk of being terminated by the OS.
Recommended Action:
First of all, if you see this log event, it makes sense to capture the full message, including the last part that starts with TopMemoryContext
and describes individual blocks in detail, for later analysis. This quite length memory statistics dump can help to determine which part of PostgreSQL was using RAM.
More generally, often out of memory occurs when operating a combination of too high work_mem
together with a high number of active connections.
If you are getting frequent OOM errors a good first step is to reduce work_mem
, which should improve stability at the cost of more sort/hash operations going to disk instead.
It also often makes sense to monitor the number of active connections at the time of the issue. To know the current number of connections, run the following query.
SELECT count(*) FROM pg_stat_activity;
Additionally, if you absolutely need more RAM to work with, you can evaluate reducing shared_buffers
to provide more available RAM for memory directly used by connections. This should be done carefully, and whilst actively watching Buffer Cache Hit Ratio statistics.
При создании резервных копий БД обнаружил, что некоторые копии не создались. При ручном запуске команды на создание файла бекапа увидел ошибку при выполнении запроса:
ОШИБКА: нехватка разделяемой памяти
Там же, собственно, есть и подсказка: следует увеличить параметр max_locks_per_transaction.
Этот параметр управляет средним числом блокировок объектов, выделяемым для каждой транзакции; отдельные транзакции могут заблокировать и больше объектов, если все они умещаются в таблице блокировок.
Значение по умолчанию = 64
В папке с данными Postgres необходимо найти файл postgresql.conf и найти строку с параметром max_locks_per_transaction. Ее следует раскомментировать и указать, например, 256.
Навигация по разделам:
- Комплексные решения 1С (КА, ERP, УПП), управленческий учет (УНФ), корпорациям
- 1С Комплексная автоматизация 8. Редакция 2
- КА Зарплата
- КА Настройка программы
- КА ОС и НМА
- КА Отчетность
- КА Покупка, продажа
- КА Продажи
- КА Производство
- КА Закрытие месяца
- КА Администрирование
- КА Склад
- КА Казначейство
- 1С:Предприятие 8. ERP Управление предприятием 2.0
- ERP Подсистема управленческого учета
- ERP: Подсистема Зарплата и управление персоналом
- ERP Подсистема регламентированного учета
- 1С:Управление нашей фирмой 8
- УНФ Деньги
- УНФ Планирование
- УНФ Покупка, продажа
- УНФ Производство
- УНФ Розница
- УНФ Отчетность
- УНФ Администрирование
- УНФ Анализ
- УНФ Заработная плата
- УНФ Компания
- 1С Комплексная автоматизация 8. Редакция 2
- Хозрасчетным организациям — бухгалтерия, ЗУП
- 1C:Бухгалтерия 8
- БП Банк и касса
- БП Склад, покупка, продажа
- БП Зарплата
- БП Администрирование
- БП Декларация по налогу на имущество
- БП Закрытие месяца
- БП МЦ
- БП НДС
- БП НДФЛ
- БП пилотный проект ФСС
- БП Прибыль
- БП Производство
- БП Справочники, документы, печатные формы
- БП УСН
- БП Учет ОС и НМА
- БП Отчетность по Алко декларации
- БП Отчетность в Пенсионный Фонд
- БП Учетная политика, ввод остатков, начальные настройки
- БП Отчетность по УСН
- БП Бухгалтерская отчетность
- БП Отчетность в ФСС
- БП Земельный налог
- БП Транспортный налог
- БП Отчетность по страховым взносам
- БП СЗВ-ТД
- 1С:Зарплата и Управление Персоналом 8
- ЗУП-3 Кадровый учет
- ЗУП-3 Отражение зарплаты в бухгалтерском учете
- ЗУП-3 Налоги и взносы
- ЗУП-3 Администрирование
- ЗУП-3 Больничный
- ЗУП-3 Зарплата
- ЗУП-3 Начальное заполнение, учетная политика, параметры учета
- ЗУП-3 НДФЛ
- ЗУП-3 Отпуск
- ЗУП-3 Отчетность
- ЗУП-3 Пособия
- ЗУП-3 Синхронизация
- ЗУП-3 Отчетность по страховым взносам
- 1С:Предприятие 8. Бухгалтерия сельскохозяйственного предприятия
- БПСельхоз ОС и НМА
- БПСельхоз Пайщики
- БПСельхоз Банк и Касса
- БПСельхоз НДС
- БПСельхоз Взаиморасчеты с контагентами
- БПСХ Учетная политика, ввод остатков, начальные настройки
- 1С:Предприятие 8. Бухгалтерия строительной организации
- 1C:Предприятие 8. Подрядчик строительства. Управление строительным производством
- 1C:Бухгалтерия 8
- Торговым, складским, транспортным организациям
- 1С:Предприятие 8. Управление торговлей, редакция 11
- УТ-11 Закупки
- УТ-11 CRM и Маркетинг
- УТ-11 Нормативно-справочная информация
- УТ-11 Оптовая торговля
- УТ-11 Продажи
- УТ-11 Розничная торговля
- УТ-11 Склад и Доставка
- УТ-11 Казначейство
- УТ-11 Администрирование
- УТ-11 Финансовый результат и контроллинг
- УТ-11 Планирование
- 1С:Розница 8 (2.3)
- Розница. Нормативно-справочная информация
- Розница. Продажи
- Розница. Склад
- Розница. Финансы
- Розница.Закупки и запасы
- Розница. Маркетинг
- Розница. Администрирование
- Розница. Персонал
- 1С:Розница 8. Аптека
- 1С:Розница 8. Ювелирный магазин
- Маркировка товаров
- ФГИС «Меркурий» (учет продукции животного происхождения) ВетИС
- Маркировка табачной продукции
- Маркировка молочной продукции
- Маркировка обувной продукции
- Маркировка легкой промышленности (одежды)
- Маркировка лекарственных средств
- МДЛП Настойка обмена с ИС «МДЛП»
- МДЛП Текущие вопросы
- МДЛП Регистрация в личном кабинете
- Маркировка шин и покрышек
- Маркировка кресел-колясок
- Маркировка велосипедов
- Маркировка питьевой воды
- Маркировка пива и слабоалкогольной продукции
- Маркировка БАДов
- Маркировка антисептиков
- Маркировка медицинских изделий
- Торговое оборудование
- ККТ, ОФД, 54 ФЗ
- Сканер штрих-кода
- ТСД
- Принтер этикеток
- Весы
- Эквайринговый терминал
- ЕГАИС
- ЕГАИС настройка рабочего места (установка панели Рутокен, УТМ)
- ЕГАИС текущие вопросы
- Моби-С
- 1С:Розница 8 (3.0)
- 1С:РМК
- 1С:Касса
- 1С:Мобильная касса
- 1С:Предприятие 8. Управление торговлей, редакция 11
- Бюджетным организациям
- 1С:Бухгалтерия государственного учреждения 8
- БГУ Банк и Касса
- БГУ ГСМ
- БГУ Декларация по прибыли
- БГУ Закрытие года, исправление ошибок прошлых лет
- БГУ Материальные запасы
- БГУ НДС, Прибыль и др. платежи в бюджет
- БГУ ОС и НМА
- БГУ Отражение зарплаты
- БГУ Отчетность
- БГУ Планирование и санкционирование
- БГУ Справочники, настройки, печатнае формы
- БГУ СУФД, К-Банк, АЦК-Финансы, Эл. бюджет, Мат.Капитал
- БГУ УСН
- БГУ Администрирование
- БГУ. Взаиморасчеты с разными дебиторами/кредиторами
- БГУ Услуги
- БГУ Стандартные отчеты, регистры учета
- БГУ Имущество казны
- БГУ Переход на новый ПСБУ и стандарты
- БГУ Аренда
- БГУ Доходы, в т.ч. Платные услуги
- 1С:Зарплата и кадры государственного учреждения. Ред. 3.1
- ЗКГУ 3 Взносы
- ЗКГУ 3 Зарплата
- ЗКГУ 3 Кадры
- ЗКГУ 3 Начисления
- ЗКГУ 3 НДФЛ
- ЗКГУ 3 Отпуск
- ЗКГУ 3 Отражение в бухучете
- ЗКГУ 3 Больничный
- ЗКГУ 3 Отчеты
- ЗКГУ 3 Удержания
- 1С:Бухгалтерия государственного учреждения 8
- Специализированные решения
- ЖКХ
- 1С:Предприятие 8. Расчет квартплаты и бухгалтерия ЖКХ
- 1С:Предприятие 8. Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК.
- Общепит
- ФК:Учет в общепите
- Общепит — общие вопросы
- Детское питание
- Диетическое питание
- Питание в образовательных организациях
- 1С: Предприятие 8. Общепит
- 1С:Предприятие 8. Управление автотранспортом.
- Образовательным организациям
- 1С:Колледж
- Автозапчасти, сервис, продажа автомобилей
- 1С: Предприятие 8. Автосервис
- ЖКХ
- Обмены между типовыми конфигурациями
- Обмен данными между 1С:Бухгалтерия 8 и 1С:Зарплата и управление персоналом 8
- Обмен данными между 1С:Бухгалтерия 8 и 1С:Предприятие 8. Управление торговлей
- Обмен данными между 1С:Бухгалтерия 8 и 1С:Розница 8
- Обмен данными между 1С:Бухгалтерия 8 и 1С:Управление небольшой фирмой 8
- Обмен данными между распределенным информационными базами (РИБ)
- Налоги и взносы — методики в независимости от программ
- НДФЛ методические вопросы
- СЗВ-М
- СЗВ-ТД
- Сервисы 1С
- 1С:Fresh / 1С:Фреш
- 1С-Коннект
- 1С:Линк
- 1С:Облачный архив
- Информационная система 1С:ИТС
- 1С:Контрагент
- mag1c
- 1С:Заказы
- 1С:Кабинет сотрудника
- 1С:Распознавание первичных документов
- 1С:Обновление программ
- 1С:ГРМ
- 1С:Номенклатура
- 1С:Доставка
- 1С:СБП
- Электронная отчетность, ЭДО
- 1С-Отчетность
- 1С-Отчетность Перенос ключей
- 1С-Отчетность Технические проблемы
- 1С-Отчетность Требования
- 1С-Отчетность Изменение реквизитов
- 1С-Отчетность Кабинет налогоплательщика
- 1С-Отчетность в ПФР
- 1С-Отчетность в ФСС
- 1С-Отчетность Письма, уведомления, запросы, квитанции
- 1С-Отчетность в Росалкогольрегулирование
- 1С-Отчетность в Статистику
- 1С-Отчетность в ФНС
- ЭО Документооборот
- Госуслуги портал
- ЭДО в бюджетных учреждениях
- 1С-Отчетность
- WEB-разработка, создание и продвижение сайтов
- Системы управления веб-содержимым
- Битрикс
- Системы управления веб-содержимым
- Администрирование 1С, технологические вопросы
- Ошибки платформы
- Администрирование SQL
- Администрирование сервера 1С
- Системное администрирование
- Администрирование вебсервера
- Устаревшее ПО. Не поддерживается производителем
- яя1С:Зарплата и кадры бюджетного учреждения. Редакция 1.0.(не поддерживается производителем)
- ЗКБУ Больничный
- ЗКБУ Отражение в бухучете
- яя1С:Зарплата и кадры бюджетного учреждения. Редакция 1.0.(не поддерживается производителем)
- Обмены данными
- Обмен данными ЗУП-БП
- Обмен данными БГУ-ЗКГУ
- Обмен данными БП-Розница
802
Решение вопроса:
в файле postgresql.conf нужно изменить параметр: max_locks_per_transaction выше 200
Эта информация оказалась полезной?
Как можно улучшить этот ответ?
Другие вопросы по теме:
- Как больше не искать решение проблем самому, а доверить это профессионалам?
-
Пришло оповещение о изменениях в будущих платформах 8.3.22 и выше:
Изменения, влияющие на поведение системы в платформах -
При заполнении отчета по страховым взносам и ввыгрузке в файл Ошибка разбора XML : xmlSAXCharacters — out of memory
-
«Ошибка формата потока», не работает 1С после выклчения света.
-
Ошибка СУБД. не могу выделить место
SQL State: 42000
Native: 1105
Message: [Microsoft][ODBC SQL Server Driver][SQL Server] Не удалось выделить место для объекта «dbo.DT2988» в базе данных %name_base%, поскольку файловая группа PRIMARY переполнена. Выделите место на диске, удалив ненужные файлы или объекты в файловой группе, добавив дополнительные файлы в файловую группу или указав параметр автоматического увеличения размера для существующих файлов в файловой группе. -
Пользователь ИБ не идентифицирован
- Нужна помощь в ведении учета? Куда лучше обратиться?
Последние вопросы на сайте:
- Мне необходимы доработки в программе 1С, где лучше это заказать?
-
Как включить отладку на сервере 1с Предприятие в Linux
-
Не заполняется раздел 2 Просроченная задолженность в ф. 0503169
-
Ошибка отображения типов:
Отображение лексического значения в значение типа ‘Цвет’ -
По СЗВ-ТД(ЕФС) пришло письмо из СФР, что задвоились данные по сотруднику за прошлый период 2020-2021г.г. по кадровому мероприятию( прием, увольнение), надо отменить одну запись, как это сделать в ЗУП 3.1?
-
Не удается подключиться к удаленному компьютеру возможно потребуется изменение сетевых параметров.