使用navicat连接openGauss数据库 openGauss 服务设置 主要修改 pg_hba.conf 和 postgresql.conf 两个文件。找到这两个文件所在目录 极简版所在目录:/opt/software/openGauss/data/single_node/ 企业版所在目录:/opt/huawei/install/data/dn 注意:使用普通用户,不要使用 root 用户 修改 pg_hba.conf 文件 修改 pg_ 数据运维 2023-09-27 Escape
PostgreSQL 与 MogDB/openGauss 之 角色 概述 MogDB/openGauss是基于PostgreSQL开发的,对象角色这部分数据库对象在兼容PG的基础上,又做了一些功能增强,本章内容做一个关于用户角色在两类数据库之间的对比。MogDB/openGauss 用户 and PostgreSQL 用户 PostgreSQL14 MogDB3.0.0 用户与角色关系 用户是角色别名 同 PG 用户属性 共13个 共25个 内置角色 共8个 共8 数据运维 2023-09-25 LOVEHL^ˇ^
openGauss修改pg_hba导致节点无法启动及cm主备切换 【我和openGauss的故事】openGauss修改pg_hba导致节点无法启动及cm主备切换 一、状态正常 [omm@Euler1 ~]$ gs_om -t status --detail [ CMServer State ] node node_ip instance state -------------------------------------------------------- 数据运维 2023-09-25 张二河
PostgreSQL 16 发布了!增强功能有哪些? PostgreSQL 16 现已发布,此版本包含许多新功能和增强功能;包括: 允许并行化 FULL 和内部右 OUTER 哈希联接 允许从备用服务器进行逻辑复制 允许逻辑复制订阅者并行应用大型事务 允许使用新的 pg_stat_io 视图监控 I/O 统计信息 添加 SQL/JSON 构造函数和标识函数 提高 vacuum freezing 的性能 添加对 pg_hba.conf 中用户名和数据库 数据运维 2023-09-18 大猫
译 The Part of PostgreSQL We Hate the Most(PG的MVCC咋这么烂doga) 最近学习了MySQL的MVCC实现,然后看到了这篇博客详细介绍了PG MVCC的实现,以及这种实现有哪些问题。既能深入理解数据库MVCC实现基本原理,也能对比MySQL和PG的MVCC实现,理解为什么PG的MVCC深受吐槽,所以翻译了这篇文章。 原文链接 当前有大量的数据库可供选择(到2023年4月有897个)。在2000年代,最普遍的选择是MySQL。最近5年,PostgreSQL成为互联网上最 开发运维 2023-09-16 剑圣无痕
PostgreSQL create extenstion 创建扩展逻辑分析 PostgreSQL 支持 create extenstion 语法创建扩展,扩展能够很方便地将第三方开发的插件集成到 PostgreSQL 数据库中,比如时序数据库 timescaledb 就是作为 PG 的一个扩展集成到数据库系统中,让 PG 能够支持更加强大的时序数据的存储与查询能力。 使用 psql 连接到 pg server,执行创建扩展的语句,如下: CREATE EXTENSION 数据运维 2023-08-15 向阳逐梦
PostgreSQL Background Worker 解析 1. Background Worker 简介 PostgreSQL 提供了一种叫作后台工作进程(Background Worker)的特性,用来在独立的进程中执行用户提供的代码,入口函数可以是 pg 内核源码中的函数,也可以是动态库中的函数。这些后台工作进程被 postmaster 启动、停止和监控,他们的生命周期与 pg server 密切联系。 Background Worker 在创建时能 数据运维 2023-08-15 LOVEHL^ˇ^
PostgreSQL 内存上下文 MemoryContext MemoryContext 是 PG 内存上下文管理模块,内核代码可以在指定的 MemoryContext 上动态分配内存,扩容内存以及释放内存,使用 MemoryContext 便于内存管理,内存使用统计以及防止内存泄露。 PG 内核代码中大量使用的 palloc,repalloc,pfree 等都是基于 MemoryContext 内存管理机制对动态申请的内存进行管理。 1. MemoryCo 数据运维 2023-08-15 LOVEHL^ˇ^
PostgreSQL full_page_writes 机制分析 对于 PG 的 full page write 和 MySQL 的 double write 机制一直有些困惑,如果没有这些机制,是不是在页断裂的情况下数据一定就有问题?如果应用 redo log 或者 wal 是幂等设计的,在刷脏页的过程中,无论怎么 crash,只要支持幂等,是否就无需担心页断裂的问题。 带着上述问题,结合 PG 的实现,大致有了答案,以下分析如果有不对的,欢迎指出。 为什么 数据运维 2023-08-15 张二河
PostgreSQL pg_rewind 执行过程分析 1. pg_rewind 功能描述 pg_rewind 是 PostgreSQL 提供的一个工具,在主库故障切换后,用于修复旧主的流复制。PG 主备切换后,流复制的时间线会发生变化,在异步复制场景下,旧主产生的 WAL 日志可能有部分未同步到备库,此时做故障切换,就会导致新的主库丢失一部分数据,而旧主恢复后,也无法与新主库建立复制关系,因为旧主有一些事务需要回滚,然后才能与新主建立复制关系。pg_ 数据运维 2023-08-15 醒在深海的猫
PostgreSQL pg_ctl 工具 pg_ctl 是 PostgreSQL数据库自带的实用工具,具有以下功能: 初始化PostgreSQL数据库实例 启动,停止,重启PostgreSQL数据库服务 查看PostgreSQL数据库服务的状态 让数据库重新读取配置文件 将备库提升为主库 给指定的进程发送信号 Usage: pg_ctl init[db] [-D DATADIR] [-s] [-o OPTIONS] pg_ctl star 数据运维 2023-08-15 三掌柜
PostgreSQL备份工具pg_dump和pg_dumpall PostgreSQL使用 pg_dump 和 pg_dumpall 进行数据库的逻辑备份,pg_dumpall 是对整个数据库集群进行备份,pg_dump 可以选择一个数据库或者部分表进行备份。 pg_dump 将表结构及数据以SQL语句的形式导出到文件中,恢复数据时,将导出的文件作为输入,执行其中的SQL语句,即可恢复数据。 pg_dump 能够对正在使用的PostgreSQL数据库进行备份,并 数据运维 2023-08-15 张二河
PostgreSQL Latch 实现逻辑 源码版本:pg 11.9 源码文件:src/backend/storage/ipc/latch.c Latch 是 pg 中使用较多的一种数据结构,用于等待某个事件的发生或者超时,常见的 Latch 相关函数如下: InitLatch(),初始化一个非共享型 Latch InitSharedLatch(),初始化一个共享型 Latch WaitLatch(),等待 Latch ResetLatch 数据运维 2023-08-15 剑圣无痕
PostgreSQL同步复制实现逻辑分析 源码版本:pg 14.3 源文件:src/backend/replication/syncrep.c 原文地址:https://www.mytecdb.com/blogDetail.php?id=239 1、PG同步复制简介 同步复制是 pg 9.1 版本引入的新特性,事务提交必须等待事务对应的 lsn 在同步的备库接收到之后,才能提交成功。同步复制的实现逻辑主要集中在主节点,主节点记录了哪些备节 数据运维 2023-08-15 Escape
PostgreSQL复制槽源码分析 源码版本:PG 13.3 源码文件:slot.c slotfuncs.c 1. 什么是 PG 复制槽? PG 复制槽用于记录主备流复制的状态,主要目的是防止 wal 日志被过早的删除,导致备库流复制中断。复制槽是有状态的,能够持久化到磁盘上,允许宕机、重启场景下进行恢复。在有复制槽的场景下,即使备库关闭很长时间,主库也会为其保留足够的 wal 日志,直到备库恢复接收完这些 wal 日志,主库才会将 数据运维 2023-08-15 LOVEHL^ˇ^
PostgreSQL 子事务逻辑分析 源码文件:src/backend/access/transam/subtrans.c 源码版本:PG 13.3 1. 子事务的使用 PG 提供了一组 savepoint 相关的命令用于子事务操作,子事务相关例子如下: 定义一个保存点: savepoint savepoint_name; 销毁一个保存点: release [savepoint] savepoint_name; 回滚到一个保存点: r 数据运维 2023-08-15 大白菜程序猿
PostgreSQL 初始化、启动、停止数据库 PostgreSQL安装完成之后,需要先初始化数据库,然后才能启动数据库服务。PostgreSQL安装目录下的bin目录中提供了很多命令用于数据库的初始化、数据库启动和停止等功能,本文用到的命令如下: initdb pg_ctl 0. 环境准备 PostgreSQL版本:11.5 创建pg用户 useradd pg 创建PostgreSQL数据目录: mkdir -p /data/pg/ chow 数据运维 2023-08-15 大猫
PostgreSQL访问控制,允许&禁止指定IP访问 PostgreSQL中允许哪些IP的机器能够访问数据库是由配置文件pg_hba.conf控制的,通过配置该文件,能够指定哪些ip可以访问,哪些ip不可以访问,以及访问的认证方式。hba是host-based authentication的缩写。 原文地址: https://mytecdb.com/blogDetail.php?id=77 initdb在初始化数据目录的时候,会生成一个默认的pg_h 数据运维 2023-08-15 LOVEHL^ˇ^
PostgreSQL搭建主备流复制 主备复制架构是数据库使用最广泛的一种架构,当主库发生故障时可以将备库提升为主,快速恢复业务。主备架构另外一个功能是提供负载均衡,读业务可以路由到备库,减少主库的负载。本文主要介绍PostgreSQL主备流复制的搭建方法。 PostgreSQL版本:11.5 2台机器,搭建PG主备流复制 主库:192.168.56.101 备库:192.168.56.102 一、环境准确(主备库都要执行) 创建pg 数据运维 2023-08-15 大树
PostgreSQL 延迟复制 pg 主备流复制可以设置人为的复制延迟,这个功能在某些场景下有巨大的作用,比如误删数据的恢复。通过设置一个延迟复制的备库,主库上被误删的数据,可以在备库上找回来。延迟时间可以自定义设置,超过延迟时间,则无法找回误删的数据。下面通过一个案例来了解 pg 延迟复制的用法。 环境: 主库:192.168.56.200 备库:192.168.56.201 数据库版本:pg 14.3 一、初始化并启动主库: 数据运维 2023-08-15 宇宙之一粟