PostgreSQL集群和复制standby

举报
xcc-2022 发表于 2022/07/04 21:12:16 2022/07/04
【摘要】 操作系统 : windws 数据库   :PostgreSQL 9+ ,下面简称PG 虚拟主机2台MASTER: 192.16.41.114(这个看实际情况来修改),后面简称MSLAVE:    192.16.41.112(这个看实际情况来修改),后面简称S确定ip之后,请相互ping一下,看看是否可以pingt通,如果不能ping通,很有可能是防火墙的问题,请关闭防火墙。 Step1:安装...

操作系统 : windws 
数据库   :PostgreSQL 9+ ,下面简称PG

 

虚拟主机2台
MASTER: 192.16.41.114(这个看实际情况来修改),后面简称M
SLAVE:    192.16.41.112(这个看实际情况来修改),后面简称S

确定ip之后,请相互ping一下,看看是否可以pingt通,如果不能ping通,很有可能是防火墙的问题,请关闭防火墙。

 

Step1:安装PG数据库
略,slave端可以只装数据库,不初始化数据库(安装好就不用动它了,要记得账号密码),因为后面需要把data文件家替换掉。
程序位置:C:\Program Files\PostgreSQL\ ,位置没有具体的要求,可以随改。

 

 

Step2:创建流复制用户

master端执行:

这些sql在这个地方执行:



CREATE USER 用户名 replication LOGIN CONNECTION LIMIT 3  ENCRYPTED PASSWORD ‘密码';



请注意上面的中文,后面需要用这个用户来进行热备 LIMIT 3可以进行修改,有几个用户用就改成几。

现在额外提供一下查询方法:

SELECT rolname FROM pg_roles;  查询用户信息

DROP ROLE 用户名 ;  删除某个用户

 

 

Step3:配置Master端的访问文件pg_hba.conf,我的路径为:C:\Program Files\PostgreSQL\9.4\data

增加一行:
host replication repuser 192.16.41.112/16 md5

说明:repuser是上面新建的用户,后面的ip地址是该用户的地址,这个配置方法我这就不说明了,可以向图片中的样子设置,改成任何地址都可以过来访问。后期安全起见可以指定访问的ip


 

Step4:配置MASTER端配置文件 C:\Program Files\PostgreSQL\9.4\data\postgresql.conf

配置的时候为了方便可以放到这个文件后面,因为这些配置默认都是被注释的。所有本质上都是唯一的,不用担心其他地方配置过了

max_wal_senders = 1
wal_level = hot_standby

archive_mode = on 
archive_command = 'cd ./'

hot_standby = on
wal_keep_segments = 64


  注:max_wal_senders是Slave库的节点数,有多少个slave库就设多少,
      wal_level是write ahead log参数值,设置流复制务必将此值更新成hot_standby
     wal_keep_segments默认值是16,是PG_XLOG下的日志文件数相关参数
    archive也可以选择关闭,归档是定时恢复用的,流复制不是必须的

Step5:主库备份(Master端)
5.1:开启文件备份,前提是wal_level参数值必须是archive或者hot_standby,前面已做


select pg_start_backup('Replition work');


5.2:拷贝C:\Program Files\PostgreSQL\9.4\data文件夹,并复制到Slave端上,是data下面的所有的文件哦

Slave端如果已经安装了postgres数据库,可以先停掉Slave端数据库(不停止有文件不能操作),将data文件夹中内容清空。将master中data文件夹中内容拷贝到slave中相同文件夹下。

 5.3:上述步骤完成后,结束master端的备份


select pg_stop_backup(),current_timestamp;


Step6:修改Slave端配置信息

6.1 :postgresql.conf

这个文件由于是拷贝了的,所以可以不用修改,如果要修改,就把文件最后面几行内容做修改,改成:


6.2:recovery.conf文件

将C:\Program Files\PostgreSQL\9.4\share\recovery.conf.sample文件拷贝到C:\Program Files\PostgreSQL\9.4\data文件夹下,重命名为recovery.conf

在该文件末尾新增以下内容:

 standby_mode ='on'

 primary_conninfo='host=192.16.41.114  port=5432 user=repuser password=repuser keepalives_idle=60'

说明:上面的地址 host= 是master的地址,端口也是,user和password是第step 2创建的用户。

6.3:配置.pgpass文件(slave端)

该文件的默认地址在:C:\Users\Administrator\AppData\Roaming\postgresql。这个文件里面可以放入连接远程数据库的默认账号密码,免去手动连接输入账号密码。

在该文件后面新增一行:
192.16.41.114:5432:postgres:repuser:repuser

这些数据是描述master端的ip和端口要是master的,repuser:repuser是账号密码,是step2 创建的。

6.4:删除slave端(从master端拷过来的)的postmaster.pid文件和pg_xlog文件夹中内容。在C:\Program Files\PostgreSQL\9.4\data里面
Step7:启动Slave
打开Slave上面的数据库,可是看到slave和master上面的数据库是一样的。

ksii

开始测试吧!!!

修改master里面的数据,看看slave上面的数据是否跟着改变。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。