<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Replikace</id>
	<title>Replikace - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Replikace"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Replikace&amp;action=history"/>
	<updated>2026-06-22T01:33:06Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=Replikace&amp;diff=508&amp;oldid=prev</id>
		<title>imported&gt;Roman v 3. 1. 2018, 20:49</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Replikace&amp;diff=508&amp;oldid=prev"/>
		<updated>2018-01-03T20:49:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Vestavěná (a)synchronní replikace - postup pro 9.1 a vyšší==&lt;br /&gt;
&lt;br /&gt;
Zde popsaný postup platí pro streaming replikaci. Streaming replikace vylepšuje Warm Standby a Hot Standby replikaci, tak že mezi master a standby databází otevře síťové spojení po kterém se předávají záznamy Write-Ahead Logů (WAL) z masteru na standby ihned poté, co jsou na master DB zpracovány. Na DB serveru v operačním systému jsou vidět běžící procesy walsender resp. walreceiver.&lt;br /&gt;
&lt;br /&gt;
Warm Standby a Hot Standby replikace taky využívá WAL logy pro synchronizaci dat, ale v tomto případě je potřeba logy doručit z master na slave (např. přes scp). Tato konfigurace zde není popsána.&lt;br /&gt;
&lt;br /&gt;
Master běží na 10.0.0.1, replika na 10.0.0.4 &lt;br /&gt;
&lt;br /&gt;
Pozn: &amp;#039;&amp;#039;Slave serverů může být několik - slave (replika) je read-only, master pouze jeden. Podmínkou je stejná verze PostgreSQL na replikovaném serveru a na replikách. Replikují se veškeré změny v databázi. Repliky mohou mít vlastní konfiguraci - podmínkou je soubor recovery.conf.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Příprava serveru, který poběží jako &amp;#039;&amp;#039;&amp;#039;master&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
* vytvoření účtu pod kterým poběží replikace (pro 9.0 je nutné použít účet &amp;#039;&amp;#039;postgres&amp;#039;&amp;#039;)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
postgres=# CREATE ROLE replikator LOGIN REPLICATION;&lt;br /&gt;
CREATE ROLE&lt;br /&gt;
postgres=# ALTER USER replikator PASSWORD &amp;#039;heslo&amp;#039;;&lt;br /&gt;
ALTER ROLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* úpravy konfigurace &amp;#039;&amp;#039;postgresql.conf&amp;#039;&amp;#039; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen_addresses = &amp;#039;*&amp;#039;		# what IP address(es) to listen on;&lt;br /&gt;
wal_level = hot_standby			# minimal, archive, or hot_standby&lt;br /&gt;
archive_mode = on		# allows archiving to be done&lt;br /&gt;
archive_command = &amp;#039;/bin/true&amp;#039;		# command to use to archive a logfile segment&lt;br /&gt;
max_wal_senders = 1		# max number of walsender processes&lt;br /&gt;
wal_keep_segments = 64		# in logfile segments, 16MB each; 0 disables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* zpřístupnění masteru z repliky - zásah do &amp;#039;&amp;#039;pg_hba.conf&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host     replication     replikator              10.0.0.4/32             md5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* (nepovinné) aktivace synchronní replikace v &amp;#039;&amp;#039;postgresql.conf&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synchronous_standby_names = &amp;#039;*&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Příprava serveru, který poběží jako &amp;#039;&amp;#039;&amp;#039;slave&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
* z repliky se přihlásit jako uživatel postgres a vymazat adresář ve kterém bude umístěn cluster repliky&lt;br /&gt;
* z repliky pomocí pg_basebackup provést online zálohu masteru - (na 9.0 ručně)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[postgres@nemesis data]$ pg_basebackup -D /usr/local/pgsql/data/ -U replikator -h 10.0.0.1&lt;br /&gt;
Password: &lt;br /&gt;
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* v postgresql.conf povolit &amp;#039;&amp;#039;hot standby&amp;#039;&amp;#039; režim&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hot_standby = on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* v případě, že na replice budete volat pomalé dotazy, nastavte aktivní &amp;#039;&amp;#039;hot_standby_feedback&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hot_standby_feedback = on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* do clusteru repliky nakopírovat soubor &amp;#039;&amp;#039;recovery.conf&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
standby_mode=&amp;#039;on&amp;#039;&lt;br /&gt;
primary_conninfo=&amp;#039;host=10.0.0.1 user=replikator password=heslo&amp;#039;&lt;br /&gt;
trigger_file=&amp;#039;/usr/local/pgsql/data/failover&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* vymazat &amp;#039;&amp;#039;serverlog&amp;#039;&amp;#039; z clusteru repliky&lt;br /&gt;
* nastartovat repliku&lt;br /&gt;
* log by měl obsahovat zhruba:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LOG:  database system was interrupted; last known up at 2011-09-04 17:59:03 CEST&lt;br /&gt;
LOG:  creating missing WAL directory &amp;quot;pg_xlog/archive_status&amp;quot;&lt;br /&gt;
LOG:  entering standby mode&lt;br /&gt;
LOG:  streaming replication successfully connected to primary&lt;br /&gt;
LOG:  redo starts at 0/23000020&lt;br /&gt;
LOG:  consistent recovery state reached at 0/24000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pozn: Pokud je takto nakonfigurován server, tak velice snadno - s použitím &amp;#039;&amp;#039;&amp;#039;pg_basebackup&amp;#039;&amp;#039;&amp;#039; můžeme provádět online full backup.V tom případě je nutné zvýšit &amp;#039;&amp;#039;max_wal_senders&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Monitoring běžící replikace===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Master server&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Výpis procesů OS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@testdb1 data]# ps -ef |grep sender&lt;br /&gt;
postgres  1818  1687  0 13:53 ?        00:00:00 postgres: wal sender process replikator 10.0.0.4(35948) streaming 0/130009A0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DB dotaz&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
postgres=# SELECT pg_current_xlog_location() ;&lt;br /&gt;
 pg_current_xlog_location &lt;br /&gt;
--------------------------&lt;br /&gt;
 0/13000A38&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Standby server&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Výpis procesů OS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@testdb2 data]# ps -ef |grep receiver&lt;br /&gt;
