当前位置: 首页 > news >正文

pgsql 主从搭建

在 PostgreSQL 中,主从复制(Master-Slave Replication)是一种常见的数据库高可用性和数据备份解决方案。它允许你创建一个主数据库服务器(Master),并在一个或多个从数据库服务器(Slave)上复制主数据库的数据。这有助于提高系统的可用性,因为在主服务器发生故障时,可以切换到从服务器来提供服务。以下是在 PostgreSQL 中设置主从复制的基本步骤:

注意: 在开始之前,请确保你已经安装了 PostgreSQL,并且主从服务器都可以访问彼此。

配置主服务器(Master):

a. 打开主服务器的 PostgreSQL 配置文件,通常位于 /etc/postgresql/<version>/main/postgresql.conf。

b. 确保以下参数设置正确:

listen_addresses = '*' # 允许远程连接

wal_level = replica     # 设置 WAL 日志级别为 replica

max_wal_senders = 3     # 允许的 WAL 发送者数量,根据需要进行调整

wal_keep_segments = 64  # 保留的 WAL 日志段数量,根据需要进行调整

打开 pg_hba.conf 文件(通常位于相同目录),确保允许从服务器连接到主服务器。添加以下行:

host replication <replication_user> <slave_ip> md5

其中 <replication_user> 是用于复制的用户名,<slave_ip> 是从服务器的IP地址。例如:

host replication replicator 192.168.1.2/32 md5

重新启动 PostgreSQL 以使更改生效。

创建复制用户和权限:

在主服务器上创建一个用于复制的用户,并授予适当的权限。登录到主服务器的 PostgreSQL,然后执行以下命令:

CREATE USER replicator REPLICATION LOGIN CONNECTION LIMIT 3;

备份和还原数据:

在主服务器上执行备份操作,并将备份文件传输到从服务器。可以使用 pg_dump 命令创建备份:

pg_dump -U <username> -h <hostname> -F c -b -f <backup_file> <database_name>

将 <username> 替换为数据库用户名,<hostname> 替换为数据库主机名,<backup_file> 替换为备份文件的路径,<database_name> 替换为要备份的数据库名称。

在从服务器上执行还原操作:

pg_restore -U <username> -h <hostname> -d <database_name> <backup_file>

配置从服务器(Slave):

a. 打开从服务器的 PostgreSQL 配置文件,通常位于 /etc/postgresql/<version>/main/postgresql.conf。

b. 设置以下参数以启用从服务器:

listen_addresses = '*'  # 允许远程连接

hot_standby = on        # 启用热备份模式

c.创建一个 recovery.conf 文件,通常位于与数据目录相同的位置,包含以下内容:

standby_mode = 'on'

primary_conninfo = 'host=<master_ip> port=<master_port> user=<replication_user> password=<password>'

restore_command = 'cp /var/lib/postgresql/<version>/main/archive/%f %p'

archive_cleanup_command = '/usr/lib/postgresql/<version>/bin/pg_archivecleanup /var/lib/postgresql/<version>/main/archive %r'

trigger_file = '/tmp/postgresql.trigger'

替换 <master_ip>, <master_port>, <replication_user>, <password> 以及相关的路径和版本信息。

d. 重新启动从服务器的 PostgreSQL。

启动主从复制:

在从服务器上,启动 PostgreSQL 服务后,它会自动连接到主服务器并开始复制数据。你可以在主服务器上进行监视和管理复制进程。

测试主从复制:

在主服务器上进行一些数据更改,然后验证这些更改是否在从服务器上反映出来。你可以使用 pg_stat_replication 视图来监视复制状态。

这只是一个基本的主从复制设置过程,实际环境中可能需要更复杂的配置,例如使用流复制(streaming replication)或逻辑复制(logical replication)来满足特定需求。此外,确保在生产环境中采取适当的安全措施,如加密和访问控制,以保护你的数据库。

相关文章:

pgsql 主从搭建

