PostgreSQL 自举BKI文件的结构
在open
命令打开某个表时,它需要系统中已经存在一些表并且其中要具有与被打开表相关的项,在这些先决条件满足之前,open
命令不能被使用(这些至少应该存在的表是pg_class
、pg_attribute
、pg_proc
和
pg_type
)。 为了允许这些表本身被填充,带着bootstrap
选项的create
将会隐式打开所创建的表用于插入数据。
同样,declare index
和declare toast
命令也必须在相关系统目录被创建和填充之后才能被使用。
因此,postgres.bki
文件的结构必须是:
-
create bootstrap
其中一个关键表 -
insert
数据,这些数据至少要能描述这些关键表 -
close
-
重复创建其他关键表。
-
create
(不带bootstrap
)一个非关键表 -
open
-
insert
需要的数据 -
close
-
重复创建其他非关键表。
-
定义索引和TOAST表。
-
build indices
无疑还有其它未被文档记录的顺序依赖关系。