Ubicaciones Alternativas de las Bases de Datos

Es posible crear una base de datos en un lugar diferente del que fue destinado para el efecto durante la instalación. Recuerde que cualquier consulta a la base de datos es hecha realmente a través del motor de la base de datos, de manera que el lugar donde sea creada la base de datos debe permitir el acceso al motor.

Las ubicaciones alternativas de bases de datos se crean y son referidas por medio de una variable de estado que da el camino absoluto al lugar donde se almacenará la base de datos. Esta variable de estado debe haber sido definida antes de arrancar el motor y el lugar para donde apunta debe permitir escritura desde la cuenta del administrador postgres. Consulte con el administrador local sobre ubicaciones preconfiguradas para bases de datos. Se puede usar cualquier nombre de variable válido para indicar locales alternativos, aunque se recomienda usar nombres de variables con el prefijo "PGDATA" para evitar confusiones con otras variables.

Nota: En versiones antiguas de Postgres, también se permitía el uso de nombres absolutos de fichero para especificar diferentes locales de almacenamiento. Aunque es preferible el uso de variables de estado ya que da mayor flexibilidad al administrador local para gestionar el espacio en disco, también es posible usar caminos absolutos para especificar ubicaciones alternativas. La Guía del Administrador discute como activar esta funcionalidad.

Por razones de seguridad y de integridad, a cualquier camino o variable de estado dada se le agregan al final algunos caminos adicionales. Las ubicaciones alternativas deben ser preparadas ejecutando initlocation.

Para crear un área de almacenamiento usando la variable PGDATA2 (que para este ejemplo tiene el valor /alt/postgres), asegurese que /alt/postgres existe y se puede escribir en el a partir de la cuenta del administrador de Postgres. Posteriormente, desde la línea de comandos, escriba

% initlocation $PGDATA2
Creating Postgres database system directory /alt/postgres/data
Creating Postgres database system directory /alt/postgres/data/base
    

Para crear una base de datos en el área de almacenamiento alternativa PGDATA2, a partir de la línea de comandos, use el siguiente comando:

% createdb -D PGDATA2 mibd
    
y para hacer lo mismo a partir de psql escriba
* CREATE DATABASE mibd WITH LOCATION = 'PGDATA2';
    

Si no tiene el privilegio necesario para crear bases de datos, verá el siguiente mensaje:

% createdb mibd
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mibd.
    

Si el local elegido no existe o el motor de la base de datos no tiene autorización para entrar en el o escribir en subdirectorios, verá lo siguiente:

% createdb -D /alt/postgres/data mibd
ERROR:  Unable to create database directory /alt/postgres/data/base/mydb
createdb: database creation failed on mibd.