在 PostgreSQL 中&#xff0c;主从复制&#xff08;Master-Slave Replication&#xff09;是一种常见的数据库高可用性和数据备份解决方案。它允许你创建一个主数据库服务器&#xff08;Master&#xff09;&#xff0c;并在一个或多个从数据库服务器&#xff08;Slave&#xff…...

JS中的数值精度问题(二)

一、精度范围&#xff0c;精度最多只能到53个二进制位 JavaScript 能够准确表示的整数范围在-2^53到2^53之间&#xff08;不含两个端点&#xff09;&#xff0c;超过这个范围&#xff0c;无法精确表示这个值。 国际标准IEEE 754规定&#xff0c;有效数字第一位默认总是…...

WPF——Control与Template理解

文章目录 一、前言二、控件三、模板3.1 DataTemplate3.2 ControlTemplate3.3 ContentPresenter 四、结语 一、前言 最近又翻看了下刘铁猛的《深入浅出WPF》&#xff0c;发现对模板章节中的部分内容有了更深的体会&#xff0c;所以写篇文扯扯。 文章标题是Control与Template&a…...

华为HCIA学习(一)

文章目录 一.根据考试题总结知识点&#xff08;一题一点&#xff09;二.上午学习三.下午学习四.今天只做了70题&#xff0c;需要的可以找我 一.根据考试题总结知识点&#xff08;一题一点&#xff09; 二.上午学习 ① VRP系统是VRP是华为公司从低端到高端的全系列路由器、交换…...

使用jmeter+ant+jenkins+git搭建自动化测试平台

最近正在学习自动化测试&#xff0c;于是随手搭建了一下jmeterantjenkinsgit平台。 接下来&#xff0c;我会按照jdk&#xff0c;jmeter&#xff0c;ant&#xff0c;jenkins,git这个顺序一步一步的搭建起来。 一、jdk。这个就不多说了。我用的是1.8版本的&#xff0c;配环境变…...

C# Winform中在DataGridView中添加Button按钮,操作Button按钮

.Net的DataGridView控件中&#xff0c;提供了一种列的类型&#xff0c;叫 DataGridViewButtonColumn &#xff0c;这种列类型是展示为一个 按钮&#xff0c;可以给button赋予相应的text&#xff0c;并且&#xff0c;此button可以用来做处理事件的判断依据。 DataGridViewButto…...

Docker 网络学习

docker的网络模式 当你开始大规模使用Docker时&#xff0c;你会发现需要了解很多关于网络的知识。Docker作为目前最火的轻量级容器技术&#xff0c;有很多令人称道的功能&#xff0c;如Docker的镜像管理。然而&#xff0c;Docker同样有着很多不完善的地方&#xff0c;网络方面…...

django创建web服务器

安装 pip install django 创建项目 django-admin startproject report django-admin startapp data //project下可创建多个app 执行使用 python manage.py migrate //orm代码到数据库 python manage.py runserver 0.0.0.0:80 权限管理 python manage.py createsuperuser 创建…...

极光笔记 | 推送服务数据中心选择:合规性与传输效率的双重考量

随着全球化进程的深入&#xff0c;跨境数据传输与存储问题已经变得愈发重要。推送服务的数据中心节点选择不仅关乎数据访问速度和用户体验&#xff0c;同时也直接牵扯到数据合规性和安全保障。EngageLab Push深知这一点&#xff0c;为了满足更多国际客户和全球用户触达需求&…...

Python灰帽编程——初识Python上

1. Python 简介 常用安全工具语言示例perljoomscan whatwebrubymetasploit-frameworkpythonsqlmap pocsuite3gogoby 1.1 Python 起源 1.1.1 语言的作者 贵铎范罗萨姆&#xff08;Guido van Rossum&#xff09;荷兰人于1989 年圣诞节始创了python。 大神就是大神&#xff0…...

OLED透明屏交互技术:开创未来科技的新篇章

