|
|
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
Коллеги. Настроил потоковую репликацию. Перестала правильно работать. Происходит потеря записей в таблице. В первом случае починить удалось. Один из файлов был нулевым. Скопировал с боевой - заработало. И вот сейчас опять сломалась. Логи доставляются. Как бы видимых ошибок нет. А за 16 число, то что удалось определить это нет двух записей. Конфликтов нет по ключу. Может настройки параметров не верны? Носитель не битый. Файлы во вложении. Мастер — 32 ядра 64 Г памяти Слейв — 24 ядра 32 Г памяти. ОС debian. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 15:25:16 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanet, какая у вас версия PostgreSQL? помню недавно исправляли баг который имел схожые симптомы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 16:52:58 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
"PostgreSQL 9.3.2 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.7.2-5) 4.7.2, 64-bit" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 18:26:43 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanetСкопировал с боевой - заработало. что значит "скопировал" ? Вы взяли файлик из каталога БД первого сервера и скопировали его в каталог БД второго сервера? Уточните этот момент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 08:18:02 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanetПерестала правильно работать. А как должна правильно работать? Как вы проверяете эту самую "правильность"? laanetПроисходит потеря записей в таблице. а строки случаем через некоторое время не появляются? может это просто лаг репликации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 08:21:26 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
Доброе утро. На мастере делаем pg_start_backup. На слейве БД останавливаем. Копируем файлы с мастера на слейв. Потом на мастере pg_stop_backup. Стартуем слейв. Логи донакатываются с мастера на слейв. А записи не появляются. Более поздние данные доходят. К примеру делаю create database на мастере. Она появляется и на слейве. А также данные в таблицах появляются. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 09:36:43 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
да с копирование все ок))) попробуйте периодически попроверять лаг запросом "select now() - pg_last_xact_replay_timestamp()" выполняя его на слейве, он будет показывать отставание слейва от мастера в секундах (значение не должно быть отрицательным))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 09:47:20 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanet, расскажите как именно Вы копируете файлы с мастера на слейв, какой командой? Почему Вы не используете pg_basebackup? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 11:02:51 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
Горячее физическое резервное копирование. БД получается один в один. Копирую по SCP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:50:07 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
select now() - pg_last_xact_replay_timestamp(). Так и есть. Значение меняется. И имеет вид "00:00:07.053331" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:54:50 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanetselect now() - pg_last_xact_replay_timestamp(). Так и есть. Значение меняется. И имеет вид "00:00:07.053331" ну вот это означает что текущее состояние мастера будет достигнуто слейвом через 7 секунд. Здесь вам нужно решить насколько приемлем для вас текущий лаг. Например лаг в 1-2 секунды может быть вполне приемлем, а может и нет. Увеличение лага говорит о проблемах (увеличение нагрузки на сеть, диски, cpu, etc) и в общем случае это плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:59:19 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
Да. 7 сек это приемлемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:28:16 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanetГорячее физическое резервное копирование. БД получается один в один. Копирую по SCP.Расскажите пожалуйста как именно Вы копируете файлы с мастера на слейв, какой командой? Например: rsync [дальше что тут написано у Вас?] И почему Вы не используете pg_basebackup? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:48:32 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
ЁшИ почему Вы не используете pg_basebackup? почему вы так настойчиво его рекомендуете? в обоих случаях получится один и тот же результат - stand-by. согласен, что pg_basebackup конечно же хорош (требует включенного max_wal_senders и правил в pg_hba, в отличие от rsync:)), но вот например у rsync например есть встроенная возможность регулировать поток (--bwlimit). регулировку конечно можно прикрутить и к pg_basebackup через trottle или pv, но это уже "не то" ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:59:33 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
daevy, ну потому что есть люди которые делают например так: scp data/base/16387/* slave:data/base/16387/ и думают что получили консистентную копию, а pg_basebackup скопирует всё сам и как нужно, просто чтоб уменьшить вероятность ошибки и советую pg_basebackup. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 17:05:09 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanet, авторПотом на мастере pg_stop_backup. Стартуем слейв. Логи донакатываются с мастера на слейв. а тут можно подробнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 17:42:19 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
еще вопрос. как давно вы на 932 ? апгрейдились ли на эту версию, елси да, то с какой версии и как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 18:27:33 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
ну и !!! план запроса, где "пропадают" туплы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 19:10:00 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
В октябре перешли. с 9.2.4 EXPLAIN select * from transactions tx inner join deal_contractor dc on(tx.deal_id = dc.deal_id) inner join payer pa on(tx.payer_id = pa.id) left join collations co on(co.tx_id = tx.id) where status = 'success' and dc.contractor_id = 32 and --co.synced_at_bank is not null and merchant_additional::json->>'auth_code' = '536408' and pa.card_masked = trim(trailing overlay('402727......8015' placing '******' from 7 for 6)) QUERY PLAN Nested Loop Left Join (cost=9.61..78.53 rows=1 width=803) -> Nested Loop (cost=9.18..70.12 rows=1 width=781) -> Nested Loop (cost=0.56..57.47 rows=1 width=705) -> Index Scan using payer_card_masked_idx on payer pa (cost=0.00..8.02 rows=1 width=102) Index Cond: ((card_masked)::text = '402727******8015'::text) -> Index Scan using tx_payer_id_status_idx on transactions tx (cost=0.56..49.45 rows=1 width=603) Index Cond: ((payer_id = pa.id) AND ((status)::text = 'success'::text)) Filter: (((merchant_additional)::json ->> 'auth_code'::text) = '536408'::text) -> Bitmap Heap Scan on deal_contractor dc (cost=8.62..12.63 rows=1 width=76) Recheck Cond: ((deal_id = tx.deal_id) AND (contractor_id = 32)) -> BitmapAnd (cost=8.62..8.62 rows=1 width=0) -> Bitmap Index Scan on deal_contractor_deal_id (cost=0.00..4.03 rows=5 width=0) Index Cond: (deal_id = tx.deal_id) -> Bitmap Index Scan on deal_contractor_contractor_id (cost=0.00..4.33 rows=7 width=0) Index Cond: (contractor_id = 32) -> Index Scan using collations_pkey on collations co (cost=0.43..8.40 rows=1 width=22) Index Cond: (tx_id = tx.id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 10:18:07 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
laanet, попробуйте отловить таблицу, где запись "пропадает". далее, попробуйте эти записи получать индексканом и сексканом. далее, если проблема при индексе - делайте реиндекс. если проблема не в индексе, или если реиндекс не помог, - делайте вакуум таблицы VACUUM с vacuum_freeze_table_age = 0. и ваще нужно всей базе VACUUM с vacuum_freeze_table_age = 0. http://www.postgresql.org/docs/9.2/static/release-9-2-6.html авторE.1.2. Changes Fix VACUUM's tests to see whether it can update relfrozenxid (Andres Freund) и зря вы перешли на 932 (2 - рано еще), надо было на 926 -- всё,что проделали, потом можете написать в хакерс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 15:26:43 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
А вот вопрос к Мише Турину тогда. Я начинаю новый проект, и думал сразу делать на 9.3.2. Пока заработает пройдет как минимум полгода. Стоит ли все же изначально делать на 9.2.6, а уж потом думать о миграции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 21:45:22 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
Sergei.Agalakov, 933. Только что вышли новые релизы. Пока выйдете на нагрузку - допатчат уже и 94 скорее всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 22:27:12 |
|
||
|
Потоковая репликация
|
|||
|---|---|---|---|
|
#18+
Спасибо. Буду тогда продолжать с 9.3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 00:45:52 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38565443&tid=1998797]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
197ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 496ms |

| 0 / 0 |
