PostgreSQL主从同步

目录

一、主从复制原理

二、配置主数据库

2.1 创建同步账号

2.2 配置同步账号访问控制

2.3 设置同步参数

3.4 重启主数据库

三、配置从数据库

3.1 停止从库

3.2 清空从库数据文件

3.3 拉取主库数据文件

3.4 配置从库同步参数

3.5 启动从库

四、测试主从

4.1在主库查看从库连接状态

4.2 新增数据测试同步


一、主从复制原理

        PostgreSQL的主从同步主要基于其预写日志(Write-Ahead Log, WAL)机制和流复制(Streaming Replication)功能来实现数据的高可用性和一致性。

        WAL是PostgreSQL确保数据持久性和一致性的一个核心组件。它的工作原理是,任何对数据库的修改操作,在实际修改数据文件之前,都会先记录到WAL中。这意味着,事务的提交不仅仅依赖于数据页的更新,还依赖于相关日志记录到WAL并被确认。这个过程确保了即使在系统崩溃的情况下,也能通过重放WAL日志恢复到一致的状态。

        流复制是PostgreSQL实现主从同步的主要方式,它建立在WAL机制之上,它允许将主服务器(Primary)上的事务日志(WAL, Write-Ahead Logging)实时发送到从服务器(Secondary)。从服务器接收到这些事务日志后,将其应用到自己的数据库中,从而保持与主服务器数据的一致性。

二、配置主数据库

2.1 创建同步账号

CREATE ROLE replica login replication encrypted password 'wsx-123';

2.2 配置同步账号访问控制

# vi /data/db/postgresql/pg_hba.conf

host    replication     replica         192.168.179.135/32      md5

2.3 设置同步参数

# vi /data/db/postgresql/postgresql.conf

wal_level = replica
max_wal_senders = 2

3.4 重启主数据库

pg_ctl -D /data/db/postgresql -l logfile restart

三、配置从数据库

3.1 停止从库

pg_ctl -D /data/db/postgresql -l logfile stop

3.2 清空从库数据文件

