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

Вопрос по логической репликации. Есть таблица на мастере, с полем

id serial primary. Эту же таблицу забекапил на слейва, создал публикацию, подписку. Не работает. Убрал на слейве последовательность для поля id - работает. Если же создаю с нуля таблицу на мастере и слейве с типом serial для поля id - все работает. В чем может быть проблема?

18 ответов

23 просмотра

Показывай ddl.

Особенно со слейва в "неработающем" варианте.

·- Автор вопроса
Ilya Anfimov
Показывай ddl.

-- Table: public.operators -- DROP TABLE IF EXISTS public.operators; CREATE TABLE IF NOT EXISTS public.operators ( id integer NOT NULL DEFAULT nextval('operators_id_seq'::regclass), name character varying COLLATE pg_catalog."default", dt_add timestamp without time zone, dt_edit timestamp without time zone, CONSTRAINT operators_pkey PRIMARY KEY (id) ) TABLESPACE pg_default; ALTER TABLE IF EXISTS public.operators OWNER to postgres; таблицы и там и там аналогичны. Может быть проблема в том, что в поле name кириллица?

·
-- Table: public.operators -- DROP TABLE IF EXIST...

Через \d+ в psql, и никаких "одинаковы" -- выкладывай поочерёдно оба.

·
-- Table: public.operators -- DROP TABLE IF EXIST...

Кирилица не должна зависеть от типа последовательности.

·- Автор вопроса
Ilya Anfimov
Через \d+ в psql, и никаких "одинаковы" -- выклады...

--------------------------СЛЕЙВ------------------------------- Столбец | Тип | Правило сортировки | Допустимость NULL | По умолчанию | Хранилище | Сжатие | Цель для статистики | Описание ---------+-----------------------------+--------------------+-------------------+---------------------------------------+-----------+--------+---------------------+---------- id | integer | | not null | nextval('operators_id_seq'::regclass) | plain | | | name | character varying | | | | extended | | | dt_add | timestamp without time zone | | | | plain | | | dt_edit | timestamp without time zone | | | | plain | | | Индексы: "operators_pkey" PRIMARY KEY, btree (id) Метод доступа: heap --------------------------МАСТЕР------------------------------- Столбец | Тип | Правило сортировки | Допустимость NULL | По умолчанию | Хранилище | Сжатие | Цель для статистики | Описание ---------+-----------------------------+--------------------+-------------------+---------------------------------------+-----------+--------+---------------------+---------- id | integer | | not null | nextval('operators_id_seq'::regclass) | plain | | | name | character varying | | | | extended | | | dt_add | timestamp without time zone | | | | plain | | | dt_edit | timestamp without time zone | | | | plain | | | Индексы: "operators_pkey" PRIMARY KEY, btree (id) Публикации: "ops" Метод доступа: heap

·
--------------------------СЛЕЙВ-------------------...

И при этом конфиге -- неработает логическая репликацыя? Вот очищаешь таблицу, создаёшь подписку -- и что в логах?

·- Автор вопроса
·
Не работает. А логи какие, где смотреть?

Постгреса подчинённого в первую очередь.

·
Не работает. А логи какие, где смотреть?

На ведомом, замечу, sequence и default nextval ни за чем не нужэн, поскольку значения все с ведущего приходят -- но мешать-то не должэн.

·- Автор вопроса
Ilya Anfimov
И при этом конфиге -- неработает логическая реплик...

2022-06-25 18:09:04.436 EEST [13732] ПРЕДУПРЕЖДЕНИЕ: недостаточно слотов для процессов логической репликации 2022-06-25 18:09:04.436 EEST [13732] ПОДСКАЗКА: Возможно, следует увеличить параметр max_logical_replication_workers. Увеличил max_logical_replication_workers, после перезапуска сервера такие логи: 2022-06-25 18:09:07.396 EEST [6136] ?????: ???? ???? "logical replication worker" (PID 13732) ????? ? ??? ???? 1 2022-06-25 18:09:07.396 EEST [6136] ?????: ???? ???? "logical replication worker" (PID 14900) ????? ? ??? ???? 1 2022-06-25 18:09:07.398 EEST [6136] ?????: ???? ???? "logical replication launcher" (PID 7572) ????? ? ??? ???? 1 2022-06-25 18:09:07.400 EEST [6136] ?????: ???? ???? "logical replication worker" (PID 13632) ????? ? ??? ???? 1 2022-06-25 18:09:07.400 EEST [6136] ?????: ???? ???? "logical replication worker" (PID 12732) ????? ? ??? ???? 1 2022-06-25 18:09:07.403 EEST [7532] ?????: ?????? 2022-06-25 18:09:07.465 EEST [6136] ?????: ???? ?? ??????

·
2022-06-25 18:09:04.436 EEST [13732] ПРЕДУПРЕЖДЕНИ...

Ну, поставьте у обоих серверов lc_messages = 'C', а то вы вообще логи не можэте читать.

·- Автор вопроса
·
та одни логи в utf8, Другие 1251

Мда. Не, ну если хотите проблем внезапных -- то можно и так. Но вообще -- все сервера сейчас надо поднимать в utf8. Особенно людям, которые плохо ориентируются в исходниках postgres.

·- Автор вопроса
Ilya Anfimov
Ну, поставьте у обоих серверов lc_messages = 'C', ...

lc_messages = 'Russian_Russia.1251' # locale for system error message # strings lc_monetary = 'Russian_Russia.1251' # locale for monetary formatting lc_numeric = 'Russian_Russia.1251' # locale for number formatting lc_time = 'Russian_Russia.1251' # locale for time formatting Везде ставить "С"?

·
lc_messages = 'Russian_Russia.1251' # locale ...

lc_messages -- обязательно, lc_numeric -- жэлательно, lc_time можэте оставить, если хочется. И да, это не говорит о том, что там кодировка 1251. Собственно, в виндовой сборке часть про кодировку в локали не используется. А используется -- то ли всегда utf8, то ли кодировка базы при ините. Последнюю смотреть по \l. Если она не-utf8 -- пересоздавайте кластер (ну, или хотя бы базу).

·- Автор вопроса
Ilya Anfimov
lc_messages -- обязательно, lc_numeric -- жэлатель...

спасибо большое, смотреть логи оказывается помогает решить многие проблемы, заработала реплика. И такой вопрос. Лучше сделать одну репликацию на грубо говоря 10 таблиц или 10 репликаций по каждой на таблицу?

·
спасибо большое, смотреть логи оказывается помогае...

Не знаю, не сравнивал. (Дажэ мысли не было делать несколько репликацый из одной базы).

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта