기타

Postgresql Database 백업 및 복구 방법, Table 단위 백업 및 복구 방법

Soyeon0111 2022. 1. 24. 22:55
반응형

1. Database 백업 및 복구

 

  •  백업 하기

1. Docker container 진입하여 Database 백업

   $ docker exec -it db_container_name bash

   ( docker exec -it -e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM db_container_name bash  #가로세로 현재터미널과 동일하게 설정 )

   root@8878dce46d40:/# pg_dump -U username -d database_name > database_bak.dump

 

2. 백업 파일을 docker container 내부에서 host로 복사

   $ docker cp db_container_name:/database_bak.dump /home/test

 

  •  복구 하기

1. Docker container 내부로 백업파일 복사

   $ docker cp database_bak.dump db_container_name:/

2. Docker container 진입하여 Database 복구

   a. 기존 Database 삭제 (기존 Database 삭제안하고 복구 시도 시 error 발생)

   $ docker exec -it db_container_name dropdb -U username database_name

   b. Database 생성 및 복구

   $ docker exec -it db_container_name bash

   root@b6a33a579863:/# psql -U username postgres

   psql (11.3 (Debian 11.3-1.pgdg90+1))

   postgres=# create database database_name;

   root@b6a33a579863:/# psql -U username -f database_bak.dump database_name

 

 

2. Table 백업 및 복구

 

pg_dump 명령에서 --table 옵션만 추가하여 진행한다.

 

  • Postgresql table 백업 

1. Docker container 진입하여 table 백업

  $ docker exec -it db_container_name bash

  ( docker exec -it -e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM db_container_name bash  #가로세로 현재터미널과 동일하게 설정 )

  root@8878dce46d40:/# pg_dump -U username -d database_name --table=tablename > table_bak.dump

 

2. 백업 파일을 docker container 내부에서 host로 복사

  $ docker cp database_name:/table_bak.dump /home/test

 

  • Postgresql table 복구

  database 복구와 동일함

 


 

https://idchowto.com/?p=45509

http://www.kwangsiklee.com/2018/05/postgres-docker사용시-유용한-명령어들/

반응형