[Sysadmins] replication on postgresql 9.1

Дмитрий ddv на bgc.perm.ru
Чт Июл 5 19:36:22 MSK 2012


02.07.2012 13:20, Anton Gorlov пишет:
> 02.07.2012 11:18, Sergey Alembekov пишет:
>> 02.07.2012 11:11, Anton Gorlov пишет:
>>> Возможно ли реплицировать не все базы,а лишь часть баз? речь идёт про
>>> нативную реплику, без использования slony
>> нет
> гм...печально. Тогда такой вопрос - можно ли в рамках 1 сервера 
> запустить 2 инстанции БД? типа некий аналог mysql_multi тут существует 
> или нет?
у вас должно быть что-то вроде
/etc/sysconfig/pgsql/postgres (не помню где точно)
в нём
PGDATA=/var/lib/pgsql/postgres_data/
PGLOG=/var/lib/pgsql/postgres_log/
PGPORT=5432

делаете ещё один
cp /etc/sysconfig/pgsql/postgres /etc/sysconfig/pgsql/postgres1
с содержимым
PGDATA=/var/lib/pgsql/postgres1_data/
PGLOG=/var/lib/pgsql/postgres1_log/
PGPORT=5433

делаете симлинк
ln -s /etc/init.d/postgres /etc/init.d/postgres1

генерите базу для обоих
service postgres initdb
service postgres1 initdb

запускаем
service postgres start
service postgres1 start

главное чтоб init скрипте было
. /etc/sysconfig/pgsql/${NAME}
чтоб переменные брались от туда, а $NAME из basename бралось

в альте вроде не из basename берётся, поэтому симлинк не покатит, 
сделайте CP и отредактируйте.

на счёт репликации.. часть нельзя, т.к. передаются wal'ы в них записаны 
изменения в страницах, в которых может быть что угодно.. папка data на 
мастере и слэйве идентичны из байта в байт при условии что слэйв уже 
успел накатить все из менения на мастере.. по этой же причне нельзя на 
слейве создать другую базу.


Подробная информация о списке рассылки Sysadmins