PostgreSQL 9.1 实时主从复制配置

两台数据库服务器均为CentOS 5.3

一.安装Postgresql9.1

1.从http://ftp.postgresql.org/pub/source/v9.1.2/postgresql-9.1.2.tar.gz下载Postgresql9.1下载源码

2.在两个数据库服务器上执行以下操作安装Postgresql9.1

tar –zxvf  postgresql-9.1.2.tar.gz
cd postgresql-9.1.2
./configure –prefix /usr/local/pgsql

make
make install

useradd postgres    #创建postgres用户
mkdir /data/pgsql9.1  #创建数据文件目录
chown postgres:postgres /data/pgsql9.1
/usr/local/pgsql/bin/initdb –D  /data/pgsql9.1  #初始化数据库

3.配置Master数据库

su – postgres
/usr/local/pgsql/bin/pg_ctl –D /data/pgsql9.1  start  #启动数据库

#进入数据库创建repl用户

Psql –p 5432 –U postgres –h 127.0.0.1
Create user repl superuser password ‘密码’
\q

 

#修改postgresql.conf文件

vi /data/pgsql9.1/postgresql.conf
listen_addresses = '*'
wal_level = hot_standby
synchronous_commit = on
max_wal_senders = 2
wal_keep_segments = 32
synchronous_standby_names = '*'

 

#修改pg_hba.conf文件
vi /data/pgsql9.1/pg_hba.conf

#允许局域网中md5密码认证连接
host    all             all        192.168.100.0/24        md5

#用户数据同步,必须为replication数据库
host  replication       repl          192.168.100.0/24        md5

#用户在当前数据库服务器无密码连接
local   all          all                                     trust

 

 

#重启数据库

Su – postgres
/usr/local/pgsql/bin/pg_ctl –D  /data/pgsql9.1 restart


4.配置Slave端数据库服务器

#进入Master数据库服务器,将Master数据库设置为备份状态

Psql –p 5432 –U postgres
Select pg_start_backup(‘/data/pgsql9.1’);

 

#将Master数据库数据文件备份到Slave端

scp –rp /data/pgsql9.1 root@slave急ip:/data/

 

#进入Master数据库服务器,将Master数据库恢复到正常状态

 Psql –p 5432 –U postgres
Select pg_stop_backup('');

#修改Slave数据库文件权限

chown –R postgres:postgres /data/pgsql9.1

 

#修改Slave数据库postgresl.conf

vi /data/pgsql9.1/postgresql.conf
wal_level = minimal
synchronous_commit = off
max_wal_senders = 0
wal_keep_segments = 0
synchronous_standby_names = ''
hot_standby = on

 

#编辑recovery.conf文件

cp /usr/local/pgsql/share/recovery.conf.sample /data/pgsql9.1/ recovery.conf
vi  /data/pgsql9.1/ recovery.conf

standby_mode = 'on'
primary_conninfo = 'host=192.168.100.78 port=5432 user=repl password=replpwd'
trigger_file = '/data/pgsql9.1/trigger_activestb'

 

#启动Slave数据库

/usr/local/pgsql/bin/pg_ctl –D /data/pgsql9.1  start

 

到此Master-Slave实时同步配置完成。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。