我正在运行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所需的唯一信息,但是您可以避免通过设置PGDATA环境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的指示 。
cd /mnt/workspace到达我想要保存我的新pgdata文件夹的文件夹。 ls -l ..以确保workspace文件夹由root拥有。 grep data_directory /etc/postgresql/8.4/main/postgresql.conf来查看当前数据目录的位置。 在我的情况下,它是/var/lib/postgresql/8.4/main 。 sudo /etc/init.d/postgresql-8.4 stop停止服务。 sudo mv /var/lib/postgresql/8.4/main /mnt/workspace/pgdata将数据文件夹移动到新的位置。 ls -l确保pgdata文件夹仍然由postgres用户拥有。 /etc/postgresql/8.4/main/postgresql.conf文件,将data_directory条目指向新的位置。 sudo /etc/init.d/postgresql-8.4 start启动服务。 df来查看我在根分区上有多less空闲空间。 活泉!