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

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

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

第 24 章 磁盘管理

24.1. 备选位置

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

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

注意

在以前的 Postgres 版本中, 也允许使用绝对路径名 来指定一个备选存储位置。 环境变量风格的指定方式 更可取,因为它让站点管理员在管理磁盘存储时有更大的灵活性。 如果你更喜欢使用绝对路径,可以通过定义 "ALLOW_ABSOLUTE_DBPATHS" 并重新编译 Postgres 来做到。 为此,要么把这一行

#define ALLOW_ABSOLUTE_DBPATHS 1
     

加到文件 src/include/config.h 中,要么把

 CFLAGS+= -DALLOW_ABSOLUTE_DBPATHS
     

指定到你的 Makefile.custom 中。

请记住,数据库的创建实际上是由数据库后端执行的。 因此,任何指定备选位置的环境变量都必须在 后端启动之前已经定义。要定义一个指向 /home/postgres/data 的备选位置 PGDATA2,首先输入

% setenv PGDATA2 /home/postgres/data
    

来定义供后续命令使用的环境变量。 通常,你会想在 Postgres 超级用户的 .profile 或 .cshrc 初始化文件中定义这个变量,以确保它在系统启动时被定义。 任何环境变量都可以用来引用备选位置, 不过最好让变量带 "PGDATA" 前缀,以消除混淆以及与其他变量冲突 或覆盖其他变量的可能性。

要在 PGDATA2 中创建一个数据存储区,请确保 /home/postgres 已经存在并且可被 postgres 管理员写入。 然后在命令行输入

% setenv PGDATA2 /home/postgres/data
% initlocation $PGDATA2
Creating Postgres database system directory /home/postgres/data

Creating Postgres database system directory /home/postgres/data/base

    

要测试新位置,输入下列命令创建一个数据库 test

% createdb -D PGDATA2 test
% destroydb test
    

提交更正

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