PostgreSQL主从数据库数据同步

news2024/7/6 20:05:42

运行环境

操作系统:Debian 11.5
数 据 库:PostgreSQL 14.6
主数据库:192.168.8.68
从数据库:192.168.8.69

使用apt-get安装postgresql,安装方法可以参考 https://blog.csdn.net/itbs/article/details/127909359?spm=1001.2014.3001.5501
官方推荐是用源码安装,优点是可以指定安装位置,实现应用程序、配置文件、数据文件、日志文件在一个文件夹里。用apt-get安装文件位置是分散的,应用程序在/usr/lib/postgresql,配置文件在 /etc/postgresql,数据文件在 /var/lib/postgresql,安装过程比较简单

主库操作

1、创建同步账号

创建同步账号 repl,密码 repl

	su postgres
	psql
	create role repl login replication encrypted password 'repl';
2、修改pg_hba.conf

文件位置 /etc/postgresql/14/main 。在#replication下,增加下面内容

host	replication	repl	192.168.8.69/32		trust
3、修改postgresql.conf

文件位置 /etc/postgresql/14/main 。增加下面内容

wal_level = replica
archive_mode = on
archive_command = 'cp %p /opt/postgresql/pg_archive/%f'
max_wal_senders = 8 
wal_sender_timeout = 60s

/opt/postgresql/pg_archive 这个路径中的文件夹要手动创建一下

4、主库重启
	systemctl restart postgresql

从库操作

1、测试从库访问主库
	psql -h 192.168.8.68 -U postgres

正确的情况下,输入密码即可访问

2、查询数据库的数据文件位置
	su postgres
	psql
	show data_directory;

在这里插入图片描述

查看后用exit退出psql命令行。如果清楚文件所在位置,此步骤可以略过。

3、停止从库
	systemctl stop postgresql

如果使用posgres用户执行,需要输入root密码,用root用户执行不需要

