目录版本号 是一个定义 系统目录 版本的数字。
目录版本号 的目的是防止 PostgreSQL 实例启动时使用格式不兼容的数据目录。这通常只在运行预发布开发版本时才相关,因为在主要发布版本的整个生命周期中,目录版本号 保持稳定。
目录版本号 在 PostgreSQL 7.0 中添加。
格式
目录版本号 的格式为 YYYYMMDDN,表示该数字更改的日期,其中 N 表示一个简单的计数器,以容纳同一日期发生的多次更改。
获取目录版本号
目录版本号 包含在 pg_control 文件中,可以使用 pg_controldata 工具或从 pg_control_system() 函数(PostgreSQL 9.6 及更高版本)中检索。
示例如下。
用法
目录版本号 是内部实现细节,对于正常的数据库操作没有特殊意义。
唯一可能在一定程度上看到它的地方是在 表空间目录 中创建的内部目录名称的一部分。
源代码
目录版本号 定义在 src/include/catalog/catversion.h 中。
变更历史
- PostgreSQL 7.0
- 添加(提交 eae456cd)
示例
从 pg_control 获取目录版本号
pg_controldata -D /var/lib/pgsql/data pg_control version number: 1300 Catalog version number: 202010291 Database system identifier: 6891881161586929758 ...
从 pg_control_system() 获取目录版本号
postgres=# SELECT catalog_version_no FROM pg_control_system();
catalog_version_no
--------------------
202010291
(1 row)
