LINUX.ORG.RU
ФорумAdmin

Postgresql + стриминг репликация + создание слэйва


0

3

Есть мастер сервер postgresql на котором идет очень много операций обновления данных.

Есть необходимость создания слэйва.

Проблема в том, что если делать это стандартным способом, к тому времени как происходит копирование всех файлов из рабочего каталога на слэйв сервер, из xlogs на мастере уже удаляются нужные для репликации журналы (производится архивирование).

Вопрос - как в данной ситуации создать слэйв сервер?

Как вариант - ставил в скрипт архивации возврат кода 1 и архивация временно останавливалась. Но, думаю, это совершенно корявый метод. К тому-же при этом (не уверен что именно из-за этого, но эффект есть) стали наблюдаться оочень медленные запросы на изменение и добавление данных.

UncleAndy ★★★
() автор топика

Ну поставь время устаревания логов побольше. Или места нет?

YAR ★★★★★
()
Ответ на: комментарий от UncleAndy

Делается методом последовательных приближений, через select pg_start_backup+rsync, пока реплика не согласится стартовать.

vadv ★★
()
Ответ на: комментарий от AnDoR

Да, я тоже думал что pg_start_backup за этим следит. И очень на это надеялся. Но оказалось что это не так (проверил в первую очередь). :(

Время устаревания логов не поможет. Сейчас там в районе 11 тысяч файлов xlog. Проблема именно в скорости их обновления, насколько я понимаю.

В принципе, и тот метод что есть сейчас можно использовать, но очень напрягает большая деградация скорости запросов на обновления. Что самое противное - при этом процы загружены довольно мало (в районе 10% и iowait совсем небольшой). Совершенно непонятно почему такое происходит. Приложение критичное, поэтому такая ситуация не особо устраивает. :(

UncleAndy ★★★
() автор топика
Ответ на: комментарий от vadv

Размер базы 46 Гб. Локалка между репликой и мастером - гигабит. Но рабочие коннекты и связь с репликой идут по одному сетевому интерфейсу, т.е. нагружать его по полной для максимально быстрой перекачки файлового бэкапа нельзя, т.к. из-за этого пострадает приложение.

UncleAndy ★★★
() автор топика
Ответ на: комментарий от AnDoR

Хм. Логично. Второй rsync достаточно быстро должен создать актуальную копию. Надо будет попробовать при случае. Спасибо.

Но не уверен что этот способ является панацеей. Так что другие варианты приветствуются.

UncleAndy ★★★
() автор топика
Ответ на: комментарий от UncleAndy

Но не уверен что этот способ является панацеей

какая еще панацея? этот метод описан в документации, не умеете читать, и нечего нам в уши дуть!

anonymous2 ★★★★★
()
Ответ на: комментарий от anonymous2

pg_start_backup тоже описан в документации и что? Вы пробовали сначала прочитать то что я написал, а потом уже свой «умный» коммент вставлять?

UncleAndy ★★★
() автор топика
Ответ на: комментарий от UncleAndy

архивацию для чего используете? для streaming репликации она не нужна. если второй сервер, все таки, имеет доступ до архива, то его с этой самой архивации поднять можно!

anonymous2 ★★★★★
()
Ответ на: комментарий от vadv

PostgreSQL 9.0.6 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51), 64-bit

vadv ★★
()
Ответ на: комментарий от vadv

Спасибо - похоже на мою ситуацию. Попробую воспользоваться rsync.

UncleAndy ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.