172 похожих чатов

Всем привет Столкнулся со странным поведением PARTITION BY LIST postgresql

- 11.6

При попытке update поля по которому определены партиции и при котором запись должна перемещаться между партициями - сервер падает

SQL Error [57P03]: FATAL: the database system is in recovery mode

Я в недоумении, при этом PARTITION BY RANGE - работает нормально

Гуглю - ничего похожего не нахожу
Сталкивался ли кто?
Что делать? И возможно ли что сделать?

7 ответов

9 просмотров

Для начала обновите ПГ, текущая актуальная версия - 11.10.

Alex-Yu Автор вопроса
Михаил Шурутов
Для начала обновите ПГ, текущая актуальная версия ...

К сожалению, я такой свободой не обладаю Проблема именно с 11.6

Alex Yu
К сожалению, я такой свободой не обладаю Проблема ...

Ну так объясните тем, кто обладает нужными правами, что минорная версия ПГ должна быть всегда свежей, особенно при наличии ошибок.

Alex Yu
К сожалению, я такой свободой не обладаю Проблема ...

Так пусть это сделает тот, кто обладает. И вообще, использование не последних minor — это безграмотное администрирование. А раз проблема воспроизводится локально (на тестовом кластере, я так понимаю), обновите пока хотя бы его и попробуйте повторить.

Alex-Yu Автор вопроса
Yaroslav Schekin
Так пусть это сделает тот, кто обладает. И вообще,...

Только что проверил на 11.10 Проблема - та же самая Инстанс падает Попробую сделать совсем чистый эксперимент Вычистить все триггеры, констрэйнты Но выглядит все странно

Alex Yu
Только что проверил на 11.10 Проблема - та же сам...

Другое дело. Да, попробуйте сделать repro (и написать bug report, если выяснится, что "левых" расширений и т.п. в этом не замешано). А можете \d+ таблицы и запрос (тот UPDATE) показать?

Alex-Yu Автор вопроса
Yaroslav Schekin
Другое дело. Да, попробуйте сделать repro (и напис...

DDL выглядит страшноватым -- Drop table -- DROP TABLE public."document"; CREATE TABLE public."document" ( id uuid NOT NULL DEFAULT gen_random_uuid(), document_type text NOT NULL, document_extension text NOT NULL, document_status text NOT NULL, number_of_pages int2 NULL, creation_date timestamptz NULL, creation_user uuid NOT NULL DEFAULT 'ce2e6c29-3ff3-4fff-a61e-db7a7d80b0c7'::uuid, last_modified_date timestamptz NULL, last_modified_user uuid NULL DEFAULT '00000000-0000-0000-0000-000000000000'::uuid, org_id int2 NULL, document_name text NULL, checksum varchar NULL, is_generated bool NOT NULL DEFAULT false, meta jsonb NOT NULL DEFAULT '{}'::jsonb, file uuid NULL, is_deleted bool NOT NULL DEFAULT false, creation_user_name text NULL, last_modified_user_name text NULL, "sequence" int4 NULL, is_customs_relevant bool NULL, document_flags int8 NOT NULL DEFAULT 0, document_blobs jsonb NOT NULL DEFAULT '{}'::jsonb, document_url text NULL DEFAULT ''::text, CONSTRAINT chk_document_meta CHECK (pp_chk_document_meta(meta)), CONSTRAINT document_pkey PRIMARY KEY (id, document_type), CONSTRAINT fk_doc_creation_user FOREIGN KEY (creation_user) REFERENCES user_pp(id), CONSTRAINT fk_doc_document_status FOREIGN KEY (document_status) REFERENCES document_status(name), CONSTRAINT fk_doc_document_type FOREIGN KEY (document_type) REFERENCES document_type(name), CONSTRAINT fk_doc_extension FOREIGN KEY (document_extension) REFERENCES document_extension(name), CONSTRAINT fk_doc_org FOREIGN KEY (org_id) REFERENCES org_id(org_id) ) PARTITION BY LIST (document_type); CREATE INDEX ix_doc_file ON ONLY public.document USING btree (file) INCLUDE (document_type); CREATE INDEX ix_doc_last_modified_user_idx ON ONLY public.document USING btree (last_modified_user); CREATE INDEX ix_doc_org_id_idx ON ONLY public.document USING btree (org_id); CREATE INDEX ix_doc_status_idx ON ONLY public.document USING btree (document_status); CREATE INDEX ix_doc_type_idx ON ONLY public.document USING btree (document_type); CREATE INDEX ix_document_creation_user ON ONLY public.document USING btree (creation_user); CREATE UNIQUE INDEX ui_doc_checksum_document_type ON ONLY public.document USING btree (document_type, COALESCE(NULLIF((checksum)::text, ''::text), (id)::text)); -- Table Triggers CREATE TRIGGER trg_document_audit_del AFTER DELETE ON public.document REFERENCING OLD TABLE AS deleted FOR EACH STATEMENT EXECUTE PROCEDURE trg_document_audit(); CREATE TRIGGER trg_document_audit_ins AFTER INSERT ON public.document REFERENCING NEW TABLE AS inserted FOR EACH STATEMENT EXECUTE PROCEDURE trg_document_audit(); CREATE TRIGGER trg_document_audit_upd AFTER UPDATE ON public.document REFERENCING NEW TABLE AS inserted FOR EACH STATEMENT EXECUTE PROCEDURE trg_document_audit(); CREATE TABLE public.doc_customs PARTITION OF public.document ( CONSTRAINT chk_doc_customs_document_type CHECK ((document_type = ANY (ARRAY['customs_declaration'::text, 'customs_overview'::text]))) )FOR VALUES IN ('customs_declaration', 'customs_overview'); CREATE TABLE public.doc_dflt PARTITION OF public.document DEFAULT; CREATE TABLE public.doc_src PARTITION OF public.document ( CONSTRAINT chk_doc_src_document_type CHECK ((document_type = 'unknown'::text)) )FOR VALUES IN ('unknown'); UPDATE ломающий инстанс - любой UPDATE, который должен приводить к перемещению записи между партициями E.g UPDATE DOCUMENT SET document_type = 'unknown' WHERE id = 'e2f09363-472c-4c85-a80e-02ac5afe7dc0';

Похожие вопросы

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
А что ты вообще делаешь ?
Yesgoter
13
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
16
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
Подскажите, почему в правом коде с1 дополняется до 8байт, а не до 4?
Sergey
9
Карта сайта