如何使用Repmgr设置PostgreSQL 9.0热备份流复制服务器在OpenSUSE 11.4上

如何使用Repmgr设置PostgreSQL 9.0热备份流复制服务器在OpenSUSE 11.4上 这是一个教程如何设置一个postgresql re ...

如何使用Repmgr在OpenSUSE 11.4上设置Postgresql 9.0热备份流式复制服务器

有关如何在postgresql 9.0上设置流复制的大量教程,以及关于repmgr的详细文档,来自2ndQuadrant的SR管理器程序。 像他们在repmgr主页上说的一样:

“PostgreSQL 9.0允许您复制热备份服务器,您可以查询和/或使用高可用性。虽然该功能的主要组件包含在PostgreSQL中,但用户期望管理高可用性部件。repmgr允许您监视和管理您复制的PostgreSQL数据库作为一个集群。

这是一个教程,如何使用流式复制设置postgresql复制热备用服务器,我们还设置了repmgr来监视和管理复制集群。 与在运行pg_start_backup()和pg_end_backup()的过程中将数据库文件从主机复制到从机(或备用)的大多数教程不同,repmgr用于简化整个过程。 (但是我仍然认为该过程可以帮助您了解postgresql如何热备份,pitr和热备份复制的工作。)

我想把大部分的学分给postgresql社区和所有的贡献者,如2ndQuadrant。 你们在Postgresql数据库上为SR热备功能做了不错的工作。 我在本教程中所做的工作只是使postgresql SR热备份复制在opensuse 11.4上工作。

我希望这个教程可以帮助更多的人开始使用postgresql,最先进的数据库,还有Opensuse,我最喜欢的操作系统,如Debian。

wintel2006@hotmail.com,

2011年6月20日

在本教程中,我将在VMware Workstation下运行2个OpenSUSE 11.4 32位裸机服务器,这两个服务器都是从OpenSUSE 11.4网络安装iso构建的,您可以从http://www.opensuse.org下载。

pgmaster: 192.168.5.187 (主数据库服务器)
pgslave: 192.168.5.188 (从属数据库服务器或待机)
并在两台服务器中修改/ etc / hosts以具有2个以上的记录。

第1步.在主服务器和从服务器上安装postgresql

zypper install postgresql postgresql-contrib postgresql-server

然后启动postgresql服务器,以确保它的工作原理:

/etc/init.d/postgresql start

第2步.在服务器之间设置可信副本(主和从主)

repmgr程序将使用rsync和ssh为用户postgres复制数据库,因此我们需要在主服务器和从属服务器之间设置ssh登录密码:

passwd postgres

su - postgres
ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub pgslave

测试我们是否可以通过密码从pgmaster ssh

ssh pgslave

并对Minion做同样的一步:

su - postgres
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub pgmaster
ssh pgmaster

确保您在测试后从远程ssh服务器注销。

更改postgresql配置文件(pg_ha.conf,postgresql.conf),然后重新启动postgresql(仅主服务器)

请确保仅在主服务器上在postgresql.conf中更改以下行:

listen_addresses = "*"
wal_level = hot_standby
checkpoint_segments=30
archive_mode=on
archive_command='cd .'
max_wal_senders=2
wal_keep_segments=5000
hot_standby=on

而在主服务器上的pg_hba.conf中:

host all all 192.168.5.0/24 trust
host replication all 192.168.5.0/24 trust

现在重新启动postgresql,并创建一个测试数据库进行复制使用。

/etc/init.d/postgresql restart

我们创建一个测试数据库并在master数据库上生成一些数据:

su - postgres
createdb pgbench
pgbench -i -s 10 pgbench

第4步.停止postgresql服务器,并删除数据目录中的所有内容(仅从服务器)

/etc/init.d/postgresql stop
cd /var/lib/pgsql/data
rm -rf *

现在测试远程postgresql连接到pgmaster:

psql -h pgmaster -d pgbench

现在postgresql已经在主服务器和从服务器上正确安装。 安装repmgr管理程序的时间。 您需要从2ndQuadrant网站下载源代码,并自行编译。