PostgreSQL 备用数据库位置

PostgreSQL 备用数据库位置

我正在运行 Ubuntu 10.10,并为我的根目录设置了一个单独的分区。该分区的设置并未考虑大型数据库,因此我想将 2+GB 的 PostgreSQL 数据库放在 /home 分区上。

我遇到的第一条建议是initlocation命令,但这显然适用于旧版本的 PostgreSQL。

然后我遇到了该initdb命令,但是由于某种原因,它似乎在 Ubuntu 10.10 上不可用...。

我究竟该如何做呢?

答案1

该命令initdb应该位于路径/usr/lib/postgresql/{version}/bin/initdb(可能不包含在您的路径中PATH),但是您可以使用pg_createcluster包装器,尤其是带有-D选项的包装器:

此选项指定数据库集群的存储目录。这是 初始化数据库,但您可以通过设置PG数据 环境变量,这很方便,因为数据库服务器(PostgreSQL 的) 稍后可以通过同一个变量找到数据库目录。

答案2

描述默认集群的文件(称为 main)位于我的 ubuntu 10.10 机器上 8.4 的目录 /etc/postgresql/8.4/main 中。只需停止 postgresql,将数据目录复制到新目录,设置权限(根目录上的权限为 700,由 postgres 用户拥有),编辑 postgresql.conf 中指向数据目录的行,然后重新启动 postgres。

答案3

我正在运行 Ubuntu 10.04 和 PostgreSQL 8.4。以下是我将 pgdata 文件夹从根分区移出的步骤,大致基于来自 linuxquestions.org 的说明

  1. cd /mnt/workspace到达我想要保存新 pgdata 文件夹的文件夹。
  2. ls -l ..以确保该workspace文件夹归 root 所有。
  3. grep data_directory /etc/postgresql/8.4/main/postgresql.conf查看当前数据目录在哪里。在我的例子中,它是/var/lib/postgresql/8.4/main
  4. sudo /etc/init.d/postgresql-8.4 stop停止服务。
  5. sudo mv /var/lib/postgresql/8.4/main /mnt/workspace/pgdata将数据文件夹移动到新位置。
  6. ls -l以确保该pgdata文件夹仍归 postgres 用户所有。
  7. 我编辑了该/etc/postgresql/8.4/main/postgresql.conf文件以将data_directory条目指向其新位置。
  8. sudo /etc/init.d/postgresql-8.4 start启动服务。
  9. 尝试连接到数据库服务器以确保它仍然有效。
  10. df看看我现在在根分区上有多少可用空间。哇哦!

相关内容