나만의 개발 로그 | 고민 로그
Docker PostgresSQL 컨테이너 Dump 후 로컬에서 복원하기(도커 컨테이너 -> 리눅스 서버(호스트) -> 로컬) 본문
DB
Docker PostgresSQL 컨테이너 Dump 후 로컬에서 복원하기(도커 컨테이너 -> 리눅스 서버(호스트) -> 로컬)
ultramancode 2023. 12. 8. 08:43사내 서버 도커에서 돌고 있는 postgreSQL dump 뜨기
흐름
1. 서버 원격 접속 (ssh)
2. Docker안에서 돌아가는 postgreSQL 접속
3. Docker 내 Dump 파일 생성
4. Docker 밖으로 끄집어내기
5. 로컬로 옮기기
1. 서버 원격 접속 (ssh)
ssh [아이디@IP]
비밀번호 입력
2. Docker postgreSQL 컨테이너 쉘 진입
docker ps
- docker ps 명령어를 통해 postgreSQL 컨테이너 ID를 알아낸다.
docker exec -it 컨테이너ID /bin/bash
- 이후 docker postgreSQL 컨테이너 쉘 진입
3. Docker 컨테이너 내부 Dump 파일 생성
pg_dump -U 유저 -d 데이터베이스 -f 파일이름.sql
- dump 따는 명령어를 입력하기(도커 컨테이너 내 최상위 루트에 존재)
4. Docker 컨테이너 -> 리눅스 서버(호스트)로 복사
docker cp 컨테이너ID:/파일명.sql ~
- 도커 컨테이너에 있는 덤프파일을 리눅스 서버(호스트)로 가져온다. (~를 통해 최상위에다 넣는게 편했음)
5. 리눅스 서버 -> 내 로컬 PC 가져오기
scp 아이디@아이피:/원본 경로/파일명.sql /옮길 경로(내 로컬)/
- 리눅스 서버에 있는 파일을 내 로컬로 가져온다.
- 경로에 있는 파일을 못찾을 경우, 파일에 댇한 해당 아이디 권한도 확인해보자.
간단 요약하자면
컨테이너 → 호스트 → 로컬 세 단계 복사를 거치기!
참고)
postgreSQL 기준 dump파일로 테이블 새로 만들기
psql --u 유저 postgres(원하는 db)
create database 이름;
exit;
psql -U kimtaewoong -d 데이터베이스이름 < 백업파일.sql
'DB' 카테고리의 다른 글
DB 이것 저것 정리! (feat.SQL 실행순서..) (0) | 2024.01.19 |
---|---|
개발 서버 DB Connection Pool 장애 대응기 (0) | 2024.01.04 |
SQL -3 (0) | 2023.01.13 |
SQL -2 (0) | 2023.01.13 |
SQL -1 (0) | 2023.01.13 |
Comments