Où PostgreSQL stocke-t-il la base de données?
où sont stockés les fichiers D'une base de données PostgreSQL?
11 réponses
Pour voir où le répertoire de données, utilisez cette requête.
show data_directory;
Pour voir tous les paramètres d'exécution, utilisez
show all;
vous pouvez créer des tablespaces pour stocker des objets de base de données dans d'autres parties du système de fichiers. Pour voir les tablespaces, qui pourraient ne pas être dans ce répertoire de données, utilisez cette requête.
SELECT * FROM pg_tablespace;
sur Windows7 toutes les bases de données sont référencées par un numéro dans le fichier nommé pg_database
sous C:\Program Files (x86)\PostgreSQL.2\data\global
. Ensuite, vous devez rechercher le nom du dossier par ce numéro sous C:\Program Files (x86)\PostgreSQL.2\data\base
. C'est le contenu de la base de données.
ouvrir pgAdmin et aller aux propriétés pour la base de données spécifique. Trouver L'OID puis ouvrir le répertoire
<POSTGRESQL_DIRECTORY>/data/base/<OID>
il devrait y avoir vos fichiers DB.
sous mon installation Linux, c'est ici: /var/lib/postgresql/8.x/
vous pouvez le changer avec initdb -D "c:/mydb/"
comme suggéré dans " PostgreSQL emplacement par défaut de la base de données sur Linux ", sous Linux vous pouvez trouver en utilisant la commande suivante:
ps aux | grep postgres | grep -- -D
l'emplacement des tables/Index spécifiques peut être ajusté par des TABLESPACEs:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
CREATE TABLE something (......) TABLESPACE dbspace;
CREATE TABLE otherthing (......) TABLESPACE dbspace;
Postgres stocke des données dans des fichiers de son répertoire de données. Suivez les étapes ci-dessous pour aller à une base de données et ses fichiers:
la base de données correspondant à un fichier de table postgresql est un répertoire. L'emplacement de l'ensemble du répertoire de données peut être obtenu en exécutant SHOW data_directory
.
dans un UNIX comme OS (par exemple: Mac) /Library/PostgreSQL/9.4/data
Aller à l'intérieur du dossier de base dans le répertoire de données qui a tous les dossiers de base de données: /Library/PostgreSQL/9.4/data/base
trouver le dossier de la base de données nom en exécutant (Donne un entier. C'est le nom du dossier de la base de données):
SELECT oid from pg_database WHERE datname = <database_name>;
trouver le nom du fichier de la table en exécutant (donne un entier. C'est le nom du fichier):
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
C'est un fichier binaire. Les détails du fichier tels que la taille et la date de création peuvent être obtenus comme d'habitude. Pour plus d'informations lire ce fil
Sur Mac: /Library/PostgreSQL/9.0/data/base
le répertoire ne peut pas être entré, mais vous pouvez regarder le contenu via: sudo du -hc data
je parie que vous posez cette question parce que vous avez essayé pg_ctl start
et avez reçu l'erreur suivante:
pg_ctl: pas de répertoire de base de données spécifié et que la variable d'environnement PGDATA unset
en d'autres termes, vous cherchez le répertoire à mettre après -D
dans votre commande pg_ctl start
.
dans ce cas, le répertoire que vous recherchez contient ces fichiers.
PG_VERSION pg_dynshmem pg_multixact
pg_snapshots pg_tblspc postgresql.conf
base pg_hba.conf pg_notify
pg_stat pg_twophase postmaster.opts
global pg_ident.conf pg_replslot
pg_stat_tmp pg_xlog postmaster.pid
pg_clog pg_logical pg_serial
pg_subtrans postgresql.auto.conf server.log
vous pouvez le localiser en localisant l'un des fichiers et répertoires ci-dessus en utilisant la recherche fournie avec votre système D'exploitation.
Par exemple dans mon cas (un HomeBrew installer sur Mac OS X ), ces fichiers sont situés dans /usr/local/var/postgres
. Pour démarrer le serveur, tapez:
pg_ctl -D /usr/local/var/postgres -w start
... et il fonctionne.
sur Windows, le répertoire PGDATA que le PostgresSQL docs décrivent est quelque part comme C:\Program Files\PostgreSQL.1\data
. Les données pour une base de données particulière est (par exemple) C:\Program Files\PostgreSQL.1\data\base0929
, où je suppose 100929 est le numéro de la base de données.
tout le monde a déjà répondu, mais juste pour les dernières mises à jour. Si vous voulez savoir où tous les fichiers de configuration se trouvent, lancez cette commande dans le shell
SELECT name, setting FROM pg_settings WHERE category = 'File Locations';