본문 바로가기

DB/Postgresql

Postgresql 백업 및 복구

PostgreSQL에서 SQL 덤프를 통한 백업으로 pg_dump 명령어를 제공한다.

pg_dump 명령어를 통해 백업을 하면 디폴트로 dump 파일로 저장된다.


0. 샘플 테이블 생성

CREATE TABLE table_01 (
  id SERIAL PRIMARY KEY,
  title text,
  name text,
  age text,
  information text
);

- 샘플 데이터 INSERT 작업 수행 및 조회

INSERT INTO table_01 values(1, 'test', 'test', 'test', 'test');

select * from public.table_01;

1. 특정 DB만 백업 및 복원

- 백업 : pg_dump -U {소유주} {DB명} > {백업파일명}

pg_dump -U postgres test_db > db_backup.sql

- test_db2 데이터베이스 생성(기존 테이블이 존재하니, 동일한 테이블 명으로는 복원이 안됨)

CREATE DATABASE test_db2 OWNER test;

- 복원 : psql -U {소유주} {DB명} < {백업파일명}

psql -U postgres test_db2 < db_backup.sql

2. 특정 테이블만 백업 및 복원

- 백업 : pg_dump -U {소유주} {DB명} -t {테이블명} > {백업파일명}

pg_dump -U postgres test_db -t test_table > db_backup.sql

- 복원 : psql -U {소유주}  -f {백업파일명} {DB명}

psql -U postgres -f db_backup.sql test_db2

3. 혹시나 위의 백업 및 복구가 잘 안될경우 (인증 및 기타 오류 발생 시) 아래의 링크를 참조하여 수행

2022.12.06 - [DB/Postgresql] - Postgresql DB 백업 및 복원

 

Postgresql DB 백업 및 복원

# Postgresql DB 백업 및 복원 스크립트 작성 - 일단 superuser 계정으로 접속을 해야함. - 백업 스크립트 : db_backup.sh #!/bin/bash #----- DELETE FILE_NAME SETTING ----- DEL_FILE=$(date -d '30 day ago' +'%Y-%m-%d_')"*.dump" #----- F

may9noy.tistory.com