Обсуждение: Re: [pgsql-ru-general] Потоковая репликация

Поиск
Список
Период
Сортировка

Re: [pgsql-ru-general] Потоковая репликация

От
Sergey Konoplev
Дата:
Привет,

2013/7/31 Dmitry E. Oboukhov <unera@debian.org>:
> 1. после остановки реплики по какой-то причине если она простояла
> дольше определенного времени то уже запустить ее можно будет только
> сделав rsync файлов на нее.
>
> на эту тему есть ручка wal_keep_segments на мастере. но она в размере
> файлов.
>
> как можно оценить сколько нужно поставить например чтобы реплику можно
> было на час остановить?

Cмотрим время самого старого wal файла

ls -lt pg_xlog | head

самого нового

ls -lt pg_xlog | tail

их общее количество (-1)

ls -l | wc -l

и делим это количество на интервал времени, получаем сколько wal
файлов генериться в час. Конечно же это примерно, тут надо ещё
учитывать динамику, т.к., например, днём запись может быть больше чем
ночью.

> 2. хочу сменить мастера "онлайн". (то есть реплику сделать мастером с
> минимальным простоем)
> поэтому хочу сперва немного переписать клиента чтобы он спрашивал у
> реплики не стала ли она мастером и если да использовал бы ее.
>
> вопрос: можно ли каким-то запросом выяснить: то куда приконнектились -
> мастер или реплика?

Обычно заводятся IP или DNS aliases, которые фиксируются за
логическими мастером/репликой, т.о. приложению не надо проверять к
кому оно коннектиться. Это идеальный вариант.

Но, если  очень надо в приложении определять, то

select pg_is_in_recovery();

true значит реплика.

> 3. вычитал что можно включить архивирование xlog'ов и вроде как
> реплика при долгом простое может из архива xlog'и вытаскивать, но не
> понял как это настроить.
> может кто пояснить?

Это делается с помощью т.н. continuous archiving
(http://www.postgresql.org/docs/9.2/static/continuous-archiving.html),
также советую почитать про pg_receivexlog
(http://www.postgresql.org/docs/9.2/static/app-pgreceivexlog.html),
как альтернативу archive_command (см. continuous archiving).

-- 
Kind regards,
Sergey Konoplev
PostgreSQL Consultant and DBA

Profile: http://www.linkedin.com/in/grayhemp
Phone: USA +1 (415) 867-9984, Russia +7 (901) 903-0499, +7 (988) 888-1979
Skype: gray-hemp
Jabber: gray.ru@gmail.com

Re: Потоковая репликация

От
"Dmitry E. Oboukhov"
Дата:
> и делим это количество на интервал времени, получаем сколько wal
> файлов генериться в час. Конечно же это примерно, тут надо ещё
> учитывать динамику, т.к., например, днём запись может быть больше чем
> ночью.

да этот способ я сам понимал что есть. я просто думал может быть
существуют какие-то счетчики внутри постгриса, которые можно запросить
из каких-то служебных таблиц/вызывая какую-то функцию :)


> Но, если  очень надо в приложении определять, то

> select pg_is_in_recovery();

> true значит реплика.

спасибо. именно это и было нужно


а еще вопрос:

вот имеется проект. 100 табличек, 50G данных.
можно ли как-то _одну_ табличку реплицировать на другой хост?


--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Вложения

Re: [pgsql-ru-general] Потоковая репликация

От
Sergey Konoplev
Дата:
2013/8/4 Dmitry E. Oboukhov <unera@debian.org>:
> а еще вопрос:
>
> вот имеется проект. 100 табличек, 50G данных.
> можно ли как-то _одну_ табличку реплицировать на другой хост?

Streaming replication такое не может, пока, в будущих версиях будет.
Из возможных в данный момент решений рекомендую slony или londiste.
Второе проще в использовании, но содержит немного меньше возможностей.

-- 
Kind regards,
Sergey Konoplev
PostgreSQL Consultant and DBA

Profile: http://www.linkedin.com/in/grayhemp
Phone: USA +1 (415) 867-9984, Russia +7 (901) 903-0499, +7 (988) 888-1979
Skype: gray-hemp
Jabber: gray.ru@gmail.com