it-swarm.dev

postgres 데이터베이스에서 단일 테이블의 백업을 만드는 방법은 무엇입니까?

Postgres를 사용하여 데이터베이스 내에서 단일 테이블의 백업을 만드는 방법이 있습니까? 그리고 어떻게? 이것은 pg_dump 명령에서도 작동합니까?

125
Roland

--table을 (를) 사용하여 pg_dump에게 백업 할 테이블을 알려주십시오.

pg_dump --Host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "<abstract_file_path>" --table public.tablename dbname
172
Frank Heikens

우분투에 있다면

  1. Postgres 사용자 Sudo su postgres에 로그인
  2. pg_dump -d <database_name> -t <table_name> > file.sql

postgres 사용자에게 쓰기 권한이있는 명령을 실행하고 있는지 확인하십시오 (예 : /tmp)

편집

다른 컴퓨터에서 .sql을 덤프하려면 .sql 파일에 저장된 소유자 정보를 건너 뛰는 것을 고려해야합니다.

pg_dump --no-owner -d <database_name> -t <table_name> > file.sql를 사용할 수 있습니다

67
Sri Harsha Kappala

pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table> backup.sql

단일 테이블의 백업을 수행 할 수 있지만 전체 데이터베이스의 백업을 수행 한 다음 필요한 테이블을 복원하는 것이 좋습니다. 항상 전체 데이터베이스를 백업하는 것이 좋습니다.

pg_dump를 사용하는 9 가지 방법

31
Prashant Kumar

그래픽 사용자 인터페이스를 선호하는 경우 pgAdmin III (Linux/Windows/OS X)을 사용할 수 있습니다. 선택한 테이블을 마우스 오른쪽 버튼으로 클릭 한 다음 "백업"을 클릭하십시오. pg_dump 명령이 생성됩니다.

enter image description here

enter image description here

enter image description here

10
Franck Dernoncourt

Frank Heiken의 답변 외에도 copy from stdin 대신 INSERT 문을 사용하려면 --inserts 플래그를 지정해야합니다

pg_dump --Host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname

--ignore-version 플래그는 더 이상 사용되지 않으므로 생략되었습니다.

0
user3207874