Postgresql中clog与xid对应关系计算方法(速查表)

知道xid计算clog文件名

CREATE or REPLACE PROCEDURE get_clog_name(xid bigint) as
$$ 
DECLAREpageno bigint;segno bigint;
BEGIN-- 页面号:一个页面8K,一个字节8位能存4个事务的状态。pageno := xid / (8192 * 4);-- 段号:一个段(CLOG文件)256KB,能存32个8K页面。segno := pageno / 32;-- 段号的十六进制就是文件号。RAISE NOTICE 'xid:[%], pageno:[%], segno:[%], filename:[%]', xid, pageno, segno, to_hex(segno);
END $$ language plpgsql;

执行结果

call postgres=# call get_clog_name(4210000000);
NOTICE:  xid:[4210000000], pageno:[128479], segno:[4014], filename:[fae]

文件名为0FAE

知道clog文件名想计算xid范围

CREATE OR REPLACE PROCEDURE get_xid_range(clog_name TEXT) AS
$proc$
DECLAREfile_number BIGINT; start_xid BIGINT;end_xid BIGINT;
BEGINexecute 'select x''' || clog_name || '''::int' into file_number;raise notice '%',file_number;start_xid := file_number * 1048576;end_xid := (file_number + 1) * 1048576 - 1;raise notice 'XID Range: % to %' , start_xid,  end_xid;
END;
$proc$ LANGUAGE plpgsql;

使用

postgres=# call get_xid_range('0003');
NOTICE:  3
NOTICE:  XID Range: 3145728 to 4194303
CALL-- 验证范围对不对?
postgres=# call get_clog_name(3145727);
NOTICE:  xid:[3145727], pageno:[95], segno:[2], filename:[2]
CALL
postgres=# call get_clog_name(3145728);
NOTICE:  xid:[3145728], pageno:[96], segno:[3], filename:[3]
CALL
postgres=# call get_clog_name(4194303);
NOTICE:  xid:[4194303], pageno:[127], segno:[3], filename:[3]
CALL
postgres=# call get_clog_name(4194304);
NOTICE:  xid:[4194304], pageno:[128], segno:[4], filename:[4]
CALL

clog与xid对应关系速查表

uint32 xid的单位是0 - 4294967295,42亿左右。

filenamestartend
001048575
110485762097151
220971523145727
331457284194303
441943045242879
552428806291455
662914567340031
773400328388607
883886089437183
9943718410485759
A1048576011534335
B1153433612582911
C1258291213631487
D1363148814680063
E1468006415728639
F1572864016777215
101677721617825791


filenamestartend
F0251658240252706815
F1252706816253755391
F2253755392254803967
F3254803968255852543
F4255852544256901119
F5256901120257949695
F6257949696258998271
F7258998272260046847
F8260046848261095423
F9261095424262143999
FA262144000263192575
FB263192576264241151
FC264241152265289727
FD265289728266338303
FE266338304267386879
FF267386880268435455
100268435456269484031
101269484032270532607
102270532608271581183
103271581184272629759
104272629760273678335
105273678336274726911
106274726912275775487
107275775488276824063
108276824064277872639
109277872640278921215
10A278921216279969791


filenamestartend
FF042781900804279238655
FF142792386564280287231
FF242802872324281335807
FF342813358084282384383
FF442823843844283432959
FF542834329604284481535
FF642844815364285530111
FF742855301124286578687
FF842865786884287627263
FF942876272644288675839
FFA42886758404289724415
FFB42897244164290772991
FFC42907729924291821567
FFD42918215684292870143
FFE42928701444293918719
FFF42939187204294967295
100042949672964296015871
100142960158724297064447
100242970644484298113023
100342981130244299161599
100442991616004300210175
100543002101764301258751
100643012587524302307327
100743023073284303355903
100843033559044304404479
100943044044804305453055
100A43054530564306501631
100B43065016324307550207
100C43075502084308598783
100D43085987844309647359
100E43096473604310695935
100F43106959364311744511
101043117445124312793087

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln

目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考,oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场,主要考察 nmap的使用已经是否会看输出,以及是否会通过应用查找对应漏…

Linux下编译安装PETSc

本文记录在Linux下编译安装PETSc的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、安装依赖 1.1 安装oneAPI 参见:Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 1.2 安…

51单片机——蜂鸣器模块

P2.5管脚控制蜂鸣器 #include "reg51.h" typedef unsigned int u16; typedef unsigned char u8;sbit BEEPP2^5; void delay(time){ while(time--); } void main(){ u16 i2000; //脉冲2000次 while(1){ while(i--){ BEEP!BEEP; //…

【HAProxy】如何在Ubuntu下配置HAProxy服务器

HAProxy 是一款免费、开源且强大的反向代理程序,它为 HTTP 和 TCP 基础的应用提供了高可用性、负载均衡以及代理功能,因此对于管理高流量服务器(或 Web 应用)来说,通过将负载分散到多个节点服务器上,它是一…

深入Android架构(从线程到AIDL)_11 线程之间的通信架构

目录 5、 线程之间的通信架构 认识Looper与Handler对象 主线程丢信息给自己 子线程丢信息给主线程 替子线程诞生Looper与MQ 5、 线程之间的通信架构 认识Looper与Handler对象 当主线程诞生时,就会去执行一个代码循环(Looper),以便持续监视它的信息…

【中间件】docker+kafka单节点部署---zookeeper模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言消息中间件介绍1. KRaft模式2. zookeeper模式2.1. 单节点部署安装验证 前言 最近生产环境上准备部署ELFK日志监控,先在测试环境部署单节点kafka验证…

AI-Talk开发板之超拟人

一、说明 运行duomotai_ap sdk下的LLM_chat例程,实现开发板和超拟人大模型进行语音交互,支持单轮和多轮交互。 二、SDK更新 v2.3.0及以上的SDK版本才支持超拟人,如果当前SDK在v2.3.o以下,需要更新SDK。在SDK目录(duomotai_ap)下…

2024年, Milvus 社区的那些事

随着跨年钟声响起,2024 年告一段落。这一年,Milvus GitHub Stars 正式突破 3 万大关,Docker 下载量突破6700w 次,达到一个新的里程碑,在开源向量数据库领域继续引领前行。在这遥遥领先的数据背后,不妨让我们…

9999999999

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤1.引入库2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

docker中使用Volume完成数据共享

情景概述 在一个docker中,部署两个MySQL容器,假如它们的数据都存储在自己容器内部的data目录中。这样的存储方式会有以下问题: 1.无法保证两个MySQL容器中的数据同步。 2.容器删除后,数据就会丢失。 基于以上问题,容…

【期末复习】二、进程管理

1.进程的内存结构🍊 程序加载到内存之后就变成了一个进程,进程在内存当中的一个结构有: 文本段(text section):存放程序代码 栈(stack):存放局部变量和函数返回地址 数据段(data section):存放全局变量和静态变量(static) 堆(heap):程序运行时的动态内存分…

Type-C多口适配器:高效充电与连接解决方案

在科技飞速发展的今天,我们的生活已经离不开各种各样的电子设备,如智能手机、平板电脑、智能手表和无线耳机等。这些设备不仅丰富了我们的数字生活,也带来了更多的充电需求。传统的单一充电口已经难以满足现代人对于便捷性和效率的追求&#…

UCAS 24秋网络认证技术 CH10 SSL 复习

TLS字段、参数含义要了解每个消息是什么意思 基本方式只验证服务端,服务端有证书,变形方式加上验证客户端TLS1.3区别 协商过程 背景 Record层使用的各种加密算法参数,均由Handshake协议协商获得。 具体过程 随机数交换 Client/Server相互…

支付宝商家转账到账户余额,支持多商户管理

大家好,我是小悟 转账到支付宝账户是一种通过 API 完成单笔转账的功能,支付宝商家可以向其他支付宝账户进行单笔转账。 商家只需输入另一个正确的支付宝账号,即可将资金从本企业支付宝账户转账至另一个支付宝账户。 该产品适用行业较广&am…

c# 中Parallel.ForEach 对其中一个变量进行赋值 引发报错

在 C# 中使用 Parallel.ForEach 方法时,如果你尝试在并行循环中对共享变量进行赋值,很可能会遇到线程安全问题或竞争条件(race conditions),这可能导致数据不一致、程序崩溃或其他不可预测的行为。 问题描述 假设你有…

基于Django的旅游信息管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决生活上的问题,线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时,随着…

常见的框架漏洞复现

1.Thinkphp Thinkphp5x远程命令执行及getshell 搭建靶场 cd vulhub/thinkphp/5-rce docker-compose up -d 首页 漏洞根本源于 thinkphp/library/think/Request.php 中method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致rce,其攻击点较为多&…

UE5中实现右键开镜效果

右键之后添加时间轴,然后设置视野即可。Set Field Of View 时间轴设置,第一个点设置0,90度,因为默认的就是90度 第二个点看武器的类型或者倍境来设置,时间就是开镜时间,值越小开镜速度越快,第二个值就是视野…

关于华硕Armoury Crate(奥创中心)安装程序失败、卡进度条问题解决方案

关于华硕Armoury Crate(奥创中心)安装失败解决方案 清理旧版本文件 如果之前安装过Armoury Crate,可能有残留文件导致冲突: 利用官方的卸载工具,卸载旧版本: https://www.asus.com.cn/supportonly/armoury%20crate/…

iOS18 上的 Genmoji

在 WWDC 2025 期间,一种名为Genmoji的新型表情符号问世。 许多用户可能仍然不确定 Genmoji 是什么、它与传统表情符号有何不同、如何使用它以及如何恢复丢失的数据。因此,在本文中,我们将介绍您需要了解的有关 iOS 18 上的 Genmoji 的所有信…