programing

Postgre는 어디에 있습니까?SQL에서 데이터베이스를 저장하시겠습니까?

telebox 2023. 5. 17. 22:45
반응형

Postgre는 어디에 있습니까?SQL에서 데이터베이스를 저장하시겠습니까?

Postgre 파일은 어디에 있습니까?SQL 데이터베이스를 저장하시겠습니까?

데이터 디렉토리의 위치를 확인하려면 이 쿼리를 사용합니다.

show data_directory;

모든 런타임 매개변수를 보려면 다음을 사용합니다.

show all;

테이블스페이스를 만들어 파일 시스템의 다른 부분에 데이터베이스 개체를 저장할 수 있습니다.해당 데이터 디렉토리에 없을 수 있는 테이블스페이스를 보려면 이 쿼리를 사용합니다.

SELECT *, pg_tablespace_location(oid) FROM pg_tablespace;

7 7)에서는 모든 7(윈도우 7) 됩니다.pg_databaseC:\Program Files (x86)\PostgreSQL\8.2\data\global그런 다음 아래의 해당 번호로 폴더 이름을 검색해야 합니다.C:\Program Files (x86)\PostgreSQL\8.2\data\base이것이 데이터베이스의 내용입니다.

"Postgre"에서 제안한 바와 같이리눅스의 SQL 데이터베이스 기본 위치"에서 다음 명령을 사용하여 확인할 수 있습니다.

ps aux | grep postgres | grep -- -D

pgAdmin을 열고 특정 데이터베이스의 속성으로 이동합니다.OID를 찾은 다음 디렉토리 열기

<POSTGRESQL_DIRECTORY>/data/base/<OID>

DB 파일이 있어야 합니다.

Linux를 설치하면 다음과 같습니다./var/lib/postgresql/8.x/

있다니습으로 변경할 수 .initdb -D "c:/mydb/"

모두가 이미 응답했지만 최신 업데이트에 대해서만 응답했습니다.모든 구성 파일이 어디에 있는지 알고 싶다면 셸에서 이 명령을 실행합니다.

SELECT name, setting FROM pg_settings WHERE category = 'File Locations';

당신이 이 질문을 하는 것은 당신이 노력했기 때문일 것입니다.pg_ctl start다음 오류를 수신했습니다.

pg_ctl: 데이터베이스 디렉토리가 지정되지 않았으며 환경 변수 PGDATA가 설정되지 않았습니다.

즉, 다음에 추가할 디렉터리를 찾고 있습니다.-D의 신의에pg_ctl start지휘권

이 경우 찾으려는 디렉터리에 이러한 파일이 들어 있습니다.

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

OS와 함께 제공된 검색을 사용하여 위의 파일 및 디렉터리를 찾아 찾을 수 있습니다.

예를 들어, 제 경우(Mac OS XHomeBrew 설치), 이러한 파일은/usr/local/var/postgres서버를 시작하려면 다음을 입력합니다.

pg_ctl -D /usr/local/var/postgres -w start

...그리고 그것은 동작한다.

Postgres는 데이터 디렉토리의 파일에 데이터를 저장합니다.다음 단계에 따라 데이터베이스와 해당 파일로 이동합니다.

postgresql 파일입니다.데이터 는 전체데디의위다치실수얻있다니습을행여음하을는리이를 하여 얻을 수 .SHOW data_directory Mac) UNIX 같 OS(하드웨어: Mac) 서/Library/PostgreSQL/9.4/data 안으로 ./Library/PostgreSQL/9.4/data/base

를 실행하여 데이터베이스 폴더 이름을 찾습니다(정수 지정).데이터베이스 폴더 이름):

SELECT oid from pg_database WHERE datname = <database_name>;

를 실행하여 테이블 파일 이름을 찾습니다(정수 제공).다음은 파일 이름입니다.

SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

