为了解决这些问题,ceph引入了归置组的概念,即PG。 # PG概念 PG是一个逻辑概念,linux系统中可以直接看到对象,但是无法直接看到PG。...它在数据寻址时类似于数据库的索引:每个对象都会固定映射进一个PG中,所以当我们要寻找一个对象时,只需要先找到对象所属的PG,然后遍历这个PG就可以了,无需遍历所有对象。...PG是一种间址,PG的数量有限,记录PG跟OSD间的映射关系可行,而记录object到OSD之间的映射因为数量巨大而实际不可行或效率太低。...因为对象数无法事先知道,但是有了pg,先把对象映射到pg,然后只需计算pg到osd的映射就可以了,pg数是一定的,这样算法设计可能会简单一点。 # 原理 对象时如何映射进PG的?...Backfilling 当一个新的OSD加入到集群后,CRUSH会重新规划PG将其他OSD上的部分PG迁移到这个新增的PG上。
postgresql weekly推荐了几款备份恢复工具,其中一个是pg_dumpbinary。 pg_dumpbinary 是一个用于转储PG数据库的工具,其中数据以二进制格式转储。...这种场景下,pg_dump会以输出格式导出数据,造成数据丢失。 3)任何其他使用二进制的场景会很有用。 如何您在这种情况下,pg_dumpbinary将通过二进制格式转储PG数据库来帮助您。...在其他所有情况下,必须使用PG分发的pg_dump/pg_restore工具。...安装 pg_dumpbinary和pg_restorebinary都是perl程序,除了perl本身、perl模块DBD::pg和DateTime外不需要任何其他东西。...PG命令pg_dump、pg_restore和psql必须通过PATH环境变量设置才可用。数据通过gzip压缩。
coroot-pg-agent 和 postgres_exporter 的不同之处在于, coroot-pg-agent 主要是根据 pg_stat_statements 这个extension来采集sql...coroot-pg-agent 的部署也很简单,参考官方github即可。...说明: 我这里演示的pg14,运行在1921端口上 create role coroot_pg_agent with login password '123456'; grant pg_monitor...to coroot_pg_agent; 编辑pg配置文件,添加如下 shared_preload_libraries = 'pg_stat_statements' 然后重启生效 登录pg,任一个...docker run -d --name coroot-pg-agent -p 9096:80 --env DSN="postgresql://coroot_pg_agent:123456@192.168.31.181
/var/lib/pgsql/14/data/postgresql.conf //允许远程图片[root@liangcb ~]# vim /var/lib/pgsql/14/data/pg_hba.conf
简介 https://github.com/jobinau/pg_gather This is a single SQL-only script for gathering performance and...安装 wget https://codeload.github.com/jobinau/pg_gather/tar.gz/refs/tags/v16 -O pg_gather-16.tar.gz tar...-zxvf pg_gather-16.tar.gz cd pg_gather-16 报告生成 -- 采集数据 psql -U postgres -h 172.17.0.2 -X -f gather.sql...> out.txt -- 导入数据 sed -e '/^Pager/d; /^Tuples/d; /^Output/d; /^SELECT pg_sleep/d; /^PREPARE/d; /^\s...结果 小麦苗PG巡检脚本 请参考:https://www.xmmup.com/pgshujukuxunjianjiaoben.html
PG备份恢复工具pg_probackup pg_probackup是管理PG数据库集群备份和恢复的工具。用于执行周期性备份PG实例。兼容PG9.5,,96,10,11,12,13。...备份位于远程系统上的PG实例或远程恢复备份 11、从备机上进行备份。通过从备机上进行备份来避免主机上的额外负载。 12、外部目录。...仅还原制定的数据库或从转储中排出指定数据库 未管理备份数据,pg_probackup创建一个备份目录。这个目录存储所有备份文件包括额外的元信息,以及WAL归档。...限制:备份和转储的PG必须block_size和wal_block_size兼容且有相同主版本号;Windows下不支持ssh远程备份;ssh远程备份时,pg_probackup的版本必须相同。...原文 https://github.com/postgrespro/pg_probackup
PG使用SQL查询管理用户账户,包括密码。如果启用log_statement,log_min_error_statement为log,那么用户密码就有可能出现在server log中。
PostgreSQL 在PG15 版本之前如果想了解wal 日志中的信息,只能使用上期提到的工具去查看,但从PG15这个版本,查看 wal 日志的内容的方式变化了可以在数据库内部进行查看。...CREATE EXTENSION pg_walinspect; 这里pg_walinspect函数在PG16 有增强,添加了如下的函数 function pg_get_wal_block_info()...) functions pg_get_wal_records_info(), pg_get_wal_stats() and pg_get_wal_block_info() accept an LSN value...pg_get_wal_stats_till_end_of_wal() removed (commit 5c1b6628) 我们通过下面的实验来快速了解pg_walinspect的工作, postgres...=# select now(),pg_current_wal_lsn(); elect now(),pg_current_wal_lsn(); now
PG架构概览
一、背景 查看现有Postgre数据库的版本号 二、方式 1.SQL --两种都可 select version() ; show server_version; 2.pg_config pg_config...|grep VERSION 3.pg_controldata pg_controldata --version 4.postgres postgres --version 5.查看告警日志 more postgresql-Mon.log
下面看一个《PostgreSQL实战》书上page202的例子: 由于PG的MVCC机制,当运行大量的更新操作后,会有索引膨胀的现象。...(indexrelid) as index_size, idx_scan, idx_tup_read, idx_tup_fetch from pg_stat_user_indexes where indexrelname...in (select indexname from pg_indexes where schemaname ='public' and tablename='testdata'); schemaname...(indexrelid) as index_size, idx_scan, idx_tup_read, idx_tup_fetch from pg_stat_user_indexes where indexrelname...in (select indexname from pg_indexes where schemaname ='public' and tablename='testdata'); schemaname
------ src/backend/postmaster/pgstat.c | 33 +++++++++++++++++++++++----- src/bin/pg_ctl.../pg_ctl.c | 7 +++--- src/include/access/slru.h | 1 + src
1、收到异常情况如下: health: HEALTH_ERR 2 scrub errors Possible data damage: 1 pg inconsistent 2、查看详细信息 ceph...health detail HEALTH_ERR 2 scrub errors; Possible data damage: 1 pg inconsistent OSD_SCRUB_ERRORS...2 scrub errors PG_DAMAGED Possible data damage: 1 pg inconsistent pg 2.2f5 is active+clean+inconsistent..., acting [22,2,27] 3.找出异常的 pg,然后到对应的osd所在主机上修复。
----------------------------/home/git/repositories/postgresql.git---------------...
; /*PG_CONTROL_VERSION */uint32 catalog_version_no; /* seecatversion.h */DBState state...; /* see enum above */pg_time_t time; /* time stamp of last pg_control update */XLogRecPtr...后二个函数没有使用SLRU算法,直接调用pg_fsync方法把相应文件刷到磁盘上对应文件。...,第一次数据页的变化会导致整个页面会被记录在XLOG日志中 检查点的开销比较高,可以用checkpoint_warning自检,相应调大checkpoint_segments 检查点的位置保存在文件 pg_control...,pg_control文件被损坏可能会导致数据库不可用 其中,如果pg_control文件损坏,在数据库崩溃恢复时可能出现一些问题,这些问题我们将在分析PostgreSQL数据库崩溃恢复时具体分析。
pg_waldump 可以解决这个问题,通过pg_waldump来解析pg_wal 日志来分析和解决一些问题。...pg_waldump 是PG 内部用来对 wal日志进行查看的命令,值需要pg_waldump执行命令对于要读取的日志有只读的权限即可。...pg_current_wal_lsn(); pg_current_wal_lsn -------------------- 1/7C000328 (1 row) postgres=# create...(),pg_walfile_name(pg_current_wal_lsn()),pg_walfile_name_offset(pg_current_wal_lsn()); pg_current_wal_lsn...pg_wal 中的记录 对于pg_wal 日志的理解和分析,可以通过pg_waldump命令来进行更详细的分解和解析。
地址: https://github.com/wrouesnel/postgres_exporter/releases
前言 在某些场景下Ceph集群会出现stale的情况,也就是ceph集群PG的僵死状态,这个状态实际上是无法处理新的请求了,新的请求过来只会block,那么我们如何去恢复环境 实践过程 首先模拟stale...集群这个时候就会出现stale的情况了,因为两份数据都丢了,在一些环境下,数据本身就是临时的或者不是那么重要的,比如存储日志,这样的环境下,只需要快速的恢复环境即可,而不担心数据的丢失 处理过程 首先用ceph pg...dump|grep stale 找出所有的stale的pg 然后用 ceph force_create_pg pg_id 如果做到这里,可以看到之前的stale的状态的PG,现在已经是creating
PostgreSQL在写入频繁的场景中,可能会产生大量的WAL日志,而且WAL日志量远远超过实际更新的数据量。我们可以把这种现象起个名字,叫做“WAL写放大”,...
领取专属 10元无门槛券
手把手带您无忧上云