postgres实现异步standby

postgresql异步方式实现standby

postgres可以利用standby的方式实现数据库的高可用。其中master database或者是primary database可以提供的是读写的功能,而standby实现的是只读的功能,下面简单的介绍下实现方式

环境说明:

master:192.168.8.4

standby:192.168.8.147

首先在两台服务器上面都安装好了postgres软件,之后按照下面的方式修改master上面的配置文件 postgres.conf

wal_level = hot_standby

max_wal_senders = 5

listen_address = ‘*’

下面在postgres中添加文件复制的用户

create user replication password ‘passwd’

\q

修改pg_hba.conf

添加如下的认证

host    replication     all             all          md5

开始的时候我的配置是如下的配置

host    replication     replication           192.168.8.0/24          md5

制定了具体的用户进行连接,但是在连接的过程中总是报错

所以现在采用上面的连接方式

下面对数据库进行restart(在用户为postgre的环境下)

pg_ctl restart –D $PGDATA(后面为自己的数据目录)

之后配置standby服务器

利用pg_basebackup将数据拷贝到standby数据库

pg_basebackup  -U replicaiton  -h 192.168.8.4 -F p -P -x -R -D/data/postgresdata_backup/ -l backup20170611

-F:format指定格式,p表示的是plain,t表示输出的格式为tar类型。即所有的文件都是以原来的格式进行复制过来,

参数解释:

-D: 指定复制过来的时候,存放的数据目录

-R:当复制完成之后,写入recovery.conf

-x:当复制的时候包括wal文件

-X:同-x,--xlog-method=fetch|stream 指定具体的方法获取wal日志

-z: --gzip生成的日志为tar.gz的压缩方式

-l:设置backup的label

-P:显示压缩的进程信息

-h:指定host

-W:强制密码提示

-w:没有密码提示

设置配置文件(slave-server)

postgres.conf

hot_standby = on

之后重启服务器,pg_ctl  start –D path(将数据拷贝过来的时候的文件位置)

好了之后,可以在master database进行测试,创建一个数据库来进行同步情况的查看了。

 

你可能感兴趣的:(linux)