이것은 이진 파일입니다.크기 및 작성 날짜 시간과 같은 파일 세부 정보는 정상적으로 얻을 수 있습니다.자세한 내용은 이 SO 스레드를 참조하십시오.

TABLESPACE를 사용하여 특정 테이블/인덱스의 위치를 조정할 수 있습니다.

CREATE TABLESPACE dbspace LOCATION '/data/dbs';
CREATE TABLE something (......) TABLESPACE dbspace;
CREATE TABLE otherthing (......) TABLESPACE dbspace;

Mac의 경우:/Library/PostgreSQL/9.0/data/base

디렉터리를 입력할 수 없지만 다음을 통해 내용을 볼 수 있습니다.sudo du -hc data

픽메이트의 대답은 옳습니다.기본 DB 폴더 위치는 창에서 (적어도 내 설치에서)

C:\PostgreSQL\9.2\data\base\

프로그램 파일에 없습니다.

필요한 디렉터리/파일을 제공합니다.

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

제 이름은 datname 16393이고 렐파일코드는 41603입니다.

postgresql의 데이터베이스 파일

윈도우즈의 경우 Postgres가 사용하는 PGDATA 디렉터리SQL 문서는 다음과 같은 위치에 설명되어 있습니다.C:\Program Files\PostgreSQL\8.1\data특정 데이터베이스에 대한 데이터가 아래에 있습니다(예:C:\Program Files\PostgreSQL\8.1\data\base\100929여기서 100929는 데이터베이스 번호인 것 같습니다.

나는 도커 컨테이너에서 (우연히 CentOS에서) 포스트그스(9.5)를 실행하고 있으며, 스키피플 그랜드 구루가 위의 댓글에서 언급했듯이, 파일은 다음에 있습니다./var/lib/postgresql/data/.

$ docker exec -it my-postgres-db-container bash
root@c7d61efe2a5d:/# cd /var/lib/postgresql/data/
root@c7d61efe2a5d:/var/lib/postgresql/data# ls -lh
total 56K
drwx------. 7 postgres postgres   71 Apr  5  2018 base
drwx------. 2 postgres postgres 4.0K Nov  2 02:42 global
drwx------. 2 postgres postgres   18 Dec 27  2017 pg_clog
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_commit_ts
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_dynshmem
-rw-------. 1 postgres postgres 4.4K Dec 27  2017 pg_hba.conf
-rw-------. 1 postgres postgres 1.6K Dec 27  2017 pg_ident.conf
drwx------. 4 postgres postgres   39 Dec 27  2017 pg_logical
drwx------. 4 postgres postgres   36 Dec 27  2017 pg_multixact
drwx------. 2 postgres postgres   18 Nov  2 02:42 pg_notify
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_replslot
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_serial
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_snapshots
drwx------. 2 postgres postgres    6 Sep 16 21:15 pg_stat
drwx------. 2 postgres postgres   63 Nov  8 02:41 pg_stat_tmp
drwx------. 2 postgres postgres   18 Oct 24  2018 pg_subtrans
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_tblspc
drwx------. 2 postgres postgres    6 Dec 27  2017 pg_twophase
-rw-------. 1 postgres postgres    4 Dec 27  2017 PG_VERSION
drwx------. 3 postgres postgres   92 Dec 20  2018 pg_xlog
-rw-------. 1 postgres postgres   88 Dec 27  2017 postgresql.auto.conf
-rw-------. 1 postgres postgres  21K Dec 27  2017 postgresql.conf
-rw-------. 1 postgres postgres   37 Nov  2 02:42 postmaster.opts
-rw-------. 1 postgres postgres   85 Nov  2 02:42 postmaster.pid

단일 터미널 명령:pg_lsclusters(Ubuntu 사용)

필요한 것은 데이터 디렉토리 아래에 있습니다.

Ver Cluster Port Status Owner    Data directory               Log file
10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
11  main    5433 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log

언급URL : https://stackoverflow.com/questions/1137060/where-does-postgresql-store-the-database

반응형