powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Время задержки при репликации
7 сообщений из 7, страница 1 из 1
Время задержки при репликации
    #38873053
Alf162
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Хочется посмотреть, насколько отстает запись в slave-таблицу от записи в master-таблицу при потоковой репликации в PostgreSQL 9.3. Для этого сделал таблицу test_time из 2 полей: id(integer), t(text). Добавил триггер:

my_time:=to_char(current_timestamp, 'HH12:MI:SS:MS:US');
update test_time set t=my_time where id=new.id;

И поставил этот триггер на after update. В итоге и на мастере, и на слейве время совпадает.
Подскажите, пожалуйста, где может быть ошибка или как сделать по-другому?
...
Рейтинг: 0 / 0
Время задержки при репликации
    #38873064
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alf162Добрый день!
Хочется посмотреть, насколько отстает запись в slave-таблицу от записи в master-таблицу при потоковой репликации в PostgreSQL 9.3. Для этого сделал таблицу test_time из 2 полей: id(integer), t(text). Добавил триггер:

my_time:=to_char(current_timestamp, 'HH12:MI:SS:MS:US');
update test_time set t=my_time where id=new.id;

И поставил этот триггер на after update. В итоге и на мастере, и на слейве время совпадает.
Подскажите, пожалуйста, где может быть ошибка или как сделать по-другому?ошибка в днк.

никакие триггера на слейве при потоковой репликации не работают.
//а вот при триггерной -- сколько угодно.

для реализации вашей задачи надо всё время читать чем-то внешним таблицы слейва, например
...
Рейтинг: 0 / 0
Время задержки при репликации
    #38873083
Alf162
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
лопатаAlf162Добрый день!
Хочется посмотреть, насколько отстает запись в slave-таблицу от записи в master-таблицу при потоковой репликации в PostgreSQL 9.3. Для этого сделал таблицу test_time из 2 полей: id(integer), t(text). Добавил триггер:

my_time:=to_char(current_timestamp, 'HH12:MI:SS:MS:US');
update test_time set t=my_time where id=new.id;

И поставил этот триггер на after update. В итоге и на мастере, и на слейве время совпадает.
Подскажите, пожалуйста, где может быть ошибка или как сделать по-другому?ошибка в днк.

никакие триггера на слейве при потоковой репликации не работают.
//а вот при триггерной -- сколько угодно.

для реализации вашей задачи надо всё время читать чем-то внешним таблицы слейва, например
Понятно. А штатными средствами типа pg_stat_replication и можно нельзя решить подобную задачу?
...
Рейтинг: 0 / 0
Время задержки при репликации
    #38873152
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alf162,
Код: sql
1.
select pg_last_xact_replay_timestamp();
...
Рейтинг: 0 / 0
Время задержки при репликации
    #38873178
daevy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alf162Понятно. А штатными средствами типа pg_stat_replication и можно нельзя решить подобную задачу?
Код: sql
1.
2.
slave $> select now() - pg_last_xact_replay_timestamp() as lat_time;
master $> select pg_xlog_location_diff(sent_location,replay_location) as lag_bytes from pg_stat_replication;
...
Рейтинг: 0 / 0
Время задержки при репликации
    #38873349
Alf162
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гость_0Alf162,
Код: sql
1.
select pg_last_xact_replay_timestamp();


Спасибо, помогло. Вычисляя разницу между тем, что записал триггер в базу и значением pg_last_xact_replay_timestamp() как раз и получаю искомое время задержки.
...
Рейтинг: 0 / 0
Время задержки при репликации
    #38873366
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alf162Гость_0Alf162,
Код: sql
1.
select pg_last_xact_replay_timestamp();


Спасибо, помогло. Вычисляя разницу между тем, что записал триггер в базу и значением pg_last_xact_replay_timestamp() как раз и получаю искомое время задержки.

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


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