Bases distantes

Il est possible de créer une base dans un lieu autre que celui utilisé pour l'installation. Souvenez vous que tous les accès à la base se font actuellement par le serveur de la base, ainsi n'importe quel endroit spécifié doit être accessible par le serveur.

Les bases distantes sont créées et référencées par une variable d'environnement qui indique le chemin absolu du lieu de stockage. La variable d'environnement doit avoir été définie avant que le serveur soit lancé. N'importe quel nom de variable d'environnement valide peut être utilisé pour référencer un site distant, bien que l'utilisation de noms de variables avec un préfixe "PGDATA" est recommandé pour éviter les confusions et les conflits avec d'autres variables.

Note

Dans les précédantes versions de Postgres, il était aussi permis d'utiliser un nom de chemin absolu pour spécifier un lieu de stockage distant. Bien que le style de spécification de variable d'environnement est preferré car il permet plus de flexibilité dans l'administration du stockage disque pour le site administrator, il est aussi possible d'utiliser un chemin absolu pour spécifier un site distant. Voir le Guide de l'Administrateur pour plus de détails.

Pour des raisons de sécurité et d'intégrité, n'importe quel chemin ou variable d'environnement spécifié possède certains path fields additionnels. Les sites distants doivent être préparés par le lancement de initlocation.

pour créer une zone de stockage de données en utilisant la variable d'environnement PGDATA2 (pour cet exemple placée dans /alt/postgres), assurez vous que /alt/postgres existe déja et que le compte administrateur Postgres peut y écrire. Ensuite, en ligne de commande tapez :
% initlocation $PGDATA2
Creating Postgres database system directory /alt/postgres/data
Creating Postgres database system directory /alt/postgres/data/base
    

Pour créer une base dans la zone de stockage PGDATA2 en ligne de commande, utilisez :
% createdb -D PGDATA2 mydb
    
et pour faire la même chose en mode psql psql type
* CREATE DATABASE mydb WITH LOCATION = 'PGDATA2';
    

si vous n'avez pas les privilèges nécessaires pour créer la base vous verrez :
% createdb mydb
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
    

Si le lieu spécifié n'existe pas ou le serveur n'a pas la permission d'y acceder ou d'y écrire, vous verrez :
% createdb -D /alt/postgres/data mydb
ERROR:  Unable to create database directory /alt/postgres/data/base/mydb
createdb: database creation failed on mydb.