在新分区上创建数据库

Ste*_*and 3 postgresql postgresql-9.1

我在 ubuntu 12.04 上使用 postgresql 9.1。我已经安装了 depot 软件包。

我在我的系统中添加了一个新分区,我想在这个分区上创建一个 postgresql 数据库(它将完全专用于这个数据库)。

我的 pgdata 位于var/lib/postgresql/9.1/main. 我打算停止 postgresql 服务,将 pgdata 内容复制到新分区,然后创建一个指向新分区的符号链接,chown将新目录指向 postgres 用户,重新启动 postgresql ......但恐怕这一切看起来更像是一个黑客。

有没有办法专门在指定的分区上创建数据库?更“规范”的东西(不是与 ubuntu 的文字游戏)

Ste*_*and 7

可以使用CREATE TABLESPACE

create tablespace dedicated_datastore owner postgres location '/my/mount/point/'
Run Code Online (Sandbox Code Playgroud)

现在表空间可以用作创建数据库时的参数,(或表,或索引)

create database my_database tablespace dedicated_datastore
Run Code Online (Sandbox Code Playgroud)

  • 我不确定使用短语 ** 应该使用** !如果您只有一个数据库(和/或集群),那么最好使用挂载点、符号链接或更改 PGDATA 位置(按照各种指南中的优先顺序)。表空间在备份时有很多警告,而映射整个数据目录则没有。 (2认同)