PG基础管理
文章平均质量分 84
执笔画情ora
数据库管理系统
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PostgreSQL数据库管理-维护案例-杀会话
摘要:PostgreSQL数据库通过pg_terminate_backend和pg_cancel_backend函数实现会话终止功能,前者强制断开连接并回滚事务,后者仅取消当前查询。执行前需通过pg_stat_activity视图定位目标会话PID,重点关注active和idle in transaction状态。杀会话会立即释放锁但大事务回滚可能产生性能开销,建议优先尝试取消查询,避免业务高峰期操作,并设置自动化脚本清理异常会话。操作后需分析根因,解决长事务或连接泄露问题。该功能是解决锁等待的有效手段,但原创 2026-03-23 16:15:36 · 482 阅读 · 0 评论 -
Postgresql管理-杀会话还是取消会话?
PostgreSQL提供两种终止连接方式:pg_cancel_backend()仅取消当前查询但保持连接,适用于终止耗时SQL;pg_terminate_backend()会强制断开整个连接,适用于处理僵死会话。操作步骤:1)通过pg_stat_activity视图查询目标连接信息;2)根据需求选择合适函数执行终止。建议优先使用较温和的pg_cancel_backend,无效时再考虑强制终止。批量处理可通过组合查询实现,如终止指定数据库的空闲连接。原创 2026-03-23 11:47:15 · 481 阅读 · 0 评论 -
Postgresql管理-锁管理与分析
锁是一种轻量级的锁,主要用于读取操作。它允许高并发读取,并且在读取期间防止表结构被修改。通过这种锁机制,PostgreSQL能够在保证数据一致性的同时提供良好的并发性能。PostgreSQL中有多种锁模式,每种锁模式都有其特定的用途和兼容性规则。:可以有多个事务同时持有。:可以有多个事务同时持有。原创 2026-03-21 21:25:35 · 100 阅读 · 0 评论 -
PG/mysql/oracle--- 长事务对后续事务影响分析
摘要:本文分析了PG和MySQL中长事务导致的锁阻塞情况。在PG中,VACUUM FULL需要排它锁,会被长事务的共享锁阻塞,进而阻塞后续写操作;在MySQL中,FLUSH TABLES...WITH READLOCK会获取全局读锁,阻塞所有写操作和部分读操作,但已存在的读操作不受影响。两种情况下,系统性能都会因锁等待而下降,严重时可能导致系统崩溃。原创 2026-03-21 21:15:47 · 305 阅读 · 0 评论 -
PG数据库管理 --对象(relation管理)总结
UNLOGGED表是从PostgreSQL9.1版本开始新增的一种表,主要是通过禁止产生WAL日志的方式提升写性能。因为没有WAL日志,所以表的内容无法在主备库直接同步,如果此时数据库异常宕机,表的内容将丢失,所以可以把UNLOGGED表称为“半临时表”。当然如果数据库是正常关机的,则UNLOGGED表的内容不会丢失。注意 在PostgreSQL中,不管是事务级的临时表还是会话级的临时表,当会话结束时都会消失,这与Oracle数据库不同,在Oracle数据库中,只是临时表中的数据消失,而临时表还存在。原创 2026-03-13 17:25:20 · 305 阅读 · 0 评论 -
postgresql数据库管理-元组管理
PostgreSQL的元组操作原理基于MVCC机制,通过事务ID和版本链实现数据可见性控制。插入操作会创建新元组并记录xmin;更新操作会创建新版本并标记原元组的xmax;删除操作通过设置xmax实现逻辑删除。所有操作均维护版本链,并通过VACUUM机制回收空间。系统通过比较事务ID与xmin/xmax判断元组可见性,支持不同隔离级别。这种设计保证了并发事务的数据一致性,但需要合理配置autovacuum以避免表膨胀。原创 2026-03-13 14:30:31 · 314 阅读 · 0 评论 -
Postgresql数据库管理-pg_xact
PG_XACT是PostgreSQL存储事务状态信息的目录,包含事务提交日志(CLOG)文件,记录事务提交/中止状态。这些固定大小的文件(约256KB)采用循环写入机制,由autovacuum自动清理过期记录。PG_XACT与WAL日志配合确保事务原子性和崩溃恢复,直接操作该目录可能导致数据损坏,应通过VACUUM等官方工具维护。原创 2026-03-13 14:12:43 · 86 阅读 · 0 评论 -
PG数据库管理-表空间管理
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。支持丰富的数据类型(如JSON和JSONB类型,数组类型)和自定义类型。PostgreSQL内存页面的默认大小是8kB。转载 2024-05-06 17:15:26 · 561 阅读 · 0 评论 -
PG数据库管理-参数管理
决定有多少内存可以被PostgreSQL用于缓存数据(推荐内存的1/4,不超过内存的1/2)使内部排序和一些复杂的查询都在这个buffer中完成,不够要适可而止,每个连接都要用这么大的。在进行性能调优之前,需要清楚知道服务器的配置信息,比如说 CPU,内存,服务器版本等信息。优化器假设一个查询可以用的最大内存,和shared_buffers无关(推荐内存的1/2)因为我的是本地测试的机器并不是最后线上的,最后线上的一定会这么用的。因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为off。转载 2024-05-03 17:57:03 · 514 阅读 · 0 评论 -
PG数据库管理-对象OID,物理结构,表空间结构,进程解释、执行cost评估、事务并发控制,clog,以及元组分析
在PostgreSQL内部,所有的数据库对象都通过相应的对象标识符(object identifier,oid)进行管理,这些标识符是无符号的4字节整型。数据库对象与相应oid 之间的关系存储在对应的系统目录中,依具体的对象类型而异。例如数据库和堆表对象的 oid分别存储在pg_database和pg_class中,因此,当你希望找出oid时,可以执行以下查询:OID不变,但是relfilenode在进行ddl操作后会发生变化。原创 2024-05-03 17:23:03 · 1377 阅读 · 0 评论
分享