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

Centos7.6部署postgresql15主从

目录

  • 安装pg15(master和standby)
  • 主数据库配置(master)
    • 初始化数据库
    • 创建归档日志目录
    • 设置数据库访问权限
    • 修改数据库配置文件
    • 开启数据库
  • 从数据库配置(standby)
    • 同步主库的数据文件
    • 创建文件standby.signal
    • 启动从数据库
  • 主从状态验证
    • master上验证
    • standby上验证
    • 实操测试
  • 参考

安装pg15(master和standby)

Centos7.6安装postgresql15

  • 注意:只要完成初始化数据库之前的步骤

主数据库配置(master)

初始化数据库

${PGHOME}/bin/initdb -D ${PGDATA} --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8 #初始化数据库

创建归档日志目录

mkdir -p $PGDATA/pg_archive

设置数据库访问权限

vi $PGDATA/pg_hba.conf #添加修改
#添加host    replication     repl            10.0.1.203/24           md5
host    all             all             0.0.0.0/0               md5

修改数据库配置文件

# basic
listen_addresses = '*'                # 监听所有ip
port = 5432                           # 端口
max_connections = 1000                # 最大连接数
superuser_reserved_connections = 10   # 给超级用户预留的连接数
shared_buffers = 1GB                  # 共享内存,一般设置为内存的1/4
work_mem = 16MB                       # 设置在写入临时磁盘文件之前查询操作(例如排序或哈希表)可使用的最大内存容量
maintenance_work_mem = 256MB          # 在维护性操作(例如VACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY)中使用的 最大的内存量
timezone = 'Asia/Shanghai'            # 系统时区
hot_standby = on                      # 打开热备# optimizer
default_statistics_target = 500       # 默认100,ANALYZE在pg_statistic中存储的信息量,增大该值,会增加ANALYZE的时间,但会让解释计划更精准# wal
max_wal_size = 1GB                    # 建议与shared_buffers保持一致
min_wal_size = 80MB                   # 建议max_wal_size/12.5
wal_log_hints = on                    # 控制WAL日志记录的方式,建议打开
wal_level = replica                   # wal日志写入级别,要使用流复制,必须使用replica或更高级别
wal_sender_timeout = 60s              # 设置WAL发送者在发送WAL数据时等待主服务器响应的超时时间# archive
archive_mode = on                     # 
archive_command = 'gzip < %p > /data/pgsql/data/pg_archive/%f.gz'# log 近7天轮询
log_destination = 'csvlog'            # 日志格式
logging_collector = on                # 日志收集器
log_directory = 'pg_log'              # 日志目录 $PGDATA/pg_log
log_filename = 'postgresql.%a'        # 7天日志轮询
log_file_mode = 0600                  # 日志文件的权限
log_rotation_size = 0                 # 日志的最大尺寸,设置为零时将禁用基于大小创建新的日志文件
log_truncate_on_rotation = on         # 这个参数将导致PostgreSQL截断(覆盖而不是追加)任何已有的同名日志文件
log_min_duration_statement = 0        # 如果语句运行至少指定的时间量,将导致记录每一个这种完成的语句的持续时间
log_duration = on                     # 每一个完成的语句的持续时间被记录
log_lock_waits = on                   # 控制当一个会话为获得一个锁等到超过deadlock_timeout时,是否要产生一个日志消息
log_statement = 'mod'                 # 控制哪些 SQL 语句被记录。有效值是 none (off)、ddl、mod和 all(所有语句)。ddl记录所有数据定义语句,例如CREATE、ALTER和 DROP语句。mod记录所有ddl语句,外加数据修改语句例如INSERT, UPDATE、DELETE、TRUNCATE, 和COPY FROM
log_timezone = 'Asia/Shanghai'        # 设置在服务器日志中写入的时间戳的时区
  • pg的postgresql.conf的配置可以参考以下网站

PGTune - calculate configuration for PostgreSQL based on the maximum performance for a given hardware configuration

开启数据库

pg_ctl start
psql postgres
# 修改postgres的密码
alter role postgres with password 'Aa123456';
# 创建主从同步用户
create role repl with login replication encrypted password 'Aa123456';
\q

从数据库配置(standby)

同步主库的数据文件

chmod 0700 $PGDATA
su - postgres
pg_basebackup -Fp --progress -D $PGDATA -R -h ty-m2 -p 5432 -U repl --password

创建文件standby.signal

