【单选题】在 KingbaseES V8 中,哪个文件保存了只包含对所有活动事务可见的 tuple 的数据页的追踪信息?
- relfilenode_vm
- relfilenode_fsm
- relfilenode
- relfilenode_init
解题思路:
查看数据库的信息:
test=# select datname,oid from pg_database;
datname | oid
-----------+-------
kingbase | 12258
test | 12259
template1 | 1
template0 | 12257
security | 12260
(5 行记录)
test=# select oid,relname,reltype,relfilenode from pg_class where oid=1247;
oid | relname | reltype | relfilenode
------+---------+---------+-------------
1247 | pg_type | 71 | 0
查看其中一个数据库的文件(存放于数据文件目录的 base 目录下):
[kingbase@kes:/home/kingbase]$ cd /data/base
[kingbase@kes:/data/base]$ ls
1 12257 12258 12259 12260
## 查看 test 数据库文件
[kingbase@kes:/data/base]$ cd 12259
## 太多文件,这里以 1247 为例
[kingbase@kes:/data/base/12259]$ ll 1247*
-rw------- 1 kingbase kingbase 163840 10月 8 16:00 1247
-rw------- 1 kingbase kingbase 24576 9月 24 21:13 1247_fsm
-rw------- 1 kingbase kingbase 8192 10月 8 16:00 1247_vm
可以看到有很多 _vm 和 _fsm 结尾的文件:
- 后缀是
fsm的是空闲空间映射文件(free space map)文件,这个文件是用来进行空间映射的,表示页面中可以使用的空余空间。 - 后缀是
vm文件是可见性映射文件(visibility map),标识该页的所有元组对所有事务是否可见,如果标识可见可以跳过 vacuum 扫描。 - 后缀是
init文件是每一个不记录日志表或者该表上的每一个索引都会有个对应的文件。
本文不做细究,事务可见性选择 relfilenode_vm。
可参考:
📚 推荐阅读:DBA 学习之路
如果这篇文章对你有帮助,推荐访问我的 Oracle DBA 系统学习站点,涵盖 100 天完整学习路线:
- 🔧 Oracle 安装部署 · RMAN 备份恢复 · Data Pump 数据迁移
- 🏗️ RAC 高可用 · DataGuard 容灾 · 多租户架构
- 🔍 故障排查 · 升级迁移 · GoldenGate 数据同步