Size: a a a

pgsql – PostgreSQL

2021 February 08

R

Riclud in pgsql – PostgreSQL
источник

R

Riclud in pgsql – PostgreSQL
Похоже происходит какое-то замыкание связей
источник

b

blkmrkt in pgsql – PostgreSQL
Небольшая табличка из логической репликации все еще не завершила initial COPY. постгрес спамит в логах что чекпоинты случаются слишком часто и советует повысить max_wal_size который и так 1G. completion target = 0.9, wal timeout = 15min. В чем может быть дело? Я остановил почти всю запись на мастере которая касается этой репликации, поэтому логов должно быть минимум. Тем не менее пару раз в минуту получаю сообщение о том что чекпоинты случаются слишком часто!
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Riclud
Что за баги, связь таблиц есть, при вставке говорит что нету ?
Ничего он такого не "говорит" — прочитайте сообщение внимательно.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
blkmrkt
Небольшая табличка из логической репликации все еще не завершила initial COPY. постгрес спамит в логах что чекпоинты случаются слишком часто и советует повысить max_wal_size который и так 1G. completion target = 0.9, wal timeout = 15min. В чем может быть дело? Я остановил почти всю запись на мастере которая касается этой репликации, поэтому логов должно быть минимум. Тем не менее пару раз в минуту получаю сообщение о том что чекпоинты случаются слишком часто!
> постгрес спамит в логах что чекпоинты случаются слишком часто

В логах базы-источника?

> советует повысить max_wal_size который и так 1G.

Это совсем немного. ;)

> поэтому логов должно быть минимум.

Тем не менее, что-то пишет — можете проверить статистику (хоть pg_stat_database / pg_stat_all_tables), а можете просто "посмотреть" какие-то сегменты WAL с помощью pg_waldump на предмет того, что же (куда же) пишется.
источник

b

blkmrkt in pgsql – PostgreSQL
>В логах базы-источника?
Не, в логах сервера которай принимает логическую репликацию.

>Тем не менее, что-то пишет — можете проверить статистику (хоть pg_stat_database / pg_stat_all_tables), а можете просто "посмотреть" какие-то сегменты WAL с помощью pg_waldump на предмет того, что же (куда же) пишется.

Благодарю, посмотрю!
источник

b

blkmrkt in pgsql – PostgreSQL
blkmrkt
>В логах базы-источника?
Не, в логах сервера которай принимает логическую репликацию.

>Тем не менее, что-то пишет — можете проверить статистику (хоть pg_stat_database / pg_stat_all_tables), а можете просто "посмотреть" какие-то сегменты WAL с помощью pg_waldump на предмет того, что же (куда же) пишется.

Благодарю, посмотрю!
странно, сами волы почему-то размером 16МБ а не 1ГБ
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
они по-умолчанию такие
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
blkmrkt
странно, сами волы почему-то размером 16МБ а не 1ГБ
Да, конечно — это же размер сегмента по умолчанию.

> Не, в логах сервера которай принимает логическую репликацию.

Тогда что Вас удивляет вообще? Может быть, это попадает в WAL тот самый initial COPY?
Что такое "небольшая"? 10 или 100 гигабайт?
источник

SK

Sergey Kletsov in pgsql – PostgreSQL
можете подсказать как исправить ошибку < 2021-02-08 08:38:37.026 MSK >FATAL:  the database system is starting up
База один инстанс
источник

b

blkmrkt in pgsql – PostgreSQL
Yaroslav Schekin
Да, конечно — это же размер сегмента по умолчанию.

> Не, в логах сервера которай принимает логическую репликацию.

Тогда что Вас удивляет вообще? Может быть, это попадает в WAL тот самый initial COPY?
Что такое "небольшая"? 10 или 100 гигабайт?
Добавил табличку 80 GB в логическую публикацию и рефрешнул ее на подписчике, но она копируется со скоростью 100КБ/сек уже третьи сутки, такую скорость iotop показывает. Причем на мастере куча OLTP процессов которые используют гораздо больше IO, а walsender для COPY этой таблицы съедает лишь долю процента.

Таблица на практически полностью ридонли, но на всякий случай чтоб промыть грязные буферы я сделал select count(col) на мастере, и квери завершилась очень быстро.
источник

b

blkmrkt in pgsql – PostgreSQL
Sergey Kletsov
можете подсказать как исправить ошибку < 2021-02-08 08:38:37.026 MSK >FATAL:  the database system is starting up
База один инстанс
Только ждать и надеяться что запутсится
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Sergey Kletsov
можете подсказать как исправить ошибку < 2021-02-08 08:38:37.026 MSK >FATAL:  the database system is starting up
База один инстанс
Казалось бы, сервер запускается — ждите. Или можете его логи посмотреть.
источник

SK

Sergey Kletsov in pgsql – PostgreSQL
уже час
источник

SK

Sergey Kletsov in pgsql – PostgreSQL
в логах кроме ошибки выше пусто
источник

b

blkmrkt in pgsql – PostgreSQL
Sergey Kletsov
уже час
Это нормально! В следующий раз когда останавливаете сервер, делайте это в режиме smart и закрывайте долгоживущие коннекты вручную через заранее открытую сессию.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Sergey Kletsov
в логах кроме ошибки выше пусто
Этого просто не может быть. Там должна быть информация о начале запуска (возможно, это ротация логов Вам "удружила"?).
источник

SK

Sergey Kletsov in pgsql – PostgreSQL
blkmrkt
Это нормально! В следующий раз когда останавливаете сервер, делайте это в режиме smart и закрывайте долгоживущие коннекты вручную через заранее открытую сессию.
Она по факту пытается восстановить базу ? Поврежденные файлы
источник

b

blkmrkt in pgsql – PostgreSQL
Sergey Kletsov
Она по факту пытается восстановить базу ? Поврежденные файлы
Не, просто постгрес и большинство реляционных бд так устроены что пишут сначала WAL файлы и регулярно делают чекпоинты, записывая эти WAL поверх реальных блоков данных на диске. Если жестко убить постмастер с долгоживущими трансакциями, то проигрывание всех WAL с момента последнего чекпоинта может занять много часов.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
blkmrkt
Добавил табличку 80 GB в логическую публикацию и рефрешнул ее на подписчике, но она копируется со скоростью 100КБ/сек уже третьи сутки, такую скорость iotop показывает. Причем на мастере куча OLTP процессов которые используют гораздо больше IO, а walsender для COPY этой таблицы съедает лишь долю процента.

Таблица на практически полностью ридонли, но на всякий случай чтоб промыть грязные буферы я сделал select count(col) на мастере, и квери завершилась очень быстро.
А полные версии PostgreSQL там и там какие?

> такую скорость iotop показывает.

Да что он вообще может знать о процессах postgres?! ;)
И я серьёзно, между прочим — запись в WAL такой процесс будет стараться откладывать — "за него" её почти наверняка будет выполнять что-то другое (тот backend, который делает свой commit); а запись в базу — checkpointer (на который Вы и видите жалобы в логах).
источник