我正在尝试查看当前安装的 postgres 中在不同系统上创建的数据库。
我下载了相同版本的 postgres(9.6),并用来自其他系统的数据文件夹替换了数据文件夹,但是当我在 pgadmin 中查看数据库时,只存在默认表。
我对目录结构也感到困惑。我复制的目录结构是 /data/base、四个数字目录和“pgsql_tmp”。这些数字是什么意思?
答案1
我也对目录结构感到困惑。我复制过来的目录结构是 /data/base
看数据库文件布局在 9.6 文档中查看目录结构的解释。
你$PGDATA
似乎是/data
,因此你需要复制所有这些。
您看不到带有部分副本的目标数据库的原因可能是pg_database
存储在 中/data/global
。请注意,实例完全启动似乎很幸运。它可能会拒绝启动,或者启动后很快损坏。 下的数据文件$PGDATA/base
通常无法跨实例移植,因为它们包含带有事务 ID 的元数据。
$PGDATA
仅当目标具有完全相同的架构、相同的操作系统和相同的 Postgres 主版本时,整个目录才可移植。