POSTGRESQL PG15关于归档的新模式

news2024/11/26 1:46:53

8cf32280317f81865a29b8adc7b0d576.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共810人左右 1 + 2 + 3),这里需要注意,如果想和 瑞典马工进行面对面的交流的同学,可以单独提出申请加入 3群,否则如2群。

正文

相信不少人对于PG的归档方式进行过吐槽,比如为什么用CP 命令是PG默认归档的方式等等这样的问题。主要被吐槽的问题

效率低下:传统的 PostgreSQL 使用 shell 命令进行 WAL(Write Ahead Log)归档,这导致了大量不必要的操作和低效性。

文档误导:PostgreSQL 文档给出一个将 test 和 cp 命令结合在一起的不安全命令作为示例,许多用户照搬这种方法,导致归档问题的发生。

备份工具:在过去,用户需要依赖第三方备份工具,如 PgBackRest,来解决归档问题。

f194f50304130a0603a39238246d3172.png

那么PG15 给我们带来了什么,带来了基于归档方式的变化,PostgreSQL 为连续归档提供了创建自定义模块的基础设施,自定义归档模块会更加稳定和高效。

当配置了自定义archive_library时,PostgreSQL 将完成的 WAL 文件提交给该模块,服务器将避免回收或删除这些 WAL 文件,直到模块指示文件已成功归档。这里PG15提供了一个basic_archive 的基础归档模块,通过ba 可以简单的将需要归档的日志进行数据的迁移。

ae86e75ac13e3ff729a5018c7fea8b02.png

根据官方文档,我们可以通过以下的几部来配置一个basic_archive 的归档的工作。

0427971b4e86422b8f90dc7126f94ce5.png

025135c6d8664df20108df5637d22921.png

7e768b5e6c8a8c9b2ba85341bc59566f.png

41d135b3fe1748019f40e07ae14ec337.png

03f94dd9a7eb53c6a6a82cf3ad0f0220.png

可以看到,我们的归档在通过base_archive 的方式进行归档后,我们并未在archive_command 中进行归档的命令的设置,而是通过basic_archive模块来进行归档。这样的归档方式的优势是

它创建一个临时文件,并在目标位置将其 fsync 并持久地移动到最终的存档文件副本中。这种持久性是 cp 无法提供的。这大大降低了存档目标中损坏文件导致存档失败,甚至有时会导致数据库可恢复性的可能性。

basic_archive 的另一个重要功能优势是,当源(pg_wal)和存档目标中存在相同文件时,它具有内置功能来比较两者。它比较文件的内容并验证它们完全相同,然后向存档器报告“成功”,以便存档进程可以继续处理下一个 WAL 分段。这也降低了存档失败的机会。因为如果文件由模块存档,但在记录之前服务器崩溃,PostgreSQL将尝试再次存档相同的 WAL 分段。如果文件已复制并具有相同的内容,新的 basic_archive 模块示例会在第二次尝试时静默成功。

另外有些同学提出在加载时报错,这里需要注意,basic_archive 是在需要进行编译的,否则是无法进行加载的,所有必须对contrib 的模块的进行编译和安装,才能使用这个功能。

88db225e6f93eb77daac9069d498c364.png

当然很多人可能认为,这个方式和之前的方式比较并未有很大的改变,但是这是一个好的开始,基于PG15对于归档模块的注意和改变,未来可能有新的模块来参与到PG的归档工作中,或许有更强大的第三方的公司来开发归档模块,这对于一些 企业版的PG 厂商来说也是一个好的事情,我们都希望PG 数据库的功能越来越完善,越来越稳定。

dc4b5712b8f8cbc335222566e2744a36.png

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

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

相关文章

chatgpt赋能python:PythonSoup对于爬虫程序员来说为什么如此重要

Python Soup 对于爬虫程序员来说为什么如此重要 介绍 Python是现代编程世界中最广泛使用的语言之一。它是一个高级编程语言,可用于许多应用程序,从机器学习到游戏开发再到网络爬虫。对于网络爬虫,Python Soup是非常重要的工具之一。Soup是一…

如何像访问百度一样访问家里的服务器?(三)

来源:公众号【鱼鹰谈单片机】 作者:鱼鹰Osprey ID :emOsprey 在前面的两篇笔记《家里宽带搞个服务器,YYDS(一)》《家里宽带申请公网 IP(二)》,介绍了如何获取公网 IP&a…

chatgpt赋能python:Python%6简介

Python %6 简介 什么是Python %6? Python %6指的是在Python中使用%6操作符来计算一个数的余数。余数是指在进行整除时所剩余下的数字。在Python中,使用%符号来表示计算余数,因此%6表示计算一个数除以6所剩下的余数。 为什么要使用Python %…

Golang每日一练(leetDay0076) 第k大元素、组合总和III

目录 215. 数组中的第K个最大元素 Kth-largest-element-in-an-array 🌟🌟 216. 组合总和 III Combination Sum iii 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日…

13 Binder通信之ServiceManager

Binder通信之ServiceManager 一、前言 Android系统中存在很多service,当某个应用调用系统某个service的功能时,往往向系统发出请求,调用该服务的外部接口,这种外部接口我们通常叫做代理接口,也就是说要拿到目标服务需要先拿到目标服务的代理。这个时候,如果每个应用cli…

