Gestión de Disco

Localizaciones Alternativas

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 1
     
al archivo src/include/config.h, o especifique
 CFLAGS+= -DALLOW_ABSOLUTE_DBPATHS
     
en 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/data
    
para 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