PostgreSQL 9.1 实时主从复制配置
一.安装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实时同步配置完成。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。