vi $PGDATA/standby.signal
standby_mode = on #on为从库
primary_conninfo = 'host=ty-m2 port=5432 user=repl password=Aa123456' #主库信息
recovery_target_timeline = 'latest' #流复制同步最新数据

启动从数据库

pg_ctl start

主从状态验证

master上验证

su - postgrespsql postgresselect client_addr,sync_state from pg_stat_replication;

在这里插入图片描述

\x on
select * from pg_stat_replication;
\q

在这里插入图片描述

pg_controldata | grep 'Database cluster state'

在这里插入图片描述

standby上验证

pg_controldata | grep 'Database cluster state'

在这里插入图片描述

实操测试

  • 在主库建立一个pgtest的数据库
psql postgres
create database pgtest;
\connect pgtest
\q
  • 从库也同步建了一个pgtest的数据库
psql pgtest
\q

参考

26.2. 日志传送后备服务器

相关文章:

Centos7.6部署postgresql15主从

目录 安装pg15&#xff08;master和standby&#xff09;主数据库配置(master)初始化数据库创建归档日志目录设置数据库访问权限修改数据库配置文件开启数据库 从数据库配置(standby)同步主库的数据文件创建文件standby.signal启动从数据库 主从状态验证master上验证standby上验…...

【ThinkPHP6系列学习-2】多应用模式配置

这里写一写TP6下配置多应用。因为TP6和TP5有所差异&#xff0c;TP6默认是单应用模式&#xff08;单模块&#xff09;&#xff0c;而我们实际项目中往往是多应用的&#xff08;多个模块&#xff09;&#xff0c;所以在利用TP6是就需要进行配置&#xff0c;开启多应用模式。 目录…...

Linux内核oops panic简析

源码基于&#xff1a;Linux 5.4 0. 前言 内核异常的级别大致分为三个&#xff1a;BUG、oops、panic。 BUG 是指那些不符合内核的正常设计&#xff0c;但内核能够检测出来并且对系统运行不会产生影响的问题&#xff0c;比如在原子上下文中休眠&#xff0c;在内核中用 BUG 标识。…...

Spark大数据处理讲课笔记4.8 Spark SQL典型案例

文章目录 零、本讲学习目标一、使用Spark SQL实现词频统计&#xff08;一&#xff09;数据源 - words.txt&#xff08;二&#xff09;创建Maven项目&#xff08;三&#xff09;添加依赖和构建插件&#xff08;四&#xff09;修改源目录名称&#xff08;五&#xff09;创建日志属…...

WhatsApp Business 多人使用终极指南

今时今日&#xff0c;几乎每个人的手机上都安装了 WhatsApp&#xff0c;不少电商更会依赖 WhatsApp作为和客户沟通的主要渠道。但对有一定规模的店铺来说&#xff0c;WhatsApp绑定一个号码和设备的设定实在很不方便。如何才能用WhatsApp Business批量处理客户查询呢&#xff1f…...

布局和视图的常用属性

0、用户界面由布局和GUI组件组成 之前的项目中都是使用线性布局LinearLayout&#xff0c;LinearLayout将视图显示在一行或一列中。其使用方法如下所示&#xff1a; <LinearLayoutxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width…...

解说天下之操作系统

