历史版本。 PostgreSQL 6.3 已结束支持。 请参阅 当前版本手册.
7.2. 备选数据库位置
可以在安装的默认位置之外的位置创建数据库。请记住,所有数据库访问实际上都是通过数据库后端进行的,因此所指定的任何位置都必须是后端可以访问的。
可以指定一个绝对路径名或者一个环境变量作为位置。任何指定备选位置的环境变量都必须在后端启动之前已经定义。关于预先配置的备选数据库位置,请咨询站点管理员。
注意
环境变量风格的指定方式更可取,因为它让站点管理员在管理磁盘存储时有更大的灵活性。
出于安全和完整性原因,所指定的任何路径或环境变量都会被追加一些额外的路径字段。
备选数据库位置必须通过运行 initlocation 来准备。
要在 /alt/postgres/data 中创建一个数据存储区,请确保
/alt/postgres 已经存在。在命令行输入
% initlocation /alt/postgres/data Creating Postgres database system directory /alt/postgres/data Creating Postgres database system directory /alt/postgres/data/base
要使用环境变量 PGDATA2 做同样的事,输入
% initlocation $PGDATA2 Creating Postgres database system directory /alt/postgres/data Creating Postgres database system directory /alt/postgres/data/base
要从命令行在备选存储区 /alt/postgres/data 中创建数据库,输入
% createdb -D /alt/postgres/data mydb
或者
% 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.