PostgreSQL备用数据库位置

我正在运行Ubuntu 10.10,并为我的根目录有一个单独的分区。 该分区没有设置大型数据库,所以我想把我的2 + GB PostgreSQL数据库放在/ home分区上。

我遇到的第一条build议是initlocation命令,但这显然是旧版PostgreSQL。

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

我应该怎么做呢?

该命令initdb应位于path/usr/lib/postgresql/{version}/bin/initdb (可能不包含在PATH ),但是可以使用pg_createcluster wrapper,特别是使用-D选项:

该选项指定数据库集群应存储的目录。 这是initdb所需的唯一信息,但是您可以避免通过设置PGD​​ATA环境variables来编写它,这可以方便,因为数据库服务器( postgres )稍后可以通过同一个variables查找数据库目录。

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

我正在运行Ubuntu 10.04和PostgreSQL 8.4。 这是我做了什么来移动我的pgdata文件夹closures根分区,松散地基于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来查看我在根分区上有多less空闲空间。 活泉!