pg专题

ceph中pg与pool关系

在Ceph中,PG(Placement Group)和Pool是非常重要的概念,它们在Ceph的存储架构中扮演着关键角色。理解这些概念有助于更好地管理和优化Ceph集群。下面详细介绍这两个概念及其相互关系。 Pool(存储池) 定义: Pool(存储池)是Ceph中逻辑上的存储单元,用于组织和管理数据。用户可以通过创建不同的Pool来为不同的应用程序或用途分配存储空间。 类型: Pool可以

mysql和pg等数据库之间的数据迁移实战分享

mysql和pg等数据库之间的数据迁移是常见的问题:比如一开始使用Oracle,后来想使用mysql,而且需要把Oracle数据库的数据迁移到mysql里面;后期有想使用pg数据库,同时需要把Mysql数据库的数据迁移到pgl里面,等等诸如此类数据迁移,都是一个重要问题。基于此,我们今天分享mysql数据迁移到pg数据库的案例。方案如下: 一、客户端迁移 如果数据量比较小,并且win电脑端可以

pg小版本升级

文章目录 一、升级计划二、升级步骤1、安装目标版本数据库2、停止数据库实例3、备份数据目录4、调整环境变量,PGHOME/LD_LIRARAY_PATH5、使用新版本启动数据库 三、检查升级后的数据库 一、升级计划 pg14.0 -> pg14.9 查看当前版本信息: select version(); 原来环境变量: export PGHOME=/home/post

pg 唯一性约束修复

先说一下背景,之前我用的 pg 镜像是 postgres:11.18-bullseye,后来被升级成了 postgres:11.20-alpine3.18,这个造成的其中一个后果简而言之是 pg 对字符串的排序发生了变化,比如原先认为 A > B,现在则变成了 A < B。由此,就有可能破坏数据的唯一性约束。不仅如此,只要索引列包含字符串类型的字段,也会有问题。 为了方便继续描述,假设有个 te

【PG】常见数据库、表属性设置

PG的常见属性配置方法 数据库复制、备份相关表的复制标识单表操作批量表操作 链接 数据库复制、备份相关 表的复制标识 单表操作 通过ALTER语句单独更改一张表的复制标识。 ALTER TABLE [tablename] REPLICA IDENTITY FULL; 批量表操作 通过代码块的方式,对某个schema中的所有表一起更新其复制标识。 SELECT ta

通过sql修改pg数据库的表结构

首先pg数据库是支持sql标准的,所以我们可以使用标准sql对pg进行操作 1、修改一个表的名称--使用rename to关键字 alter table student rename to student1; 2、修改一个字段的名称--使用rename xx to xx alter table student1 rename name to student_name; 3、修改一个字

【无标题】为什么 pg_rewind 在 PostgreSQL 中很重要?

文章目录 pg_rewind 的工作原理使用 pg_rewind 的要求Basic Usage of `pg_rewind`重要注意事项:为什么 pg_rewind 需要干净关闭?无法进行干净关闭的情况处理不正常关机结论 pg_rewind 是 PostgreSQL 中的一个实用程序,用于将一个数据库集群与另一个数据库集群同步,通常是在故障转移或主服务器和备用服务器角色切换之后。

PostgreSQL数据库内核(五):创建内置函数pg_test_function

目录 函数定义 函数注册/声明 函数验证 一般接触到的普通的web段上层应用都是基于http的REST传递数据,数据库则使用安全可靠的tcp长连接进行数据交互,在拓展pg功能时候,有几个交互验证的方式: 内置sql函数(如字符串处理、数值计算、日期时间处理、类型转换函数);命令行(checkpoint), postgres=# SELECT trim(both ' ' FROM

pg_config executable not found

安装psycopg2时候提示pg_config executable not found python - How to find pg_config path - Stack Overflow 首先下载postgres app 并安装好 Postgres.app Downloads 然后将postgres的pg_config配置到环境变量中 export PATH=$PATH:/App

让PG停摆一周的大会?2024 PGConf.dev 技术大盘点(下)

PGCon.Dev 的前身是 PGCon —— 最知名的 PostgreSQL Hacker 年度聚会,也可以说是决定 PostgreSQL 未来的会议。从 2007 年成立以来,一直都是在加拿大渥太华举办至今。 有多隆重呢?PG 核心组的 Peter Eisentraut 在会后做了一个统计,在这次 PGCon.Dev 期间 PostgreSQL 代码库没有一次 Commit 发生,出现了

PostgreSQL源码分析——pg_archivecleanup

pg_archivecleanup用于清理PostgreSQL WAL归档文件。指定归档目录,指定一个最老的日志段文件(在此之前的WAL日志都删掉), 用法如下: postgres@slpc:~$ pg_archivecleanup --helppg_archivecleanup removes older WAL files from PostgreSQL archives.Usage:pg

postgreSQL随笔-总结一下PG的查询流程

客户端发起查询请求 客户端与服务进程进行通信中有两个关键的共享缓冲区: PgRecvBuffer:存储服务端接收请求,默认8192字节PqSendBuffer:存储服务端发送请求,默认8192字节 客户端与服务进程之间存在两种连接方式:网络连接与本地访问;根据这两种不同的连接方式,PG可以获取客户端发送的请求,这时查询的命令将会被保存到inBuf里。 static intReadComm

PostgreSQL源码分析——pg_waldump

PG中有个可以打印WAL日志信息的工具,pg_waldump,对于开发人员来说,掌握该工具是十分有必要的。 用法 具体用法这里不去详解,可见官网pg_waldump文档。 postgres@slpc:~$ pg_waldump --helppg_waldump decodes and displays PostgreSQL write-ahead logs for debugging.Us