4、清空从库数据库文件
	rm -rf   /var/lib/postgresql/14/main/*  
5、从主库拉取数据
	pg_basebackup -h 192.168.8.68 -D /var/lib/postgresql/14/main -p 5432 -U repl -Fp -Xs -Pv -R --checkpoint=fast

-D 后面是主库数据库文件路径,如果配置了数据库文件地址,需要修改为配置后的路径
在这里插入图片描述

6、修改postgresql.conf
primary_conninfo = 'host=192.168.8.68 port=5432 user=repl password=repl'
recovery_target_timeline = latest 
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on
max_connections = 200  #要比主库连接数大,默认连接数是100
max_worker_processes = 20
7、启动从库
	systemctl start postgresql

同步状态查询

在主库执行,查询从库同步状态。可以新建表或者添加数据进行测试。

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能家居环境小护士(原理图、pcb、源码、设计报告)

目录 ARM-STM32校园创新大赛 1 题 目: 智能家居环境小护士 1 摘要 1 引言 2 系统方案 3 整套系统的工作原理是:单片机是整套系统的控制核心,温湿度传感器负责测试环境中的温湿度;烟雾传感器负责检测空气中的有毒气体,…

数据同步工具DataX介绍和原理

目录1. DataX介绍2. 框架设计3. 架构1. DataX介绍 DataX是一个各种数据源之间的离线数据同步工具 DataX的设计理念是一种星型数据链路。DataX作为中间传输载体负责连接各种数据源,通过reader从一个数据源读取数据,再通过writer将数据写入另一个数据源。…

Hadoop运行模式

hgfhfg Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。 Hadoop官方网站:Apache Hadoop 一、本地运行模式 官方Grep案例 1. 创建在hadoop-2.7.2文件下面创建一个input文件夹 mkdir input 2. 将Hadoop的xml配置文件复制到input cp et…

FTP替代产品方案的优异性体现在哪些方面?

多年来,FTP一直是最常见的交换文件的方式,FTP-FTPS-SFTP似乎是FTP的不断迭代更新,但是究竟是技术更新导致FTP过时?还是它真的已经满足不了企业的需求了? 之前,大家选择FTP往往是因为它简单易得的特性&…

在 MySQL 中模拟外部联接 (LEFT、RIGHT、INNER JOIN、OUTER JOIN)

上周的文章详细介绍了 SELECT 查询中的外部联接。它是一种 JOIN 类型,可以从相关表中返回匹配和不匹配的行。遗憾的是,并非所有数据库(DB)供应商都支持它,包括 MySQL。但这没关系,因为可以通过组合其他三种…

【Java】构造方法及类的初始化

一. 利用构造方法给对象初始化 1. 构造方法的概念 构造方法(也称为构造器)是一个特殊的成员方法,其名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。 构造方法的作用就是给对象中的成…

心知天气api接口怎么用?

心知天气是什么?心知天气提供API吗? 心知天气是国内领先的气象服务商,由中国气象局官方授权的商业气象服务公司,基于气象数值预报和人工智能技术,提供高精度气象数据、天气监控机器人、气象数据可视化产品&#xff0c…

基于PHP+MySQL美食分享网站的设计与实现(含论文)

本系统是一个基于PHP和MySQL的美食分享网站,在本网站中用户可以通过注册登录来查看其他人分享的美食,查看周边好吃的店铺,分享和管理自己的美食,并且可以对他人分享的美食进行评论等一系类操作,通过这些操作可以让大家更加愉快的就美食进行交流 通过上图我们可以看到美食网站的…

Web APIs——DOM

JS 的组成 Web API Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM )。 现阶段我们主要针对于浏览器讲解常用的 API , 主要针对浏览器做交互效果。 比如我们想要浏览器弹出一个警示框, 直接使用 alert(‘弹出’) MDN 详细 API : https://d…

如何在Github精准地搜索项目

文章目录1、Github的项目有什么组成?2、如何搜索?in:name 条件in:readme 条件in:description 条件language:条件pushed: 条件stars: 条件awesome 关键字3、查看阅读项目https://blog.csdn.net/qq_45069279/article/details/107809617 https://blog.csdn.…

[附源码]SSM计算机毕业设计高校教师教学助手系统的设计与实现JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

将Nacos注册到springboot使用以及Feign实现服务调用

哈喽~大家好,这篇来看看将Nacos注册到springboot使用以及Feign实现服务调用。 🥇个人主页:个人主页​​​​​ 🥈 系列专栏:【微服务】 🥉推荐专栏: JavaEE框架 目录 …

8 年 Java 开发含泪刷题,架构岗现在好难进,有点崩溃

架构岗现在好难进,有点崩溃了。一位粉丝后台留言道。具体问了下情况,是一位 8 年工作经验的朋友,代码功底扎实,项目经验也积累了不少。 为什么要用分布式锁?分布式锁的释放,需要注意什么?锁的过…

Elastic:总结收集日志的几种方法

到目前为止,我们看到有很多中不同的方法来收集日志。甚至,我们针对同样的一个日志,有好多种方法来进行采集。在今天的这篇文章中,我来简单里回顾一下。 通过 Filebeat 采集 Filebeat 是最为常用的一种采集日志的方法。使用 Fileb…

市面上哪种耳机适合跑步用、五款最适合跑步用的蓝牙耳机分享

对于很多运动爱好者来说,跑步,就像吃饭一样,已经成为生活中非常重要的习惯,跑步时听听音乐,让跑步的过程更加愉悦,但是你的运动耳机选对了嘛?首先我们要知道一款专业的运动耳机,一定…

Zookeeper:Mac通过Docker安装Zookeeper集群

此篇为 “Mac通过Docker安装Zookeeper集群”,笔者原本计划是接下来更新Zookeeper应用系列的相关内容,但相关内容依赖Zookeeper集群,虽然前面也更新了 Linux下Zookeeper在三种模式下的部署,但是大家很可能不会有相关的Linux集群准备…

java项目-第152期ssm远程诊断系统-java毕业设计_计算机毕业设计

java项目-第152期ssm远程诊断系统-java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《远程诊断系统》 该项目分为3个角色,管理员、用户和医生。 用户可以在前台浏览医生信息,并且可以进行在线预约, 在后台个人中心可以…

解决常见的电脑故障

1.电脑卡顿怎么办 电脑CPU使用率高的原因有很多;例如:软件方面——驱动故障、病毒影响;硬件方面——内存容量太小,风扇散热故障等。 有效的解决方法:关闭Windows通知 在【设置】-【系统】-【通知和操作】中&#xff0c…

并发编程之定时任务定时线程池

ScheduledThreadPoolExecutor 定时线程池类的类结构图 它用来处理延时任务或定时任务。 它接收SchduledFutureTask类型的任务,是线程池调度任务的最小单位,有三种提交任务的方式: schedulescheduledAtFixedRatescheduledWithFixedDelay它采用…