postgres  2837  2831  0 13:53 ?        00:00:02 postgres: wal receiver process   streaming 0/130009A0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DB dotaz&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
postgres=# select pg_last_xlog_receive_location() ;&lt;br /&gt;
 pg_last_xlog_receive_location &lt;br /&gt;
-------------------------------&lt;br /&gt;
 0/13000A38&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
postgres=# select pg_last_xlog_replay_location() ;&lt;br /&gt;
 pg_last_xlog_replay_location &lt;br /&gt;
------------------------------&lt;br /&gt;
 0/13000A38&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
postgres=# SELECT pg_is_in_recovery();&lt;br /&gt;
 pg_is_in_recovery &lt;br /&gt;
-------------------&lt;br /&gt;
 t&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Failover ===&lt;br /&gt;
V případě, že v souboru recovery.conf použijeme parametr trigger_file (v našem případě trigger_file=&amp;#039;/usr/local/pgsql/data/failover&amp;#039;) stačí vytvořit prázdný soubor na který tento &lt;br /&gt;
parametr ukazuje a DB provede recovery automaticky.&lt;br /&gt;
&lt;br /&gt;
* Provedení failoveru pomocí trigger file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@testdb2 ~]# su - posgres -c &amp;quot;touch /usr/local/pgsql/data/failover&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Výpis logu:&lt;br /&gt;
LOG:  trigger file found: /usr/local/pgsql/data/failover&lt;br /&gt;
FATAL:  terminating walreceiver process due to administrator command&lt;br /&gt;
LOG:  record with zero length at 0/13000C00&lt;br /&gt;
LOG:  redo done at 0/13000BA0&lt;br /&gt;
LOG:  selected new timeline ID: 2&lt;br /&gt;
LOG:  archive recovery complete&lt;br /&gt;
LOG:  database system is ready to accept connections&lt;br /&gt;
LOG:  autovacuum launcher started&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Další možností je použít příkaz &amp;#039;&amp;#039;&amp;#039;pg_ctl promote&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obnovení replikace po proceduře failover znamená vytvoření nové kopie standby DB a nastavení nové replikace jak je popsáno výše.&lt;br /&gt;
&lt;br /&gt;
V &amp;#039;&amp;#039;pg_bench&amp;#039;&amp;#039; tj. při maximálním vytížení (výchozí konfigurace a IO s zablokovanou write cache (obyčejný disk v notebooku)) je režie asynchronní replikace cca 6-10%, a režie synchronní replikace cca 40% - v běžném provozu bych očekával režii znatelně nižší - pravděpodobně budete mít na svém serveru jištěné IO s aktivní write cache.&lt;br /&gt;
&lt;br /&gt;
V případě, že potřebujeme automatické HA řešení existují různé projekty, které používají výše popsaný princip streaming replikace.&lt;br /&gt;
&lt;br /&gt;
Pro Pacemaker + Corosync existuje projekt [https://github.com/ClusterLabs/PAF PAF]. Je to v perlu napsaný OCF resource agent pomocí kterého je Pacemaker schopný rozpoznat stav jednotlivých PostgreSQL instancí na každém nodu: master, slave, stopped, catching up, apod. V případě, že na masteru nastane chyba, která je neopravitelná PAF provede promote vybrané standby DB jako nový master. PAF vyžaduje verzi PostgreSQL 9.3 a vyšší&lt;br /&gt;
&lt;br /&gt;
Další projekt, který umožnuje postavení HA řešení je [https://repmgr.org/ repmgr]. Popis konfigurace viz níže, nebo v aktuálním [https://postgres.cz/files/tahak_postgresql-10.pdf taháku]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Replikace a HA založená na &amp;#039;&amp;#039;repmgr&amp;#039;&amp;#039; (nutno zrevidovat)==&lt;br /&gt;
Fakticky se jedná o nadstavbu nad vestavěnou podporou replikací v PostgreSQL 9.0 a vyšší. Tu rozšiřuje o podporu &amp;#039;&amp;#039;fail-over&amp;#039;&amp;#039;. Pracnost spojená s tímto systémem je větší než vestavěná replikace v 9.1 - naopak tento systém je možné použít i s PostgreSQL 9.1.&lt;br /&gt;
&lt;br /&gt;
Master je na 10.0.0.1, slave je na 10.0.0.4.&lt;br /&gt;
&lt;br /&gt;
Předpoklady: běžící &amp;#039;&amp;#039;sshd&amp;#039;&amp;#039;, možnost kopírování pomocí &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; mezi jednotlivými uzlu prostřednictvím učtu &amp;#039;&amp;#039;postgres&amp;#039;&amp;#039;.&lt;br /&gt;
* nastavení hesla pro uživatele &amp;#039;&amp;#039;postgres&amp;#039;&amp;#039;, vytvoření certifikátu a jeho zkopírování na &amp;#039;&amp;#039;slave&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@nemesis pavel]# passwd postgres&lt;br /&gt;
Changing password for user postgres.&lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: all authentication tokens updated successfully.&lt;br /&gt;
[root@nemesis pavel]# su - postgres&lt;br /&gt;
[postgres@nemesis ~]$ ssh-keygen -t rsa&lt;br /&gt;
Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key (/home/postgres/.ssh/id_rsa): &lt;br /&gt;
Created directory &amp;#039;/home/postgres/.ssh&amp;#039;.&lt;br /&gt;
Enter passphrase (empty for no passphrase): &lt;br /&gt;
Enter same passphrase again: &lt;br /&gt;
Your identification has been saved in /home/postgres/.ssh/id_rsa.&lt;br /&gt;
Your public key has been saved in /home/postgres/.ssh/id_rsa.pub.&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
b6:84:3c:e2:e0:53:49:59:35:a9:53:9d:ca:f5:e8:ab postgres@nemesis&lt;br /&gt;
The key&amp;#039;s randomart image is:&lt;br /&gt;
+--[ RSA 2048]----+&lt;br /&gt;
|      ..oo .     |&lt;br /&gt;
|     o  o.+      |&lt;br /&gt;
|    o  + o o     |&lt;br /&gt;
|   . oo.o . .    |&lt;br /&gt;
|  . + +.S.       |&lt;br /&gt;
| . + . + ..      |&lt;br /&gt;
|  o .   .  .     |&lt;br /&gt;
|   .      .      |&lt;br /&gt;
|        E.       |&lt;br /&gt;
+-----------------+&lt;br /&gt;
&lt;br /&gt;
[postgres@10.0.0.1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.4&lt;br /&gt;
The authenticity of host &amp;#039;10.0.0.4 (10.0.0.4)&amp;#039; can&amp;#039;t be established.&lt;br /&gt;
RSA key fingerprint is b2:25:50:34:3f:93:da:60:e8:f2:36:88:51:a8:1a:ce.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added &amp;#039;10.0.0.4&amp;#039; (RSA) to the list of known hosts.&lt;br /&gt;
postgres@10.0.0.4&amp;#039;s password: &lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
postgres@10.0.0.4&amp;#039;s password: &lt;br /&gt;
Now try logging into the machine, with &amp;quot;ssh &amp;#039;10.0.0.4&amp;#039;&amp;quot;, and check in:&lt;br /&gt;
&lt;br /&gt;
  .ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
to make sure we haven&amp;#039;t added extra keys that you weren&amp;#039;t expecting.&lt;br /&gt;
&lt;br /&gt;
[postgres@nemesis ~]$ ssh 10.0.0.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* výše zmíněný login (ssh 10.0.0.4) by měl projít bez požadavků na heslo&lt;br /&gt;
* předchozí dva body se zopakují na počítači, který má sloužit jako slave&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su - postgres&lt;br /&gt;
ssh-keygen -t rsa&lt;br /&gt;
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.1&lt;br /&gt;
ssh 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* uzavřeme všechny ssh spojení&lt;br /&gt;
* na masteru připravíme počáteční konfiguraci PostgreSQL&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen_addresses = &amp;quot;*&amp;quot;&lt;br /&gt;
wal_level = hot_standby&lt;br /&gt;
archive_mode=on&lt;br /&gt;
archive_command=&amp;#039;/bin/true&amp;#039;&lt;br /&gt;
max_wal_senders=2&lt;br /&gt;
wal_keep_segments=100&lt;br /&gt;
hot_standby=on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* primární server zpřístupníme replice - zásah do &amp;#039;&amp;#039;pg_hba.conf&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host     repmgr           repmgr      10.0.0.4/32         md5&lt;br /&gt;
host     replication      all         10.0.0.4/32         md5&lt;br /&gt;
host     repmgr           repmgr      10.0.0.1/32         md5&lt;br /&gt;
host     replication      all         10.0.0.1/32         md5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* heslo uživatele uloží v dalším kroku do &amp;#039;&amp;#039;.pgpass&amp;#039;&amp;#039;&lt;br /&gt;
* restart masteru&lt;br /&gt;
* na &amp;#039;&amp;#039;&amp;#039;replice&amp;#039;&amp;#039;&amp;#039; odstraníme obsah clusteru&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/postgresql stop&lt;br /&gt;
cd /var/lib/pgsql/data&lt;br /&gt;
rm -rf *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* na slavu přeložíme [http://www.repmgr.org/ &amp;#039;&amp;#039;repmgr&amp;#039;&amp;#039;]. K dispozici musí být devel knihovny PostgreSQL. Tento krok je nutné zopakovat i na primárném serveru (masteru)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xvfz repmgr-1.1.0.tar.gz&lt;br /&gt;
cd repmgr-1.1.0&lt;br /&gt;
make USE_PGXS=1&lt;br /&gt;
su&lt;br /&gt;
make USE_PGXS=1 install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* zpět na master - založíme db &amp;#039;&amp;#039;repmgr&amp;#039;&amp;#039; a uživatele &amp;#039;&amp;#039;repmgr&amp;#039;&amp;#039; - uživatel &amp;#039;&amp;#039;repmgr&amp;#039;&amp;#039; musí být superuser&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[postgres@10.0.0.1]$ createdb repmgr;&lt;br /&gt;
[postgres@10.0.0.1]$ createuser repmgr&lt;br /&gt;
Shall the new role be a superuser? (y/n) y&lt;br /&gt;
postgres=# ALTER USER repmgr PASSWORD &amp;#039;heslo&amp;#039;;&lt;br /&gt;
ALTER ROLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* ověříme přístup ze slave na master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su postgres&lt;br /&gt;
echo &amp;#039;10.0.0.1:5432:repmgr:repmgr:heslo&amp;#039; &amp;gt;&amp;gt; .pgpass&lt;br /&gt;
chmod 0600 ~/.pgpass&lt;br /&gt;
psql -h 10.0.0.1 -U repmgr repmgr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* klonujeme master na slave (pozor - je nutne zadat port, přestože je standardní)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[postgres@10.0.0.4]$ repmgr -D /usr/local/pgsql/data -U repmgr -p 5432 -d repmgr -R postgres --verbose standby clone 10.0.0.1&lt;br /&gt;
...&lt;br /&gt;
reomgr standby clone complete&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* na všech uzlech vytvoříme konfigurační soubor &amp;#039;&amp;#039;/usr/local/pgsql/repmgr/repmgr.conf&amp;#039;&amp;#039; podle vzoru:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@10.0.0.1]# cat /usr/local/pgsql/repmgr/repmgr.conf &lt;br /&gt;
cluster=test&lt;br /&gt;
node=1&lt;br /&gt;
conninfo=&amp;#039;host=10.0.0.1 user=repmgr dbname=repmgr password=heslo&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* registrace masteru&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@10.0.0.1]# repmgr -f /usr/local/pgsql/repmgr/repmgr.conf --verbose master register&lt;br /&gt;
Opening configuration file: /usr/local/pgsql/repmgr/repmgr.conf&lt;br /&gt;
repmgr connecting to master database&lt;br /&gt;
repmgr connected to master, checking its state&lt;br /&gt;
master register: creating database objects inside the repmgr_test schema&lt;br /&gt;
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index &amp;quot;repl_nodes_pkey&amp;quot; for table &amp;quot;repl_nodes&amp;quot;&lt;br /&gt;
Master node correctly registered for cluster test with id 1 (conninfo: host=10.0.0.1 user=repmgr dbname=repmgr password=heslo)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* na slave je nutné do souboru &amp;#039;&amp;#039;recovery.conf&amp;#039;&amp;#039; dopsat přihlašovací údaje pro login na master&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
standby_mode = &amp;#039;on&amp;#039;&lt;br /&gt;
primary_coninfo = &amp;#039;host=10.0.0.1 port=5432 user=repmgr password=heslo&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* registrace slave&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@nemesis data]# /etc/init.d/pgsql start&lt;br /&gt;
Starting PostgreSQL: ok&lt;br /&gt;
[root@10.0.0.4 data]# repmgr -f /usr/local/pgsql/repmgr/repmgr.conf --verbose standby register&lt;br /&gt;
Opening configuration file: /usr/local/pgsql/repmgr/repmgr.conf&lt;br /&gt;
repmgr connecting to standby database&lt;br /&gt;
repmgr connected to standby, checking its state&lt;br /&gt;
repmgr connecting to master database&lt;br /&gt;
finding node list for cluster &amp;#039;test&amp;#039;&lt;br /&gt;
checking role of cluster node &amp;#039;host=10.0.0.1 user=repmgr dbname=repmgr password=heslo&amp;#039;&lt;br /&gt;
repmgr connected to master, checking its state&lt;br /&gt;
repmgr registering the standby&lt;br /&gt;
repmgr registering the standby complete&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* na slave nastartujeme &amp;#039;&amp;#039;repmgrd&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@10.0.0.4]# repmgrd -f /usr/local/pgsql/repmgr/repmgr.conf --verbose &amp;gt; /usr/local/pgsql/repmgr/repmgr.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
[root@10.0.0.4 pavel]# tail -f /usr/local/pgsql/repmgr/repmgr.log &lt;br /&gt;
repmgrd Connecting to database &amp;#039;host=10.0.0.4 user=repmgr dbname=repmgr password=heslo&amp;#039;&lt;br /&gt;
repmgrd Connected to database, checking its state&lt;br /&gt;
repmgrd Connecting to primary for cluster &amp;#039;test&amp;#039;&lt;br /&gt;
finding node list for cluster &amp;#039;test&amp;#039;&lt;br /&gt;
checking role of cluster node &amp;#039;host=10.0.0.1 user=repmgr dbname=repmgr password=heslo&amp;#039;&lt;br /&gt;
repmgrd Checking cluster configuration with schema &amp;#039;repmgr_test&amp;#039;&lt;br /&gt;
repmgrd Checking node 2 in cluster &amp;#039;test&amp;#039;&lt;br /&gt;
repmgrd Starting continuous standby node monitoring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* na slave se lze dotázat na stav replikace&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
repmgr=# select * from repmgr_test.repl_status ;&lt;br /&gt;
─[ RECORD 1 ]─────────────┬──────────────────────────────&lt;br /&gt;
primary_node              │ 1&lt;br /&gt;
standby_node              │ 2&lt;br /&gt;
last_monitor_time         │ 2011-09-05 18:00:44.277306+02&lt;br /&gt;
last_wal_primary_location │ 0/5B186764&lt;br /&gt;
last_wal_standby_location │ 0/5B186764&lt;br /&gt;
replication_lag           │ 0 bytes&lt;br /&gt;
apply_lag                 │ 0 bytes&lt;br /&gt;
time_lag                  │ 00:00:02.639117&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Roman</name></author>
	</entry>
</feed>