首页 文章

postgresql initdb - 目录不为空

提问于
浏览
0

我正在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 回答

  • 0

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

    如果你不重新创建它, fsck 无论如何都会在需要的时候再创建它 .

    但是如果它发现 fsck 在PGDATA中发现了损坏,我会考虑去备份,而不是指望 lost+found 来检索任何东西 .

相关问题