Postgresql 9.6.12在windows上的主从部署配置搭建。 postgresql 数据库主从复制。postgresql 基于windows的主从

公司最近要部署postgresql(以下简称pg)数据主从复制,之前没怎么接触过pg数据库主从。 对这个概念也不是很熟悉。

网上找教程,结果搜索到的很多都是Linux,以及配合windows系统下的部署 。 没有找到主从都是windows系统的教程。很多教程折腾了好久报错。各种报错。

自己折腾了这么久,也算是部署搭建成功了。 所以写下这个教程。 供其他小伙伴们参考。不足之处多多批评指出。欢迎交流探讨。

 

1. 安装环境:

主机:xxx.119   windows Server2012 

从机   xxx. 202  windows 10 

pg版本: 9.6.12

 

首先分别在主从机子上都安装好pg软件,这里不多做说明。 网上教程很多。

安装完之后,可以不装其他多余的插件。

 

我在此次默认一个安装密码root ,也就是 默认用户名postgresql 的密码。

1.1 主机配置

软件安装完毕之后,

 

进入cmd中, 进入到pg安装目录的bin目录, 我这里安装目录是 D:\server\postgresql9.6

检查安装版本:

 

补充一点,如果不想每次进入到bin目录太麻烦的话,可以配置path, 配置bin到path,然后直接cmd中就能用psql命令了。

 

 

这样在任何目录都能直接使用psql命令

 

1.2 再然后用默认的用户登录数据库看看。。 前面说到的默认密码是root,

在cmd中, psql -h 192.168.0.119 -U postgres 

然后输入密码root

如图

 

这样就表示登录成功了。 注意,输入密码的时候是没有显示的。 

 

可以用相关的指令查看表或者数据库。

这里简单说几个, 其他自行百度

\l    查看所有数据库

\dt 查看当前所有表

 

然后可以退出了。 在这个页面可以 直接 Ctrl+C 退出命令, 或者 \q退出。

接下来配置主库的postgresql.conf文件  ,文件在安装目录的data文件夹中

 

 

配置以下几个参数:

  1. listen_address = ‘*’(默认localhost)
  2. wal_level = hot_standby(默认是minimal)
  3. max_wal_senders=2(默认是0)
  4. wal_keep_segments=64(默认是0)

配置完成之后,

再登录主机的postgresql 用户, 创建一个超级用户。

create user repl superuser password 'root';

 

 

用户创建完成之后,打开pg_hba.conf 文件进行配置

 

 

到这里,主库就完成了。 

然后开始从库的配置

 

 

首先,清空从机上的data文件夹中的内容,这里建议改名,比如说改成data-01,

 

在从机上刚刚安装完成pg之后,可能data不能改名,因为有程序在使用,进入到服务, 把pg的服务停止

 

windows键+R    输入  services.msc

 

找到 pg的服务,

 

将其停止,就能给data改名了, 或者直接删除data中的内容,改名之后再新建一个data文件夹。。

 

然后开始从主机这了备份主机的数据库。

在cmd中 运行用下指令(注意data后面还有一个\)

pg_basebackup -h 192.168.0.1 -U repl -F p -x -P -R -D D:\server\postgresql9.6\data\

 

 

 

 

 

在前面都操作正确的情况下,然后会提示你输入密码,这里暂时没有保存截图。

输入密码root之后,就开始进行复制了, 等复制完成100%之后,我们发现data文件夹下多出了很多文件和文件夹, 这个是从主机上复制过来的。 

 

 

这个时候其实差不多已经完成了。 

然后你再从机上登录从机的pg数据库。 用户postgresql 登录。 。 。 登录从机本机数据库  psql -h localhost -U postgres 

 

这个时候你会发现你登录不上去,因为刚刚已经关闭了服务了, 

然后你会到服务中再启动服务,

但是,通常情况下,这个服务启动不了。

这个时候,接下里就要在从机的postgresql.conf 文件中做一些修改了。

 

hot_standby改为启用状态,即hot_standby=on

 

 

更改完成之后,再去启动pg的服务。

 

可能这个时候还是启动不了? 

怎么办呢?

 

进入任务管理器。 找到后台任务,把pg的进行全部杀死

 

 

 

完成之后再去启动服务。 应该就能启动了 。。。

 

现在开始测试下。。

登录主机:

psql -h localhost -U repl -d postgres

 

然后在主机上我们创建一张表 testcsdn 

create table testcsdn(id int, name text)

 

 

然后再从机上登录从机的数据库

 

psql -h localhost -U postgres -d postgres

 

 

可以看到从机的数据库中已经有了我们在主机中创建的表testcsdn。

说明是能自动备份的。 

 

 

另外有几个问题:

主机中创建表之后没有成功的提示。 不知道是哪里的问题。 但是能正常复制到从机。

 

 

 

最后,文章参考来源:https://blog.csdn.net/wlwlwlwl015/article/details/53287855

 

感谢大神。。。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值