rm -rf /data/db/postgresql/*

3.3 拉取主库数据文件

pg_basebackup -h 192.168.179.134 -D /data/db/postgresql -p 5432 -U replica -Fp -Xs -Pv -R --checkpoint=fast

3.4 配置从库同步参数

        由于从库数据文件是从主库拉取过来,需要先删除主库同步相关的参数,然后新增从库同步参数:

vi /data/db/postgresql/postgresql.conf

primary_conninfo = 'host=192.168.179.134 port=5432 user=replica password=wsx-123'
recovery_target_timeline = latest 
hot_standby = on

3.5 启动从库

pg_ctl -D /data/db/postgresql -l logfile start

四、测试主从

4.1在主库查看从库连接状态

select client_addr,usename,backend_start,application_name,sync_state,sync_priority FROM pg_stat_replication;

4.2 新增数据测试同步

主库插入数据:

从库数据对比:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/371961.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端JS特效第24集:jquery css3实现瀑布流照片墙特效

jquery css3实现瀑布流照片墙特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>jquerycss3实现瀑…

Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结

第31天&#xff0c;贪心最后一节(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解&#xff1a;代码随想录合并区间 视频讲解&#xff1a;手撕合并区间 题目&#xf…

firewalld(6)自定义services、ipset

简介 在前面的文章中我们已经介绍了zone、rich rule 、--direct等功能和基本配置。在前面文章中&#xff0c;我们提到过firewalld内置了很多服务&#xff0c;可以通过firewall-cmd --get-services来查看服务&#xff0c;也可以通过配置文件查看这些服务/var/lib/firewalld/ser…

直面生产制造的8大核心痛点

1.制造部门的计划紊乱问题 1.1计划的重要性与常见缺陷 计划是制造部门高效运作的前提。在实际运作中&#xff0c;计划的缺失或不周会导致生产效率的大幅降低。常见缺陷包括&#xff1a; -缺乏综合的生产计划&#xff0c;过分依赖销售计划&#xff0c;忽视生产和采购的实际能…

盘点2024年6月Sui生态发展,了解Sui近期成长历程

随着区块链技术的迅猛发展&#xff0c;Sui生态在2024年6月取得了令人欣喜的进步。作为创新的L1协议&#xff0c;Sui不仅在技术革新方面表现突出&#xff0c;还在DeFi、游戏应用和开发者工具等领域展现出强大的潜力。本篇文章将全面盘点Sui在过去一个月内的生态发展&#xff0c;…

堆溢出ret2libc

堆溢出–ret2libc 题目&#xff1a; [HNCTF 2022 WEEK4]ezheap | NSSCTF 讲解&#xff1a; 题目保护全开&#xff0c;要泄漏基地址&#xff1a; 利用栈溢出覆盖put参数泄漏libc基地址&#xff0c;再第二次用system的地址覆盖put函数&#xff0c;实现ret2libc。 泄漏libc…

Redis源码整体结构

一 前言 Redis源码研究为什么先介绍整体结构呢?其实也很简单,作为程序员的,要想对一个项目有快速的认知,对项目整体目录结构有一个清晰认识,有助于我们更好的了解这个系统。 二 目录结构 Redis源码download到本地之后,对应结构如下: 从上面的截图可以看出,Redis源码一…

文华财经盘立方期货通鳄鱼指标公式均线交易策略源码

文华财经盘立方期货通鳄鱼指标公式均线交易策略源码&#xff1a; 新建主图幅图类型指标都可以&#xff01; VAR1:(HL)/2; 唇:REF(SMA(VAR1,5,1),3),COLORGREEN; 齿:REF(SMA(VAR1,8,1),5),COLORRED; 颚:REF(SMA(VAR1,13,1),8),COLORBLUE;

Gemini for China 大更新,现已上架 Android APP!

官网&#xff1a;https://gemini.fostmar.online/ Android APP&#xff1a;https://gemini.fostmar.online/gemini_1.0.apk 一、Android APP 如果是 Android 设备&#xff0c;则会直接识别到并给下载链接。PC 直接对话即可。 二、聊天记录 现在 Gemini for China&#xff…

开始尝试从0写一个项目--后端(二)

实现学生管理 新增学生 接口设计 请求路径&#xff1a;/admin/student 请求方法&#xff1a;POST 请求参数&#xff1a;请求头&#xff1a;Headers&#xff1a;"Content-Type": "application/json" 请求体&#xff1a;Body&#xff1a; id 学生id …

计算机网络性能指标概述:速率、带宽、时延等

在计算机网络中&#xff0c;性能指标是衡量网络效率和质量的重要参数。本文将综合三篇关于计算机网络性能指标的文章&#xff0c;详细介绍速率、带宽、吞吐量、时延、时延带宽积、往返时延&#xff08;RTT&#xff09; 和利用率的概念及其在网络中的应用。 1. 速率&#xff08;…

收银系统源码-次卡功能

智慧新零售收银系统是一套线下线上一体化收银系统&#xff0c;给门店提供了含线下收银称重、线上商城、精细化会员管理、ERP进销存、营销活动、移动店务助手等一体化行业解决方案&#xff01; 详细功能见下文&#xff1a; 门店收银系统源码-CSDN博客文章浏览阅读2.6k次&#…

继 承

为什么要有继承&#xff0c;继承的作用&#xff1f; 继承(inheritance)机制&#xff1a;是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加新功能&#xff0c;这样产生新的类&#xff0c;称派生类。 …

Qt源码解析之QObject

省去大部分virtual和public方法后&#xff0c;Qobject主要剩下以下成员&#xff1a; //qobject.h class Q_CORE_EXPORT Qobject{Q_OBJECTQ_PROPERTY(QString objectName READ objectName WRITE setObjectName NOTIFY objectNameChanged)Q_DECLARE_PRIVATE(QObject) public:Q_I…

学习mybatis

1、 2、mybatis是什么 mybatis为DAO层提供了解决方案的这样一个框架既然他是为DAO层提供了解决方案 那么说明他的主要功能和JDBC以及dbutils是一样的都是实现数据库的增删改查3、mybatis能干什么 数据库的增删改查的实现4、有了JDBC为什么还要学习mybatis SSH&#xff1a;s…

【紫外线发光器件小结】 UV-B LED 308nm

之前有介绍光的波长和频率计算。 波长小于390nm,频率高于770太赫兹的电磁波忙&#xff0c;或者光。基本有一段就叫做紫外线。 紫外线有分为UV-A/B/C;三小段&#xff1b; 如下图&#xff1a; 高压汞灯与UV LED的光谱&#xff1b;黑色线汞灯&#xff0c;蓝色LED

FreeRTOS 列表和列表项

这里推荐看完韦东山的C语言本质和韦东山的rtos快速入门视频 在 FreeRTOS 的源码中大量地使用了列表和列表项&#xff0c;因此想要深入学习 FreeRTOS&#xff0c;列表和 列表项是必备的基础知识。这里所说的列表和列表项&#xff0c;是 FreeRTOS 源码中 List 和 List Item 的 直…

C++规范

一、VS工具集列表&#xff1a; Visual Studio 2008&#xff1a;v90 Visual Studio 2010&#xff1a;v100 Visual Studio 2012&#xff1a;v110 Visual Studio 2013&#xff1a;v120 Visual Studio 2015&#xff1a;v140 &#xff08;v140_xp&#xff09; Visual Studio 2017&a…

Spring框架的学习SpringMVC(1)

1.什么是MVC (1)MVC其实就是软件架构的一种设计模式&#xff0c;它将软件的系统分为&#xff0c;&#xff08;视图&#xff0c;模型&#xff0c;控制器&#xff09;三个部分 1.1View(视图) 视图也就是&#xff0c;在浏览器显示的那一个部分&#xff0c;是后端数据的呈现 1.…

微型导轨如何提升数控机床的稳定性?

数控机床是加工设备中常用的机床&#xff0c;精度和稳定性是衡量数控机床性能的重要指标。而微型导轨作为数控机床中重要的传动元件&#xff0c;数控机床与其具体结构性能是密不可分的&#xff0c;那么微型导轨如何提高数控机床的稳定性呢&#xff1f; 1、微型导轨通过采用先进…