pg表空间和mysql表空间的区别

一、表空间的定义 1、在pg中表空间实际上是为表指定一个存储的目录。并且在创建数据库时可以为数据库指定默认的表空间。创建表和索引时可以指定表空间,这样表和索引就可以存储到表空间对应的目录下了。 在pg中一个库中可以有多个表空间,一个表空间可以被多个库使用,属于是多对多关系。 2、在mysql中表空间就是数据目录中的库文件中的表.ibd文件,在mysql中一个表就是一个表空间,也可以自己创建表

pg修炼之道学习笔记

一、数据库逻辑结构介绍 1、一个pg数据库服务下有多个db(多个数据库),当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他数据库的内容(限制) 2、表索引:一个pg数据库服务包含多个db,一个db下面多个模式(schema),一个模式下多个对象(表,索引,视图等) 3、一个数据库服务叫做一个实例,一个数据库服务下可以有多个数据库,但是不能属于多个实例。 二、数据库基

PostgreSQL的系统视图pg_statio_all_tables

PostgreSQL的系统视图pg_statio_all_tables pg_statio_all_tables 是 PostgreSQL 中的一个系统视图,提供数据库中所有表的 I/O 数据。这些信息可以帮助你理解表的读取和写入操作,从而优化数据库性能。 下面是 pg_statio_all_tables 系统视图的字段解释: relid: 表的 OID(对象标识符)。schemaname:

PostgreSQL的扩展(extensions)-常用的扩展-pg_stat_monitor

PostgreSQL的扩展(extensions)-常用的扩展-pg_stat_monitor pg_stat_monitor 是 PostgreSQL 的一个扩展,它提供了一种先进的监控和统计 SQL 查询的方式,相比于标准的 pg_stat_statements,它提供了更丰富和详细的查询统计信息。pg_stat_monitor 通过捕获和分析 SQL 查询的执行情况,帮助数据库管理员优化数

通过u盘启动禁用驱动签名和PG

EfiGuard下载地址 https://github.com/Mattiwatti/EfiGuard 使用步骤 Booting the loader 1、Download EfiGuard and rename EFI/Boot/Loader.efi to bootx64.efi. 2、Place the files on a boot drive such as a FAT32 for

PostgreSQL的视图pg_rules

PostgreSQL的视图pg_rules pg_rules 是 PostgreSQL 中的一个系统视图,用于显示数据库中存在的规则(rules)的相关信息。规则是一种允许在表的查询、插入、更新或删除操作上定义自定义行为的机制。通过查询 pg_rules 视图,数据库管理员和开发人员可以查看当前数据库中定义的所有规则信息。 pg_rules 视图的主要列 列名类型描述schemanamena

PostgreSQL的视图pg_user

PostgreSQL的视图pg_user pg_user 是 PostgreSQL 中的一个系统视图,用于显示数据库中的用户信息。注意,pg_user 是一个兼容视图,它基本上是从 pg_roles 中筛选出具有登录权限(rolcanlogin 为 true 的角色)。因此,我们可以使用它来查看数据库系统中所有能够登录的用户的基本信息。 pg_user 视图的主要列 列名类型描述usenam

PG sql调优案例学习

一,开发范式 1.不要轻易把字段嵌入到表达式 例:在sal列上有索引,但是条件语句中把sal列放在了表达式当中,导致索引被压抑,因为索引里面储存的是sal列的值,而不是sal加上100以后的值。 在条件中查询谁的工资+100=2000。这样写即使在sal上有索引也会走全表扫描,主要原因就是sal列存放的是sal的值,并不是sal+100的值, 改写思路:通过等式等换,把sal列从表达式

PostgreSQL的视图pg_tables

PostgreSQL的视图pg_tables pg_tables 是 PostgreSQL 中的一个系统视图,用于显示当前数据库中所有用户定义的表的信息。这个视图提供了关于表的名称、所属模式(schema)、所有者以及表类型等详细信息。 pg_tables 视图的主要列 列名类型描述schemanamename表所在的模式(schema)名称。tablenamename表的名称。tableo

PG 数据库常用参数调整

1.shard_buffers Postgresql使用自己的缓冲区,也使用操作系统缓冲区。这意味着数据存储在内存中两次,首先是 Postgresql缓冲区,然后是操作系统缓冲区。 与其他数据库不同, Postgresql不提供直接IO。这称为双缓冲(就是磁盘中的时候读的时候先放在数据库的缓冲区,再放在操作系统缓冲区)。 Postgresql缓冲区称为 shared buffers,它是大多

PostgreSQL的视图pg_stat_user_indexes

PostgreSQL的视图pg_stat_user_indexes pg_stat_user_indexes 是 PostgreSQL 中的一个系统视图,用于显示用户表中索引的统计信息。这个视图提供了关于索引使用和性能的详细数据,包括扫描次数、读取的元组数等,帮助数据库管理员了解索引的使用情况及其对查询性能的影响。 pg_stat_user_indexes 视图的主要列 列名类型描述reli

PostgreSQL的视图pg_stat_user_tables

PostgreSQL的视图pg_stat_user_tables pg_stat_user_tables 是 PostgreSQL 中的一个系统视图,用于显示用户定义的表的统计信息。这些统计信息包括表的访问情况、修改情况以及很多其他的性能指标。这个视图为数据库管理员提供了丰富的数据,可以帮助他们进行表的监控和性能分析。 pg_stat_user_tables 视图的主要列和其含义 列名类型描

PG 索引内部结构验证

索引结构验证: 一层结构: create table tab1(id int primary key,info text);insert into tab1 select generate_series (1,100),md5(random()::text); 创建一个表插入一百条数据。 对表进行分析: vacuum analyze tab1; 查看me