powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / две реплики в postgresql 9.3
7 сообщений из 7, страница 1 из 1
две реплики в postgresql 9.3
    #39305564
xopc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день

Есть мастер, БД объем около 50Гб, круглосуточная нагрузка, конфигурация примерно такая:
Код: plaintext
1.
2.
3.
4.
5.
OS RAM 16Gb,
shared_buffers = 2Gb,
temp_buffers = 16Mb
work_mem = 64Mb
maintenance_work_mem = 256Mb
wal_keep_segments = 32

Настроена первая реплика, идентичная по параметрам машина, такой же конфиг PG, в той же сети, обмен 1Гб/с. Все работает как часы.

Пытаюсь поднять вторую реплику, расположенную удаленно. Машина в 4 раза слабее, канал 25Мб/с.
Заливаю данные:
Код: plaintext
 bash-4.2$ ./pg_basebackup -h hostname -U postgres -D ~/9.3/data -X s
За ночь заливаются, wal доезжают через rsync.

Запускаю:
1. Первый раз через час работы postgresql свалился в error с сообщением, что он выбрал всю память.
2. Перезалил базу. Ресурсы postgresql порезал в 4 раза.

Сервер работает, но данные отличаются от мастера. Например кол-во записей в таблицах меньше на несколько штук, в пределах десятка. Или еще прикольнее - делаешь select с условием, например есть поле "статус" у записи. Так вот общее кол-во записей совпадает, а если добавить условие то уже сильное расхождение в кол-ве.

Может кто подсказать куда копать?
Сам думаю, что дело в том, что на реплике отличные от мастера параметры postgresl и соответственно при накате появляются проблемы в индексах или чем-то еще.
...
Рейтинг: 0 / 0
две реплики в postgresql 9.3
    #39305576
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xopcДобрый день

Есть мастер, БД объем около 50Гб, круглосуточная нагрузка, конфигурация примерно такая:
Код: plaintext
1.
2.
3.
4.
5.
OS RAM 16Gb,
shared_buffers = 2Gb,
temp_buffers = 16Mb
work_mem = 64Mb
maintenance_work_mem = 256Mb
wal_keep_segments = 32

Настроена первая реплика, идентичная по параметрам машина, такой же конфиг PG, в той же сети, обмен 1Гб/с. Все работает как часы.

Пытаюсь поднять вторую реплику, расположенную удаленно. Машина в 4 раза слабее, канал 25Мб/с.
Заливаю данные:
Код: plaintext
 bash-4.2$ ./pg_basebackup -h hostname -U postgres -D ~/9.3/data -X s
За ночь заливаются, wal доезжают через rsync.

Запускаю:
1. Первый раз через час работы postgresql свалился в error с сообщением, что он выбрал всю память.
2. Перезалил базу. Ресурсы postgresql порезал в 4 раза.

Сервер работает, но данные отличаются от мастера. Например кол-во записей в таблицах меньше на несколько штук, в пределах десятка. Или еще прикольнее - делаешь select с условием, например есть поле "статус" у записи. Так вот общее кол-во записей совпадает, а если добавить условие то уже сильное расхождение в кол-ве.

Может кто подсказать куда копать?
Сам думаю, что дело в том, что на реплике отличные от мастера параметры postgresl и соответственно при накате появляются проблемы в индексах или чем-то еще.

Я бы предположил разные операционные системы на мастере и на новой реплике (причем серьезно разные типа win vs linux Или Linux vs freebsd).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
две реплики в postgresql 9.3
    #39305586
xopc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на мастере CentOS 6 - 2.6.32-358.14.1.el6.x86_64 GNU/Linux
на реплике CentOS 7 - 3.10.0-229.el7.x86_64 GNU/Linux
...
Рейтинг: 0 / 0
две реплики в postgresql 9.3
    #39305599
xopc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.к. я ставил postgresql93 из того же репозитория, то попробовал поставить пакет из другого репозитория

baseurl=https://download.postgresql.org/pub/repos/yum/srpms/9.3/redhat/rhel-$releasever-$basearch

Странно ставится пакет, не вижу initdb и много еще чего. Так и задумано?))

-rwxr-xr-x. 1 root root 58640 Aug 11 08:47 clusterdb
-rwxr-xr-x. 1 root root 58680 Aug 11 08:47 createdb
-rwxr-xr-x. 1 root root 58528 Aug 11 08:47 createlang
-rwxr-xr-x. 1 root root 59040 Aug 11 08:47 createuser
-rwxr-xr-x. 1 root root 54432 Aug 11 08:47 dropdb
-rwxr-xr-x. 1 root root 58528 Aug 11 08:47 droplang
-rwxr-xr-x. 1 root root 54408 Aug 11 08:47 dropuser
-rwxr-xr-x. 1 root root 63256 Aug 11 08:47 pg_basebackup
-rwxr-xr-x. 1 root root 28800 Aug 11 08:47 pg_config
-rwxr-xr-x. 1 root root 338456 Aug 11 08:47 pg_dump
-rwxr-xr-x. 1 root root 79800 Aug 11 08:47 pg_dumpall
-rwxr-xr-x. 1 root root 29272 Aug 11 08:47 pg_isready
-rwxr-xr-x. 1 root root 46104 Aug 11 08:47 pg_receivexlog
-rwxr-xr-x. 1 root root 142696 Aug 11 08:47 pg_restore
-rwxr-xr-x. 1 root root 20360 Aug 11 08:47 pg_test_fsync
-rwxr-xr-x. 1 root root 457624 Aug 11 08:47 psql
-rwxr-xr-x. 1 root root 58672 Aug 11 08:47 reindexdb
-rwxr-xr-x. 1 root root 58768 Aug 11 08:47 vacuumdb

На сколько плохая идея реплицировать на postgresql 9.2? Он стоит штатно в системе.
...
Рейтинг: 0 / 0
две реплики в postgresql 9.3
    #39305607
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xopc,

на 9.2 не получится реплицировать, мажорная версия мастера и реплики должна совпадать.

в логах какие-то интересные сообщения есть? лаг репликации проверяли, может реплика просто отстает?

Код: sql
1.
select now() - pg_last_xact_replay_timestamp();
...
Рейтинг: 0 / 0
две реплики в postgresql 9.3
    #39305615
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xopcСервер работает, но данные отличаются от мастера. Например кол-во записей в таблицах меньше на несколько штук, в пределах десятка. Или еще прикольнее - делаешь select с условием, например есть поле "статус" у записи. Так вот общее кол-во записей совпадает, а если добавить условие то уже сильное расхождение в кол-ве.

Может кто подсказать куда копать?
Сам думаю, что дело в том, что на реплике отличные от мастера параметры postgresl и соответственно при накате появляются проблемы в индексах или чем-то еще.

А репликация то работает?
А то может вы получили просто standalone копию базы на новом сервере?

что говорит на реплике новой
Код: plsql
1.
2.
3.
select pg_is_in_recovery();
и
select now()-pg_last_xact_replay_timestamp();


?

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
две реплики в postgresql 9.3
    #39308094
xopc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, всем, кто давал советы.

Проблема была в криво вставших пакетах postgresql93-server и postgresl93-libs. Пакеты система видела как установленные, но например части библиотек не было.

Странно, сервер вроде бы работал, но накатывал wal частично и глючно.
Вылечилось переустановкой пакетов и перезаливкой базы с мастера.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / две реплики в postgresql 9.3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]