0

我正在 ubuntu lucid 服务器上安装 postgres 8.4(不,目前我们在该服务器上使用“lucid”LTS 版本,因此尚无法升级(尽管我们现在将很快开始精确测试系统) ))

我已经使用 ext4 文件系统为 /var/lib/postgresql/8.4/main 目录设置了一个自己的分区。(那些真正喜欢 postgres 安装的人知道现在发生了什么......)由于 ext4 在所有文件系统的根目录中放置了一个 lost+found 目录,postgres 不会使用该目录作为它的数据目录,因为它最初是不是空的...

initdb: directory "/var/lib/postgresql/8.4/main" 存在但不为空 如果要创建一个新的数据库系统,删除或清空目录 "/var/lib/postgresql/8.4/main" 或运行initdb 的参数不是“/var/lib/postgresql/8.4/main”。

最简单的方法是删除 lost+found 并在 initdb 完成工作后重新创建它。- 这会导致任何问题吗?lost+found 是否有任何特殊属性或任何使其无法重新创建的东西,而且,除了 checkdisk 找到需要放在那里的东西之外的任何其他时间都需要它?

另一种方法是卸载 .../main/ 文件系统,初始化数据库,临时将 .../main/ 文件系统安装在其他地方,将东西移到那里并将其安装到位。似乎比“最简单的方法”多一点工作。

或者是否有某种方法可以让 initdb 忽略该目录不为空?(看不到任何命令行开关)

postgres 主目录中的 lost+found 目录可能会导致任何问题吗?

目前我在虚拟机上运行系统进行测试,所以如果我把事情搞砸了真的没关系,但在将其作为安装关键任务系统的官方方式之前,最好有一些对此的想法。

4

1 回答 1

0

lost+found具有预先分配的块,使 fsck 在分区缺少空闲块时更容易将数据移入其中。要创建它,最好使用mklost+found命令而不是mkdir.

如果您不重新创建它,fsck无论如何都会在需要时进行。

但是,如果涉及到在 PGDATA 中发现损坏的地步fsck,我会考虑进行备份,而不是指望lost+found检索任何内容。

于 2012-12-05T14:17:31.527 回答