我在ubuntu lucid服务器上安装postgres 8.4(不,目前我们在该服务器上使用“清晰”LTS版本,因此无法进行升级(尽管我们将开始测试精确的系统)很快现在))
我已经使用ext4文件系统为/var/lib/postgresql/8.4/main目录设置了一个自己的分区。 (那些真正进入postgres安装的人知道现在发生了什么...)由于ext4在所有文件系统的根目录中放置了一个lost + found目录,postgres不会将该目录用作其数据目录,因为它最初是不空......
initdb:目录“/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 / filesystem,在那里移动东西并将其安装到位。似乎比“最简单的方式”更多的工作。
或者是否有一些方法让initdb忽略该目录不为空? (看不到任何命令行开关)
可能在postgres主目录中丢失+找到的目录会导致任何问题吗?
目前我在虚拟机上运行系统进行测试,所以如果我把事情弄得一团糟无所谓,但在将其作为安装任务关键型系统的官方方式之前,这将是不错的对此有一些想法。
答案 0 :(得分:0)
lost+found
具有预先分配的块,当分区缺少空闲块时,fsck可以更轻松地将数据移入其中。要创建它,最好使用mklost+found
命令而不是mkdir
。
如果您不重新创建它,fsck
无论如何都会在需要时进行。
但是,如果fsck
在PGDATA中发现损坏,我会考虑进行备份,而不是依靠lost+found
来检索任何内容。