oid2name
是一个作为 contrib 模块 提供的实用程序,用于将数据目录中的 OID 和 文件节点 转换为人类可读的值。它需要一个正在运行且一致的数据库才能运行(因此,它并不是一个真正有用的取证工具)。
oid2name
在 PostgreSQL 7.1 中添加。
更改历史记录
- PostgreSQL 9.3
- 现在设置
fallback_application_name
(提交 17676c78)
- 现在设置
- PostgreSQL 8.3
-P
选项已移除(提交 4192f2d8)
- PostgreSQL 7.1
- 添加(提交 2c591cb8)
示例
列出数据库
$ oid2name -U postgres -d postgres -p 5432 All databases: Oid Database Name Tablespace ---------------------------------- 11788 postgres pg_default 16385 test pg_default 11787 template0 pg_default 1 template1 pg_default
postgres=# CREATE TABLE filenode_test (id INT); CREATE TABLE postgres=# SELECT oid, relfilenode FROM pg_class WHERE relname='filenode_test'; oid | relfilenode -------+------------- 16453 | 16453 (1 row) postgres=# VACUUM FULL filenode_test ; VACUUM postgres=# SELECT oid, relfilenode FROM pg_class WHERE relname='filenode_test'; oid | relfilenode -------+------------- 16453 | 16456 (1 row)
使用 oid2name
从 OID(选项 -o
)和/或文件节点(选项 -f
)提取表名
$ oid2name -U postgres -d postgres -p 5432 -o 16453 From database "postgres": Filenode Table Name ------------------------- 16456 filenode_test $ oid2name -U postgres -d postgres -p 5432 -f 16456 From database "postgres": Filenode Table Name ------------------------- 16456 filenode_test
使用 -x
选项显示其他详细信息
$ oid2name -U postgres -d postgres -p 5432 -o 16453 -x From database "postgres": Filenode Table Name Oid Schema Tablespace ---------------------------------------------------- 16456 filenode_test 16453 public pg_default
PostgreSQL 文档 包含一些其他有用的示例,包括用于对从数据目录中获取的文件名选择进行操作的 shell 命令。
参考文献
- PostgreSQL 文档: oid2name