Pull to refresh

Comments 8

Хорошая тенденция наметилась, что стали писать о Postgres.
Есть pg_basebackup для решения падения упавшей реплики в 9.1 (а также для бєкапов используется).
промахнулся при ответе — мой коммент ниже :)
Как я понимаю — это на случай, если оно уже отвалилось? Я, к сожалению, 9.1 еще не тестил.
Это даже подойдет если нужно подключить еще один новый нод :)
Хмм. А подскажите тогда, если не затруднит.

Например у меня случился факап и сдох мастер. Я беру самую новую реплику и делаю её новым мастером. В 9.0 для подключения остальных реплик мне потребуется rsync. Будет ли pg_basebackup в данном случае быстрее?
Насчет быстрее — мне не известно. Но это средство предоставляется как замена PG_backup_start -> rsync -> PG_backup_stop методики.
Мы еще дополнительно мониторим заббиксом replication lag и если что-то идет не так, шлем алерты.

#!/usr/bin/env php
<?php
$dbmaster = new PDO('pgsql:host=localhost;port=5432;dbname=postgres;','screened','screened');
$master = $dbmaster->query('SELECT pg_current_xlog_location()')->fetchColumn();

$dbslave = new PDO('pgsql:host=192.168.1.2;port=5432;dbname=postgres;','screened','screened');
$slave = $dbslave->query('SELECT pg_last_xlog_replay_location()')->fetchColumn();

//echo $master." ".$slave;

if($slave) {
echo ((text_to_lsn($master) - text_to_lsn($slave))/1000)."\n";
} else {
echo "0\n";
}

function text_to_lsn($text) {
list($logid, $xrecoff) = explode('/', $text);
$lsn = hexdec($logid) * 16 * 1024 * 1024 * 255 + hexdec($xrecoff);
return $lsn;
}



как-то так, вроде работает ))
Sign up to leave a comment.

Articles

Change theme settings