PG之oid2name命令

0    618    3

Tags:

👉 本文共约2988个字,系统预计阅读时间或需12分钟。

简介

oid2name — 解析一个PostgreSQL数据目录中的 OID 和文件结点。

我们还有一个实用的客户端命令:oid2name

它的目的是用于帮助检查文件结构,它可以用于实现将常用的oid值到它对应的对象的名字之间的转化。支持的是哪些类型:

  • 索引
  • 表空间
  • 系统对象
  • 扩展信息

1、得到 filenode与oid的信息

看看下边的例子:

这里-o 与 -f的结果是一样的。因为文件的relnodeid与oid是相同的。加上-x,会输出相关的扩展列,如schema, tablespace信息。

2、filenodeid与oid默认是一致的

未执行truncate, vacuum full操作时, 两者的值是一致的。

t表原始的filenode是16496. 我们扩展一下:

也能看到oid值为16496。指定了database name: mydb是关键。否则找不到。

3、filenode与oid不一致的情形

执行vaccum full

filenode从16496变到16509. Oid保持不变。

执行truncate

Filenode又从16509变到16513

执行cluster

执行cluster命令之后,Filenode又从16513变到16516。

这三种操作,相当于重新创建了文件。但是文件对应的对象的原始ID仍然保持不变。

大纲

oid2name [option...]

描述

oid2name是一个帮助管理员检查被 PostgreSQL 使用的文件结构的工具程序。要使用它,你需要熟悉数据库文件结构(见第 68 章)。

注意

名称“oid2name”是有历史原因的,它确实有些误导性,因为在你使用它的大部分时间里,你实际关心的是表的文件结点编号(在数据目录中是可见的文件名)。请确定你理解表 OID 和表文件结点之间的区别!

oid2name连接到一个目标数据库并且抽取 OID、文件节点或者表名信息。你也可以让它显示数据库 OID 或表空间 OID。

安装

选项

oid2name接受下列命令行参数:

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复