我正在ubuntu lucid服务器上安装postgres 8.4(不,目前我们在该服务器上使用“清晰”的LTS版本,因此无法进行升级(尽管我们很快就会开始测试系统) ))
我已经使用ext4文件系统为/var/lib/postgresql/8.4/main目录设置了一个自己的分区 . (那些真正进入postgres安装的人知道现在发生了什么...)由于ext4将丢失的找到的目录放在所有文件系统的根目录中,postgres不会将该目录用作其数据目录,因为它最初不是空...
initdb:目录"/var/lib/postgresql/8.4/main"存在但不为空如果要创建新的数据库系统,请删除或清空目录"/var/lib/postgresql/8.4/main"或使用"/var/lib/postgresql/8.4/main"以外的参数运行initdb .
最简单的方法是删除找到的丢失并在initdb完成其工作后重新创建它 . - 这会导致任何问题吗?找到的丢失是否有任何特殊属性或任何无法重新创建的东西,而且,除了checkdisk发现需要放置的东西之外,还需要它吗?
另一种方法是卸载... / main /文件系统,初始化数据库,在其他地方临时安装... / main / filesystem,在那里移动东西并将其安装到位 . 似乎比“最简单的方式”更多的工作 .
或者是否有一些方法让initdb忽略该目录不为空? (看不到任何命令行开关)
可能在postgres主目录中丢失找到的目录会导致任何问题吗?
目前我正在虚拟机上运行系统进行测试,所以如果我把事情搞得一团糟无所谓,但在将其作为安装任务关键型系统的官方方式之前,最好有一些对此的想法 .
1 回答
lost+found
具有预先分配的块,当分区缺少空闲块时,fsck可以更轻松地将数据移入其中 . 要创建它,最好使用mklost+found
命令而不是mkdir
.如果你不重新创建它,
fsck
无论如何都会在需要的时候再创建它 .但是如果它发现
fsck
在PGDATA中发现了损坏,我会考虑去备份,而不是指望lost+found
来检索任何东西 .