2022-05-23-postgreSQL-데이터옮기기
본문 바로가기
DataBase

2022-05-23-postgreSQL-데이터옮기기

by KyeongMin 2022. 5. 24.
728x90
반응형

01.DBeaver를 이용하여 export해서 데이터 옮기기

01.1 테이블 조회 하기

  • 전체쿼리를 조회 한다 그리고제일 아래 export 버튼을 클릭한다.

01.2 데이터 export하기

  • SQL 클릭하고 다음 클릭

  • 다음 클릭

  • INSERT 로우 개수 설정후 다음 클릭

  • 저장한 디렉토리 위치 설정 후 다음 클릭

  • 진행 버튼 클릭을 하게 되면 알아서 자동으로 insert문으로 생성됨

  • 위와 같이 자동으로 생성된다. 위를 원하는 디비에 옮겨서 실행하면됨

02.명령어를 이용하여 데이터 옮기기

02.1 pg_dump를 이용하여 Export하기

  • 사용법
  • docker exec {컨테이너_이름} pg_dump -U {DB_유저이름} -d {DB_이름} > {원하는_이름_설정}.sql
  • 실제 사용 (container ID : superset_db)
    • 위 와 같이 sql문 생성됨
  • docker exec superset_db pg_dump -U superset -d superset > dump_superset.sql
  • dump_superset.sql 문서 확인

02.2 psql를 이용하여 Import하기

  • 사용법
  • docker exec {컨테이너_이름} psql -U {DB_유저이름} -d {DB_NAME} -f {컨테이너내 경로를 포함한 백업파일명}.sql
  • 실제 사용 | 해당경로 위치에서 실행
    • 현재 그대로 진행하면 경로에 파일이 없다고 나옴 02.3 문제해결 부분 참고
      • 제대로 동작을 한다면 아래와 같은 결과로 진행됨
    • before
    • after
      • 위와 같이 테이블이 생성됨이 보인다.
  • docker exec postgres psql -U postgres -d backup_test -f /var/lib/postgresql/data
    /dump_superset.sql

02.3 문제 해결

  • 경로를 못찾는 상태 발견
    • 이유를 잘 생각해보면 정말 원초적인 실수
    • 당연히 로컬에 파일이 있고 컨테이너에 파일이 없기때문에 파일을 못찾았던것
      • 로컬 파일 복사
      • 파일위치는 /root에 있는 경우로 진행
      • 실제 컨테이너로 들어가서 확인 진행
        • 위와 같이 복사된것이 확인됨
    • docker cp ~/dump_exercise.sql postgres:/var/lib/postgresql/data/
      
  • 그리고 명령어 다시 실행해주면 제대로 동작함
  • docker exec postgres psql -U postgres -d postgres -f /var/lib/postgresql/data
    /dump_superset.sql
    

03.전체진행 소스 정리

  • 시작 시나리오
    • superset_db이름을 가진 postgres컨테이너의 superset 데이터베이스의 데이터 전체
      • postgres이름을 가진 postgres컨테이너의 backup_test데이터베이스로 데이터 이관하는 경우
# dump_superset.sql 파일생성 (백업파일)
docker exec superset_db pg_dump -U superset -d superset > dump_superset.sql

# 해당 dump_superset.sql root 위치로 이동시키기

# 로컬파일 컨테이너로 복사
docker cp ~/dump_superset.sql postgres:/var/lib/postgresql/data/

# 해당파일 실행하여 데이터 이관
docker exec postgres psql -U postgres -d postgres -f /var/lib/postgresql/data
/dump_superset.sql

https://github.com/3DPIT/3dpit.github.io/blob/main/content/blog/DataBase/2022-05-23-postgreSQL-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%98%AE%EA%B8%B0%EA%B8%B0.md

 

GitHub - 3DPIT/3dpit.github.io

Contribute to 3DPIT/3dpit.github.io development by creating an account on GitHub.

github.com

 

728x90
반응형

'DataBase' 카테고리의 다른 글

2022-05-30-oracle과-postgres-3일차비교  (0) 2022.06.13
2022-05-30-oracle과-postgres-2일차비교  (0) 2022.06.13
22-04-12-PostgreSQL-쿼리연습  (0) 2022.04.12
2021년10월26일_join의종류  (0) 2021.10.26
6. SQL ( COUNT, SUM)  (0) 2020.06.10

댓글