OLED透明屏交互技术作为一项前沿的科技创新&#xff0c;正在以其高透明度、触摸和手势交互等特点&#xff0c;引领着未来科技的发展。 不仅在智能手机、可穿戴设备和汽车行业有着广泛应用&#xff0c;还在广告和展示领域展现出巨大的潜力。 那么&#xff0c;尼伽在这篇文章中将…...

揭秘Spring Boot内嵌Tomcat原理

tomcat 介绍 tomcat 是 web容器&#xff08;servlet 容器&#xff09;&#xff0c;不管请求是访问静态资源HTML、JSP还是java接口&#xff0c;对tomcat而言&#xff0c;都是通过servlet访问&#xff1a; 访问静态资源&#xff0c;tomcat 会交由一个叫做DefaultServlet的类来处…...

分类散点图 stripplot() 加辅助线axhline() 多图合一

分类散点图 stripplot 加辅助线axhline 多图合一 效果图代码 画图没有什么可说的&#xff0c;直接上图 效果图 代码 # 绘制图&#xff0c; 查看是否数值在阈值上 plt.figure(figsize(30, 18)) n 0 for header, value_list in info_dict.items():ref_value_list ref_info_dic…...

一文告诉你为什么时序场景下 TDengine 数据订阅比 Kafka 好

在 TDengine 3.0 中&#xff0c;我们对流式计算、数据订阅功能都进行了再升级&#xff0c;帮助用户极大简化了数据架构的复杂程度&#xff0c;降低整体运维成本。TDengine 提供的类似消息队列产品的数据订阅、消费接口&#xff0c;本质上是为了帮助应用实时获取写入 TDengine 的…...

reg与wire的用法,证明reg可以在右边,wire型在左边,来作组合逻辑处理。

reg与wire的用法&#xff0c;证明reg可以在右边&#xff0c;wire型在左边&#xff0c;来作组合逻辑处理。 1&#xff0c;RTL2&#xff0c;生成的原理图 1&#xff0c;RTL 参考文献&#xff1a; 1&#xff0c;verilog 中 wire 和reg 的使用 2&#xff0c;解决一个assign问题&…...

Studio One6.2简体中文免费最新版本宿主软件

对于一些有创作需求的朋友来说&#xff0c;为自己写的歌制作伴奏是很平常的。今天要和大家分享的就是自己写的歌怎么做伴奏&#xff0c;自己做伴奏的软件有哪些。Studio One是宿主软件界的一个后起之秀&#xff0c;推出的时间不久&#xff0c;但是受到了大量音乐制作人的推崇。…...

算法刷题 week2

目录 week21. 二维数组中的查找题目题解(单调性扫描) O(nm) 2.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 3.从尾到头打印链表题目题解(遍历链表) O(n) week2 1. 二维数组中的查找 题目 题解 (单调性扫描) O(nm) 核心在于发现每个子矩阵右上角的数的性质&#xff1…...

子网的划分

强化计算机网络发现王道没有这一块的内容&#xff0c;导致做题稀里糊涂。于是个人调研补充。 子网划分是将一个大型IP网络划分成更小的子网&#xff0c;以实现更有效的网络管理和资源分配。 原因&#xff1a; 提高网络性能&#xff1a;子网划分可以减少广播域的大小&#xff…...

Docker安装与卸载

Docker安装与卸载 安装 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken更新本地镜像源 打开终端或 SSH 连接到 Rocky Linux 的服务器。 进入 /etc/yum.repos.d/ 目录&#xff0c;该目录包含 Rocky Linux 的 yum 配置文件。 cd /etc/yum.repo…...

【Davinci开发】:开发过程问题记录及总结

开发过程问题总结 1、SWC访问系统OS Timer返回值异常a、代码发现,RTE接口为未连接状态b、连接后,仍然有问题,单步调试,发现没有访问权限当新平台基于之前平台的代码而延续开发时(应用代码相同,但是芯片已经更换),记录开发过程中遇所到的问题,单步调试,逐一排查。 1、…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...