windows PostgreSQL-11.3 主从复制

一、数据库安装
1. 安装环境
操作系统: windows7、windows10
数据库版本: postgresql-11(64位)
2.安装数据库
2.1 下载数据库
官网链接:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
2.2 安装
(1).打开下载好的.exe文件
在这里插入图片描述
(2).点击next,选择数据库安装目录
在这里插入图片描述
(3). 点击next,安装postgresql服务端
在这里插入图片描述
PostgreSQL Server: postgresql服务端(必须有)
pgAdmin 4: postgresql(可选)
Stack Builder: 堆栈生成器(可选)
CommandLine Tools: 命令行工具(可选)

(4).点击next,选择data文件安装路径
在这里插入图片描述
(5).点击next,输入密码
在这里插入图片描述
(6).点击next,选择数据库端口号
在这里插入图片描述
(7).点击next,选择时区
在这里插入图片描述
Locale:选择时区,这里选择的是默认时区
(8).剩余三步,不需要任何操作,直接点击next就可以了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自动下载,等待下载完毕
(9). 下载完毕后,将此弹框关掉(点击finish会自动下载stack builder)
在这里插入图片描述
2.3配置环境变量
右键计算机—》选择高级系统设置—》点击环境变量—》在path里添加C:\PostgreSQL\11\bin
2.4测试数据是否安装成功
打开cmd, 输入psql -U postgres
在这里插入图片描述
如果出现以上界面,说明安装成功。
同理,windows10 也是这样安装

二、主从配置
1.配置环境
Master:
操作系统::windows7
数据库版本:postgresql-11
ip:192.168.0.150

slave:
操作系统:windows10
数据库版本:postgresql-11
ip:192.168.0.131

2.配置master
创建用户,用于slave登录,并且授权复制
create role slave1 login replication encrypted password ‘123456’;
在这里插入图片描述
创建slave1数据库,用于测试
在这里插入图片描述
进入data文件夹,找到pg_hba.conf
在这里插入图片描述
在pg_hba.conf里添加slave的ip
在这里插入图片描述
IPv4里配置是为了slave登录, replication privilege里配置是为了流复制

配置完上述步骤后,在data文件里找到postgresql.conf。进行下述配置
在这里插入图片描述
至此,master已经配置完毕,最后重起postgresql服务

3.配置slave
(1).测试与master是否连接正常
在这里插入图片描述
出现上述界面,说明连接成功
(2).关闭服务,备份data, 修改名称为data01。清除data文件夹下的文件
在这里插入图片描述
在这里插入图片描述
(3).将master上data文件下的文件复制。有两种方式,一种是用命令,一种是手动复制文件
这里使用的是命令的方式
在这里插入图片描述
(4).将share文件下的recovery.conf.sample文件复制到data文件下,并修改名字为recovery.conf
在这里插入图片描述
在这里插入图片描述
(5).修改recovery.conf中的配置
在这里插入图片描述
(6).修改postgresql.conf中的配置
hot_standby = on

至此,slave配置完毕,最后重启服务。然而遗憾的是很多小伙伴,发现服务启不起来。
在这里插入图片描述
那么这时候,我们也不要慌张,先来分析为什么启动不了。首先我们数据库版本是一致的,操作系统都是windows,唯一不同的就是操作系统的版本了,一个是windwos7,一个是windwos10。那么我们现在就要先从这里找原因。去查看系统日志。
右键我的电脑—》管理—》事件查看器—》windows日志—》应用程序。
寻找最近时间的postgresql的错误日志
在这里插入图片描述
Ok,找到原因,postgresql.conf文件中包含错误。这时候小伙伴们肯定再想,slave并没有配置什么呀。怎么会出错。那么这时候,我们来对比一下slave备份和slave复制的postgresql.conf文件到底有什么不同。这里给大家推荐一款对比文件软件,Beyond。对比过后,我们会发现除了我们自己修改的配置外,还有一个地方不同
在这里插入图片描述
左边为slave从master拷贝过来的配置,右边为slave的原配置。这个错误是因为我们安装数据时,时区选择默认而引起的。因为系统版本不一样,所有默认的时区也不一样。所以这时候,我们需要在把时区修改为’C’。C为不选择时区
在这里插入图片描述
Master和slave都需要修改,修改完毕后启动服务
三、测试主从复制
1. 创建表
master
在这里插入图片描述
slave
在这里插入图片描述
2.添加数据
master
在这里插入图片描述
slave
在这里插入图片描述
3.删除数据
master
在这里插入图片描述
slave
在这里插入图片描述
总结:
1. 在做主从配置的时候一定要注意系统版本、数据库版本。
2. 要注意系统权限问题。这个问题我之前遇到过,因为主从复制时,数据库会自动删除和创建一些文件,如果权限不足,那么也会导致数据库服务启动不了。
3. 当数据库服务启动不了的时候,我们要学会去系统日志里查找问题。
4. 因为这是本人第一次发表博客,所以有很多不足的地方,希望大家能给予意见和建议。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PostgreSQL主从复制是一种常见的数据库复制技,用于实现数据的冗余备份和读写分离。在主从复制中,一个主数据库(Master)负责处理写操作,而一个或多个从数据库(Slave)则负责接收主数据库的变更并进行复制。 以下是PostgreSQL主从复制的基本原理和步骤: 1. 配置主数据库:在主数据库上,需要修改postgresql.conf文件和pg_hba.conf文件。其中,postgresql.conf文件中需要设置wal_level为replica,max_wal_senders为允许的最大连接数,以及设置archive_mode为on。pg_hba.conf文件中需要添加允许从数据库连接的配置。 2. 创建复制用户:在主数据库上,创建一个用于复制的用户,并赋予REPLICATION角色。 3. 备份主数据库:在主数据库上执行pg_basebackup命令,将主数据库的数据目录备份到从数据库。 4. 配置从数据库:在从数据库上,同样需要修改postgresql.conf文件和pg_hba.conf文件。其中,postgresql.conf文件中需要设置standby_mode为on,并指定recovery.conf文件的位置。pg_hba.conf文件中需要添加允许主数据库连接的配置。 5. 创建recovery.conf文件:在从数据库上创建recovery.conf文件,并设置primary_conninfo参数为主数据库的连接信息。 6. 启动从数据库:在从数据库上启动PostgreSQL服务,它将自动连接到主数据库并开始复制数据。 7. 监控复制状态:可以使用pg_stat_replication视图来监控主从复制的状态,包括复制延迟和连接状态等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值