解说天下之操作系统 本文由桌案drawon (https://www.drawon.cn)&#xff0c;云晶&#xff08;https://www.yunjingxz.com&#xff09;创始人根据多年从业经验&#xff0c; 从操作系统的起源&#xff0c;应用分类&#xff0c; 设计分类&#xff0c;以及资源使用角度对操作系统进…...

Pruning 系列 (八)layer常用简枝(torch)方法

环境 python 3.9numpy 1.24.1pytorch 2.0.0+cu117一、prune.random_unstructured pytorch:文档地址 用法: torch.nn.utils.prune.random_unstructured(module, name, amount) 参数: module(torch.nn.Module) -包含要修剪的张量的模块 name(str) -module 中的参数名称,将…...

Gigabyte Z490 Vision D i9-10900k电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板Gigabyte Z490 Vision D 处理器Intel i9-10900k已驱动 内存64GB G.Skill Trident Z 3600Mhz CL18已驱动 硬盘西数 WDS250G3X0C-00SJG0 ( SN750) …...

UWB智慧工厂人员定位系统源码,人员在岗监控、车辆实时轨迹监控源码

近年来人员定位系统在工业领域的发展势头迅猛&#xff0c;工业识别与定位成为促进制造业数字化的关键技术。通过实时定位可以判断所有的人、物、车的位置。实时定位系统要适用于复杂工业环境&#xff0c;单一技术是很难实现的&#xff0c;需要融合多种不同的定位技术&#xff0…...

从认识元注解到使用元注解

前言&#xff1a;注解是Java语言中的一种特殊语法&#xff0c;它可以为代码提供更加灵活的元数据信息&#xff0c;方便代码的处理和使用。而元注解则是用于定义注解的注解&#xff0c;它可以为注解提供更多的元数据信息和特性。本文将介绍如何自定义元注解&#xff0c;包括认识…...

【C++从0到王者】第六站:类和对象(下)

文章目录 一、再谈构造函数1.构造函数体赋值2.初始化列表1>初始化列表的使用2>初始化列表的注意事项 3.explicit关键词 二、static成员1.如何统计当前程序中变量的个数2.static的特性3.从1加到n4.设计一个类&#xff0c;只能在栈或者堆上开辟空间 三、友元1.友元函数2.友…...

AJax和Axios的讲解

目录 Ajax Ajax基本介绍 同步异步 原生Ajax 原生的Ajax使用方式 Axios 基本介绍 Axios的基本使用 发送 get 请求 发送 post 请求 Axios快速入门 请求方法的别名 练习 Ajax Ajax基本介绍 Ajax: 全称Asynchronous JavaScript And XML&#xff0c;异步的JavaScript和XML…...

企业落地数字化转型,如何部署战略规划

当前环境下&#xff0c;各领域企业通过数字化相关的一切技术&#xff0c;以数据为基础、以用户为核心&#xff0c;创建一种新的&#xff0c;或对现有商业模式进行重塑就是数字化转型。这种数字化转型给企业带来的效果就像是一次重构&#xff0c;会对企业的业务流程、思维文化、…...

新的网络钓鱼即服务平台让网络犯罪分子生成令人信服的网络钓鱼页面

至少从2022年中期开始&#xff0c;网络犯罪分子就利用一个名为“伟大”的新型网络钓鱼即服务(PhaaS或PaaS)平台来攻击微软365云服务的企业用户&#xff0c;有效地降低了网络钓鱼攻击的门槛。 思科Talos研究员蒂亚戈佩雷拉表示:“目前&#xff0c;Greatness只专注于微软365钓鱼…...

MySQL的隐式转换

隐式转换 若字符串是以数字开头&#xff0c;并且全部都是数字&#xff0c;则转换的数字结果是整个字符串&#xff1b;部分是数字&#xff0c;则转换的数字结果是截止到第一个不是数字的字符为止 若字符串不是以数字开头&#xff0c;则转换的数字结果是 0 varchar str "…...

LeetCode:23. 合并 K 个升序链表

23. 合并 K 个升序链表 1&#xff09;题目2&#xff09;过程3&#xff09;代码1. 最开始2.初步优化 4&#xff09;结果1. 最开始2. 初步优化 1&#xff09;题目 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合…...

js:正则表达式常用方法总结test、exec、match、matchAll、replace、replaceAll、search

文章目录 正则使用testmatch/matchAll不加g加ggroup 的使用 matchAll不加g加g exec不加g加g searchreplace 正则使用 常用的几种方法有&#xff1a;test、exec、match、matchAll、replace、replaceAll、search test // 匹配返回true&#xff0c;不匹配false /e/.test("…...

分析车载蓝牙通话只有前喇叭声音,后面喇叭无声背后原因

车载蓝牙通话只有前喇叭声音&#xff0c;后面喇叭无声背后原因 大家有没有注意到车载蓝牙连接后通话的时候只有前喇叭的有声音&#xff0c;后面喇叭没声音呢&#xff1f;特别是后装的车载多媒体上基本都是这样&#xff0c;细思下为什么这样的原因&#xff0c; 采访后装车载技术…...

高性能ADC/DAC FMC子卡推出-FMC164

FMC164 子卡集成 4 通道 1Gsps 采样率&#xff0c;16 位 高性能ADC采样&#xff0c;板载4 通道1.25Gsps 16 位DA。板载时钟芯片 HMC7044&#xff0c;可以提供 JESD204B所需要的各种时钟。具有同步/触发功能&#xff0c;模拟信号采用 SSMC 射频连接器输入和输出。板载时钟芯片为…...

AIAgent如何48小时内完成三甲医院级影像初筛?——2026奇点大会披露的FDA认证推理引擎架构

第一章&#xff1a;AIAgent如何48小时内完成三甲医院级影像初筛&#xff1f;——2026奇点大会披露的FDA认证推理引擎架构 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点大会上&#xff0c;DeepMed Labs首次公开其通过FDA 510(k)路径认证的AIAgent推理引擎v3.2——…...

为什么PUT和DELETE请求在大公司中逐渐被弃用?

为什么PUT和DELETE请求在大公司中逐渐被弃用&#xff1f; 一、引言&#xff1a;RESTful 的 “标准款”&#xff0c;为何大厂不买单&#xff1f; 1.1 PUT 与 DELETE 的设计初心&#xff1a;RESTful 的理想模型 在 HTTP 协议的大家族里&#xff0c;PUT 和 DELETE 请求方法就像一对…...

艾默生15kW直流充电模块DCDC控制软件分析

系统概述 艾默生15kW直流充电模块是一款高性能的电力转换设备&#xff0c;采用DSP2803x系列数字信号处理器作为核心控制器。该软件系统实现了对直流-直流&#xff08;DCDC&#xff09;转换器的精确控制&#xff0c;具备完善的保护机制和通信功能。 核心架构设计 1. 控制系统…...

低查重黑科技!AI教材生成工具,快速编写高质量教材不再愁!

教材修改与AI工具的引入 教材的初步草稿终于完成&#xff0c;但在修改和优化的过程中&#xff0c;真是让人感到“疲惫不堪”&#xff01;通读全文&#xff0c;寻找逻辑上的漏洞和知识点的失误&#xff0c;确实耗费时间。调整一个章节的框架&#xff0c;往往会影响到后面的多个…...

如何快速构建复杂多资源类型Kubernetes Operator:Kopf实战案例指南

如何快速构建复杂多资源类型Kubernetes Operator&#xff1a;Kopf实战案例指南 【免费下载链接】kopf A Python framework to write Kubernetes operators in just a few lines of code 项目地址: https://gitcode.com/gh_mirrors/ko/kopf Kubernetes Operator是自动化管…...

若依框架分页失效?别在Service里循环查数据库了,一个SQL IN查询搞定

若依框架分页失效的深度解析与高效解决方案 在Java后端开发中&#xff0c;分页查询是几乎每个项目都会遇到的常见需求。使用若依(RuoYi)这类基于Spring Boot和MyBatis的快速开发框架时&#xff0c;开发者往往会依赖PageHelper这样的分页插件来简化分页逻辑。然而&#xff0c;当…...

Fish Speech 1.5效果展示:听听AI生成的自然流畅语音

Fish Speech 1.5效果展示&#xff1a;听听AI生成的自然流畅语音 1. 惊艳的语音合成效果 Fish Speech 1.5带来的语音合成效果令人印象深刻。当我第一次听到它生成的中文语音时&#xff0c;几乎分辨不出这是AI生成的还是真人录音。语音的抑扬顿挫、停顿节奏都处理得非常自然&am…...

掌握AI专著写作技巧,搭配优质工具,轻松搞定专业学术专著

学术专著创作难题与AI工具解决方案 对于很多学者来说&#xff0c;撰写学术专著的最大难题就是“有限的精力”与“无限的需求”之间的矛盾。专著的写作通常需要花费3到5年&#xff0c;甚至更长的时间&#xff0c;而研究人员日常还要面对教学、项目研究、学术交流等多重任务&…...

Vue3+@antv/x6实战:5步实现可交互流程图保存与图片导出功能

Vue3与antv/x6深度整合&#xff1a;打造企业级可交互流程图解决方案 在数字化转型浪潮中&#xff0c;可视化流程编排工具已成为企业级应用的标准配置。作为前端开发领域的黄金组合&#xff0c;Vue3的响应式体系与antv/x6的图编辑能力相结合&#xff0c;能够快速构建出功能完备的…...

FPGA数字时钟设计进阶:如何优化你的Verilog代码(以Vivado为例)

FPGA数字时钟设计进阶&#xff1a;如何优化你的Verilog代码&#xff08;以Vivado为例&#xff09; 当你的FPGA数字时钟项目已经能够正常运行&#xff0c;却发现代码冗长、维护困难时&#xff0c;是时候考虑代码优化了。本文将带你从初级实现跃升到专业级设计&#xff0c;通过Ve…...