可选的数据库位置是通过环境变量来创建和引用的,这个环境变量给出指定存储位置的绝对路径。这个声明数据库位置的环境变量必须在后端运行前声明,并且它指向的位置必须为postgres管理员帐户可写。有关预配置数据库位置的问题,请与你的节点数据库管理员商议。任何有效的环境变量名都可以用于引用一个可选路径,尽管我们建议使用带有“PGDATA”前缀的使用环境变量名以避免和其他变量冲突。
注意:在以前版本的 Postgres,还允许用一个绝对路径来声明一个可选的存储位置。尽管我们推荐使用环境变量的方法(因为这样可以令节点管理员在管理磁盘空间时更灵活)我们还是允许使用绝对路径的方法来声明一个可选的位置。管理员手册描述了如何打开这个特性。
要使用环境变量 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';如果你没有创建数据库的权限,你将看到如下信息:
ERROR: CREATE DATABASE: permission denied如果声明的路径不存在或数据库后端没有读写该路径的权限,你将会看到如下信息:
ERROR: The database path '/no/where' is invalid. This may be due to a character that is not allowed or because the chosen path isn't permitted for databases.