postgresql
文章平均质量分 81
postgresql数据库基础及实现
growdu_real
人生,不必遗憾,若是美好,叫做精彩。若是糟糕,叫做经历。
展开
-
docker搭建Postgresql主备集群
先使用pg_basebackup命令备份主库的数据,请注意pg_basebackup的版本应该与主库容器内的版本一致,不然会备份失败。比如主库的版本是12.8,备份时也需要使用12.8的pg_basebackup。修改完成后,启动备库容器。原创 2024-02-21 17:18:58 · 675 阅读 · 0 评论 -
postgresql流复制同异步分析
postgresql流复制同异步详解。原创 2023-05-17 17:13:15 · 386 阅读 · 0 评论 -
数据库数据完整性问题(块折断)
数据库数据完整性问题(块折断)数据库保证数据库完整性(解决块折断问题)当前主要有如下三种方式:操作日志加double write机制(mysql采用该机制);操作日志加full page write机制(postgresql同时采用这两种机制);混合方式,既支持操作日志加double write,又支持操作日志加full page write(openguass采用该机制);基本概念块折断数据库在将数据写入磁盘时一般是按page写入磁盘的,而page的大小一般与操作系统的文件块原创 2022-05-31 09:37:15 · 681 阅读 · 0 评论 -
pg_walreceiver
pg_walreceiver启动流程启动receiver进程#mermaid-svg-pZwpfiroRFQyO6to {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-pZwpfiroRFQyO6to .error-icon{fill:#552222;}#mermaid-svg-pZwpfiroRFQyO6to .error-text{fill:#552222;str原创 2022-05-23 18:05:09 · 318 阅读 · 0 评论 -
pg_walsender
pg_walsender交互接口全局变量/* global state */extern PGDLLIMPORT bool am_walsender; // 是否是walsender进程extern PGDLLIMPORT bool am_cascading_walsender; // 是否是级联walsenderextern PGDLLIMPORT bool am_db_walsender; // 是否连接到数据库extern PGDLLIMPORT bool wake_wal_sender原创 2022-05-05 17:06:53 · 253 阅读 · 0 评论 -
sql_test
sql_testTPC(事务处理性能委员会:Transaction Processing Performance Council),是由数 10 家会员公司创建的非盈利组织,总部设在美国。TPC 的主要成员是计算机软硬件厂家,其主要成员包括 IBM,HP,Oracle,Microsoft 等。TPC 的功能是制定商务应用标准程序(Benchmark)的标准规范,性能和价格度量,并管理测试结果的发布。TPC 不给出基准测试程序的代码,而只给出基准程序的标准规范。任何厂家或其它测试者都可以根据规范,最优的构造原创 2022-05-05 10:31:27 · 276 阅读 · 0 评论 -
pg_replication
pg_replication基本概念逻辑复制逻辑复制是将数据重新执行一次insert、update或delete。逻辑复制则允许在数据层面复制,并在安全性上提供更细粒度的控制。流复制(物理复制)实现方式是将wal日志中记录的内容按照确切的块地址逐字节的拷贝到备库,因此主备之间数据分布是一致的,这意味着在主备机器上,同一条记录的ctid是相同的。逻辑解码逻辑解码是提取数据库表的所有永久修改到一个连贯的、容易理解的格式 (不需要详细的数据库内部状态知识就可以解读)的过程。复制槽原创 2022-04-28 18:26:49 · 1250 阅读 · 0 评论 -
WalWriter
WalWriter预写式日志WAL机制是对数据文件的修改必须是只能发生在这些修改已经记录到日志之后,即先写日志再写数据。WalWriter进程负责定期从WAL缓冲区写出日志,并确定写出日志的起点和终点来调用XlogWriter将日志写入到磁盘。参数配置wal_level控制wal存储的级别。wal_level确定有多少信息被写入到WAL。默认值是replica,它添加了WAL归档信息,包括只读服务器(流复制)所需的信息。还可以将其设置为minimal,即只写入从崩溃或立即关闭中恢复所需的信息。原创 2022-04-25 16:26:28 · 393 阅读 · 0 评论 -
pg_io_调优
pg_io_调优检查点检查点是数据库的关键行为,同时也是IO敏感的;其保证了数据库的一致性状态,定期执行检查点是很重要的,确保数据变化持久保存到磁盘中并且数据库的状态是一致的。不当的检查点配置会导致IO性能问题。我们需要关注检查点的配置,确保没有任何IO的尖刺(这同样也取决于磁盘性能的好坏,以及数据文件的组织)。checkpoint_timeout统自动执行checkpoint之间的最大时间间隔。系统默认值是5分钟,这个值可以在压测过程中调大,尽量避免执行checkpoint争抢IO。ma原创 2022-04-25 16:22:39 · 1426 阅读 · 0 评论 -
postgresql进程之BgWriter
BgWriterBgwriter是一个Background Writer进程的简称,Bgwriter会定时将缓存中一些已经更改的数据(脏缓冲区)写入到磁盘。BgWriter是postmaster通过fork创建的子进程。源码分析启动主进程fork子进程#mermaid-svg-MeTM8vpGMQzNuLFf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-原创 2022-04-22 17:32:34 · 799 阅读 · 0 评论 -
postgresql 存储管理
pgsql 存储管理内存管理包括共享内存、本地内存、内存上下文、缓冲区的管理。共享内存共享内存中存储了所有进程的公共数据,例如锁变量、进程通信状态、共享缓冲区中的页面块等。本地内存为每个后台进程所专有,是他们的工作区域,存储着属于该进程的Cache(高速缓存)、事务管理信息、进程信息等内存上下文内存上下文(MemoryContext)用于统一管理内存分配和回收。缓冲区磁盘中的文件块读入内存,被存放在缓冲区中, 称之为页面块或缓冲块。一个标准缓冲块大小为8K。PG设立了共享原创 2022-04-22 16:15:14 · 1236 阅读 · 0 评论 -
postgresql之repmgr
repmgrrepmgr用于管理 PostgreSQL 服务器集群内的复制和故障转移。repmgr 支持并增强了 PostgreSQL 的内置流复制,它提供了一个单一的读/写主服务器和一个或多个只读备用服务器。repmgr 流复制管理工具对 PostgreSQL 集群节点的管理是基于分布式的管理方式。集群每个节点都具备一个 repmgr.conf 配置文件,用来记录本节点的 ID、节点名称、连接信息、数据库的 PGDATA 目录等配置参数。在完成参数配置后,就可以通过 repmgr 命令实现对集群节点的原创 2022-04-22 15:36:06 · 1771 阅读 · 0 评论 -
postgresql架构
pgsql架构整体模式pgsql采用C/S架构(客户端/服务端)模式。应用层通过INET或者Unix Socket利用既定的协议与数据库服务器进行通信。pgsql把客户端称为前端,把服务端称为后端。前端通过调用libpq来与后端通信。后端由多个进程组成,前端发送网络数据报文(查询请求)到后端,后端解析请求后回复相应的报文。原创 2022-04-11 16:25:41 · 3698 阅读 · 0 评论