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.
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 |
* 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. |