postgresql技术大讲堂 -凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 593329
  • 博文数量: 486
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4941
  • 用 户 组: 普通用户
  • 注册时间: 2018-07-05 13:59
个人简介

ocp考试资料群:569933648 验证码:ocp ocp 12c 19c考试题库解析与资料群:钉钉群号:35277291

文章分类

全部博文(486)

文章存档

2024年(3)

2023年(35)

2021年(151)

2020年(37)

2019年(222)

2018年(38)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: mysql/postgresql

2023-07-14 17:15:42


postgresql从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对pg基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱pg、学习pg的同学们有帮助,欢迎持续关注cuug pg技术大讲堂。

第22讲:clog作用与管理

内容1: postgresql clog概述

内容2: clog作用与管理

内容3: 诊断当前用到的clog块

内容4: 删除不需要的clog文件


clog概述

clog用来记录事务号的状态,主要是用来判断行的可见性。每个事务状态占用两个bit位。事务的状态有4种:in progress,committed,aborted和sub_committed。clog由一个或多个8kb页组成。clog在逻辑上形成一个数组,数组的每个元素对应事务id号和事务状态。

一个事务占用2个bit位,一个字节可以存放4个事务状态,一个页块可以存放8192*4=32768个事务状态。

当数据库库启动时,这些文件会被加载到内存中。clog的信息同样会被记录到wal日志中,当数据库异常中断时,clog的信息会从wal日志还原。

clog存放在缓存中,当checkpoint时开始刷新到clog文件中。当数据库库关闭库后,clog会被写入到$pgdata/pg_xact子目录中,文件命名为0000,0001,00002......,单个文件{banned}最佳大为256k。


commit log

· clog工作方式

· clog如何维护

数据库正常关闭或者检查点发生时,clog数据写入pg_xact目录下的文件中

命名习惯:0000 0001 ……

数据库启动时从pg_xact文件中加载数据

由vacuum 进程定期处理


诊断当前用到的clog块

· 计算当前使用的clog数据块位置

一个事务占用2个bit位,一个字节可以存放4个事务状态,一个页块可以存放8192*4=32768个事务状态。

1、查看当前的txid号

select txid_current();

txid_current

--------------

623

2、计算记录在哪个clog块中

select 623/(8192*4) block;

block

-------

0


删除不需要的clog文件

· 删除clog文件

当发生急性冻结时会更新pg_database.datfrozenxid的值,此时,如果某些clog文件不包含包含{banned}最佳小pg_database.datfrozenxid以及之前的信息,会尝试删除不必要的clog文件。因为这些clog文件中记录的事务所修改的行已经被冻结,那么在进行行可见性规则判断时就不需要获得该事务的状态。




以上就是【postgresql从小白到专家】第22讲 - "clog作用与管理" 的内容,欢迎一起探讨交流,往期视频及文档,联系cuug

阅读(84) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图