少林派问题汇总2

Q: torch转bmodel模型时,bmnetp工具报错 A: 有的模型涉及到动态shape,需要设置成动态编译dyntrue Q: A: 内存占满了,进程被系统kill掉了,运行内存建议12g以上 Q: ss…

企业级API网关之典型应用场景

目 录 01 企业面对API与网关的现状‍‍‍‍‍ 02 APIGW介绍及企业应用场景 03 总结 01 企业面对API与网关的现状‍ 在企业中,进行新的系统/应用/产品开发时,具有周密的流程:从需求分析、设计、开发、测试、发布与验收。所以,一…

Emacs之打开交互log(九十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

IDEA装上这3款ChatGPT插件,彻底炸裂!!

今天,给大家介绍3款好用的IntelliJ IDEA ChatGPT插件,各有千秋,可以帮我自动写代码,自动改善代码性能和安全并且生成视图对比,以及解释代码,优化代码,生成单元测试用例,更牛逼的是直接可以根据描…

13. Laravel 和 Vue-element-admin多语言配置

后端多语言 1. 安装, 并注册 composer require overtrue/laravel-lang:~6.0 # 添加以下行到 bootstrap/app.php $app->register(Overtrue\LaravelLang\TranslationServiceProvider::class);2. 修改默认语言为简体中文 # vim config/app.php locale > zh_CN…

『树莓派云台机器人』03. 利用SD卡进行树莓派的镜像烧录

目录 1. 下载镜像文件2. SD卡初始化与镜像烧录工具3. SD卡初始化过程4. 镜像烧录过程总结 欢迎关注 『树莓派云台机器人』 博客,持续更新中 欢迎关注 『树莓派云台机器人』 博客,持续更新中 1. 下载镜像文件 链接:https://pan.baidu.com/s/1…

我是普通人,我居然可以这样借力ChatGPT?(此文不卖课)

昨天写了一篇《程序员,如何借力ChatGPT?》,分享了借助AI: (1)撰写通用代码; (2)协助寻找BUG; (3)协助优化算法性能; &…

小白也能看懂的ChatGPT知识介绍

一、ChatGPT介绍 ChatGPT 是一款由 OpenAI 开发的人工智能技术驱动的语言模型应用。以下是 ChatGPT 的主要特点和功能: 自然语言处理:ChatGPT 可以识别和理解自然语言,包括英语、法语、德语、西班牙语等多种语言。它可以回答各种问题、提供各…

【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

文章目录 一、Room ViewModel LiveData 框架使用核心要点1、Room 框架优化分析2、Google 官方建议的 Room ViewModel LiveData 架构3、Room 与 LiveData 结合使用要点4、Repository 层核心要点5、ViewModel Room 结合使用6、Activity 组件中 ViewModel 使用要点7、Room 框…

RWKV论文燃爆!将RNN崛起进行到底!可扩百亿级参数,与Transformer表现相当!

深度学习自然语言处理 原创作者:鸽鸽 万众期待的RWKV论文来啦! 这股RNN崛起的“清流”,由民间开源组织发起,号称是第一个可扩展到百亿级参数的非transformer架构! RWKV结合了RNN和Transformer的优势:一方面…

【送书】前端系列16集-vue3范型,vue-i18n-next,watch,watchEffect

送书活动:挑选1名粉丝同学哦 免费包邮送。截止时间:2023/5/26号 19 : 00参与底部评论区说说:请在评论中分享你的阅读收获。 中台落地手记——业务服务化与数据资产化 vue-i18n-next vue3 中使用 i18n 需要安装的是 [vue-i18n v9] 的版本 npm…

Nat Biotechnol –精准 CRISPR-Cas噬菌体疗法将为重症感染患者带来福音

治疗血液系统恶性肿瘤的化学药物常会引起骨髓功能抑制(bone marrow suppression)和胃肠道黏膜炎,并伴有肠道通透性增加。肠道细菌(包括大肠杆菌)从胃肠道易位是血流感染的常见原因。肠道细菌引起血流感染导致的死亡率为…

【这个问题纠结了我好多年】3dMax到底使用Intel还是AMD的CPU更好?

随着英特尔和 AMD 的新 CPU上市,是时候进行新一轮的硬件测试了。通过以极具竞争力的价格提供大量内核,AMD 已成为 CPU 领域的有力竞争者。作为回应,英特尔已开始增加其 CPU 中的内核数量。虽然它们提供的内核数量仍然不如 AMD,但它…

基于ESP32-CAM 和 OpenCV 设计的手势控制虚拟鼠标

概述 在本文中,我们将使用ESP32-CAM和OpenCV开发手势控制虚拟鼠标。ESP32 Camera Module和Python程序可用于无线控制鼠标跟踪和点击操作。 入门者必须具备 Python、图像处理、嵌入式系统以及物联网的丰富知识。首先,我们将了解如何控制鼠标跟踪和单击,以及运行 python 程序…

《Kali渗透基础》03. 被动信息收集

kali渗透 1:被动信息收集1.1:收集内容1.2:信息用途 2:域名信息收集2.1:nslookup2.1.1:命令参数2.1.2:示例 - 命令行2.1.3:示例 - 交互式 2.2:dig2.2.1:命令参…