![](https://img-blog.csdnimg.cn/direct/72a5c693915248ad8cb68c0050f1b58f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PostgreSQL之物理复制
文章平均质量分 57
涉及PostgreSQL数据库物理复制的复制原理、复制机制等的方方面面。
瀚高PG实验室
瀚高PG实验室(Highgo PG Lab)依托于瀚高DBA运维团队及瀚高数据库PG内核研发团队,旨在深入研究PostgreSQL技术、使用技巧、内核探秘、PG教学等,并进行分享。欢迎大家关注、交流。
展开
-
流复制和 archive_mode
将 archive_mode 设置成 off 时,依然能搭建成功流复制环境,而网上大多数资料都是将该参数设置成 on。 的确,在配置PostgreSQL流复制时,我们通常开启 archive_mode,但并不一定会配置archive_command shell脚本归档 WAL,因为 PostgreSQL 的归档非常大,而且保留归档WAL需要很大的存储空间,当然有条件的情况下建议开启并且设置保留策略。原创 2018-02-01 13:43:18 · 1072 阅读 · 0 评论 -
创建复制槽的时候报错55000
highgo=# SELECT * FROMpg_create_physical_replication_slot('testone');错误:55000:复制槽只有当 max_replication_slots > 0时才能使用原因:max_replication_slots设置值太小当参数wal_level设置为replica(or higher)的时候max_r原创 2018-01-10 16:46:41 · 555 阅读 · 0 评论 -
流复制查询备库与主库差异时间
highgo=# select pg_last_xlog_receive_location(),pg_last_xlog_replay_location(),pg_last_xact_replay_timestamp(),now(); pg_last_xlog_receive_location | pg_last_xlog_replay_location | pg_last_xact_replay原创 2018-05-03 14:36:38 · 720 阅读 · 1 评论 -
PostgreSQL 之 流复制主备库切换
在主从复制的两个节点中,当主节点数据库服务访问异常的时候后,可以手动通过promote 命令在从节点执行将从节点状态切换到可读写的状态,变为新的主节点。修复原主节点为新的从节点可以通过pg_rewind命令来实现,PG 9.5 版本已经将 pg_rewind 加入到源码,当主备发生切换时,可以将原来主库通过同步模式恢复,避免重做备库。这样对于较大的库来说,节省了大量重做备库时间。pg_rewi...原创 2018-02-11 13:50:09 · 2355 阅读 · 2 评论 -
PostgreSQL 之 流复制概述
基于流复制协议的wal日志从主节点到备节点实时复制传输与复用。为了实现数据库的高可用,一般需要搭建主库和备库。流复制是搭建主备库的一种有效方式,它不需要额外增加软件,只需要在单数据库模式的基础上,再复制一份PostgreSQL数据库到另外的一台机器上,对两台数据库进行参数配置,即可实现。这两套数据库之间的数据,通过wal日志,后台自动同步。对外部的应用程序而言,可以看作是两套数据库,需要根原创 2018-02-05 13:04:14 · 6011 阅读 · 3 评论 -
PostgreSQL 之 同步流复制的实现
同步复制要求在数据写入Standby数据库后,事务的commit才返回,所以Standby库出现问题时,会导致主库被hang住。解决这个问题的方法是启动两个Standby数据库,这两个standby数据库只要有一个是正常的,就不会让主库hang住。所以在实际应用中,同步流复制,总是有1个主库和2个以上的Standby库。同步复制的主要配置实现同步复制主要是在主库上设置postgresql.con...原创 2018-02-11 13:46:34 · 3431 阅读 · 0 评论 -
PostgreSQL 之 异步流复制的实现
Postgresql测试版本 V9.5.7VMware® Workstation 12 ProOS版本:redhat 7.4主库:db1(192.168.80.220)备库:db2(192.168.80.221)PostgreSQL异步流复制的具体实现:主库db1(192.168.80.220)配置vi $PGDATA/postgresql.conf=====原创 2018-02-05 13:18:34 · 1558 阅读 · 0 评论 -
同步复制优选提交
PG支持一主多备流复制,并且可以设置一个或多个同步备节点,PG9.6时只支持基于优先级的同步备库方式,PG10的synchronous_standby_names参数新增ANY选项,可以设置任意一个或多个备库为同步备库,这种基于Quorum的同步备库方式是PG10 版本的新特性,被称为同步复制优选提交。synchronous_standby_names参数用来指定同步备库列表,PG10参数值有以下三种方式:standby_nameFIRSTnum_sync (standby_name)ANY num原创 2021-07-30 11:34:53 · 2190 阅读 · 1 评论 -
流复制延迟复制
作者:瀚高PG实验室(Highgo PG Lab)-Chrisx文章目录延迟流复制介绍配置延迟流复制介绍默认情况下,一个后备服务器会尽快恢复来自于主服务器的 WAL 记录。有一份数据的延时拷贝是有用的,它能提供机会纠正数据丢失错误。这个参数允许你将恢复延迟一段固定的时间,如果没有指定单位则以毫秒为单位。例如,如果你设置这个参数为5min,对于一个事务提交,只有当后备机上的系统时钟超过主服务器报告的提交时间至少 5分钟时,后备机才会重放该事务。延迟备库实际上是设置备库延迟应用wal的时间,而备原创 2021-07-09 16:19:26 · 1398 阅读 · 0 评论 -
流复制同步异步转换
作者:瀚高PG实验室(Highgo PG Lab)-Chrisx文章目录介绍同步异步转换同步复制不等待介绍数据库流复制支持同步和异步方式,同步方式能提供最大保护,异步方式能提供最大可用。同步方式在网络异常或备库宕机情况下,主库操作也会受影响,事务操作会出现等待状态。当出现以上场景时,我们总是希望进行降级,将同步转为异步,避免主库hang住。如果实在无法保持所要求数量的同步后备,那么应该减少synchronous_standby_names中指定的事务提交应该等待其回应的同步后备的数量(或者禁用)原创 2021-07-09 16:15:50 · 1626 阅读 · 0 评论 -
流复制浅析 —— 延迟备库
延迟备库是指可以配置备库与主库的延迟时间,这样备库始终和主库保持指定时间的延迟。延迟备库的意义:一般流复制环境下,如果主库不是很忙并且备库硬件资源充分,通常备库和主库的延时能在毫秒级别。如果主库上误操作删除了表数据或者表,从库上的这些数据也瞬间就被删除,即使对数据库做了备份,要恢复到删除前的状态也是有难度的,需要做PITR维护成本较高。在这种场景下,延迟备库在一定程度上缓解了这一问题。延迟备库的部署:在备库revocery.conf配置文件中配置 recovery_min_apply_delay原创 2021-06-02 16:28:52 · 1053 阅读 · 0 评论 -
postgreSQL数据库同步流复制和异步流复制控制
作者:瀚高PG实验室 (Highgo PG Lab)-徐云鹤 pg同步流复制和异步流复制关键在于两个参数:synchronous_standby_names 控制哪些standby被应用同步策略;synchronous_commit控制同步策略级别。同步等级设定值概述保证范围同步remote_apply在备库上应用WAL(更新数据)后,它将返回COMMIT响应,并且可以在备库上进行引用。由于完全保证了数据同步,因此它适合需要备库始终保持最新数据的负载分配场景。原创 2021-05-06 10:28:55 · 4790 阅读 · 2 评论 -
流复制浅析 —— 主备切换
作者:瀚高PG实验室(Highgo PG Lab)-天蝎座流复制切换方式两种:通过创建触发文件方式触发主备切换通过pg_ctl promot命令手动触发主备切换判断主备角色的五种方法: 查看操作系统WAL进程 ps -ef |grep wal |grep -v grep wal sender process 表示该库为主库。wal receiver process 表示该库为备库。 查看数据库WAL进程 ...原创 2021-04-30 17:19:24 · 1319 阅读 · 1 评论 -
流复制浅析 —— 物理流复制监控
作者:瀚高PG实验室(Highgo PG Lab)-天蝎座流复制部署完成后,监控即为避不开的话题,本文介绍如何对流复制进行监控。pg_stat_replication视图对于监控流复制至关重要。postgres=# select * from pg_stat_replication ;-[ RECORD 1 ]----+-----------------------------pid | 6569usesysid | 10usename原创 2021-04-02 12:46:41 · 1432 阅读 · 0 评论 -
流复制浅析 —— 物理流复制部署
PostgreSQL复制方式有两种:物理复制和逻辑复制。早在PG9.0版本开始支持物理复制,也可以叫流复制(Streaming Replication下文中流复制一般指物理流复制)。PG10版本开始支持逻辑复制。流复制技术可以在实例级别复制出一个与主库一模一样的从库(备库)。通过流复制,备库不断的从主库同步相应的数据,并在备库apply每个WAL record,这里的流复制每次传输单位是WAL日志的record。而PostgreSQL9.0之前提供的方法是主库写完一个WAL日志文件后,才把WAL日志原创 2021-04-02 11:17:56 · 1637 阅读 · 0 评论