↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.0 / 6.5
历史版本PostgreSQL 6.5 已于 2004 年 6 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

12.2. 备选数据库位置

可以在安装的默认位置之外的位置创建数据库。请记住,所有数据库访问实际上 都是通过数据库后端进行的,因此所指定的任何位置都必须 是后端可以访问的。

备选数据库位置由一个给出预期存储位置绝对路径的环境变量 创建和引用。 这个环境变量必须在后端启动之前已经定义, 而且它指向的位置必须可被 postgres 管理员账号写入。 关于预先配置的备选数据库位置,请咨询 站点管理员。 任何有效的环境变量名都可以用来引用一个备选位置, 不过建议使用带 “PGDATA” 前缀的变量名, 以避免混淆 以及与其他变量的冲突。

注意

在以前的 Postgres 版本中, 也允许使用绝对路径名来指定 备选存储位置。 虽然环境变量风格的指定方式 更可取,因为它让站点管理员在管理磁盘存储时有更大的灵活性, 但也可以使用绝对路径 来指定一个备选位置。 管理员指南讨论了如何启用这一特性。

出于安全和完整性原因, 所指定的任何路径或环境变量都会被追加一些 额外的路径字段。 备选数据库位置必须通过运行 initlocation 来准备。

要使用环境变量 PGDATA2(本例中设为 /alt/postgres) 创建一个数据存储区, 请确保 /alt/postgres 已经存在并且可被 Postgres 管理员账号写入。 然后,在命令行输入

% initlocation $PGDATA2
Creating Postgres database system directory /alt/postgres/data
Creating Postgres database system directory /alt/postgres/data/base
    

要从命令行在备选存储区 PGDATA2 中 创建数据库,使用下面的命令:

% createdb -D PGDATA2 mydb
    

要在 psql 内做同样的事,输入

* CREATE DATABASE mydb WITH LOCATION = 'PGDATA2';
    

如果你没有创建数据库所需的权限,你会看到 下列消息:

% createdb mydb
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
    

如果指定的位置不存在,或者数据库后端没有 权限访问它或写入其下的目录,你会看到 下列消息:

% createdb -D /alt/postgres/data mydb
ERROR:  Unable to create database directory /alt/postgres/data/base/mydb
createdb: database creation failed on mydb.
    

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。