Se puede crear una base de datos en una localización diferente a la establecida por defecto durante la instalación. Recuerde que todos los accesos a base de datos ocurren realmente a traves del proceso en segundo plano, así que éste debe poder acceder a cualquier especificación.
Se crean localizaciónes alternativas y referencias mediante una variable de entorno que da el path absoluto hasta la situación de almacenamiento deseada. Esta variable de entorno debe estar definida antes de que el proceso en segundo plano sea arrancado y debe ser modificable mediante la cuenta del administrador de postgres. Cualquier variable de entorno puede ser utilizada para referirse a una localización alternativa, si bien se recomienda la utilización de un nombre de variable con prefijo PGDATA para evitar confusión y conflicto con otras variables.
Nota: En versiones previas de Postgres, también estaba permitido utilizar un nombre de path absoluto para especificar una localización de almacenamiento alternativa. Se prefiere el método de especificación de variables de entorno, puesto que concede al administrador del sistema más flexibilidad en la gestión del almacenamiento en disco. Si prefiere utilizar paths absolutos, puede hacerlo definiendo "ALLOW_ABSOLUTE_DBPATHS" y recompilando Postgres. Para hacer esto, añada cualquiera de estas líneas
#define ALLOW_ABSOLUTE_DBPATHS 1al archivo src/include/config.h, o especifiqueCFLAGS+= -DALLOW_ABSOLUTE_DBPATHSen su Makefile.custom.
Recuerde que la creación de una base de datos la ejecuta realmente un proceso de la base de datos en segundo plano. Por lo tanto, cualquier variable de entorno que especifique una localización alternativa debe ser definida antes de que el proceso en segundo plano sea arrancado. Para definir una localización alternativa apuntando a PGDATA2 /home/postgres/data, primero escriba
% setenv PGDATA2 /home/postgres/datapara definir la variable de entorno que será utilizada con las órdenes siguientes. Normalmente, querrá definir esta variable en el fichero de inicialización del super usuario de Postgres, .profile o .cshrc para asegurar que está definido al arrancar el sistema. Se puede utilizar cualquier variable de entorno para referirse a una localización alternativa, aunque se prefiere que las variables estén prefijadas con "PGDATA" para eliminar confusiones y la posibilidad de conflictos con otras variables, o su reescritura.
Para crear un area de almacenamiento de datos en PGDATA2, asegúrese de que /home/postgres ya existe y puede ser escrito por el administrador de postgres. Después desde la linea de órdenes, escriba
% setenv PGDATA2 /home/postgres/data % initlocation $PGDATA2 Creating Postgres database system directory /home/postgres/data Creating Postgres database system directory /home/postgres/data/base
Para comprobar la nueva localización, cree una base de datos test escribiendo
% createdb -D PGDATA2 test % dropdb test