dbeaver를 이용한 DB Dump

Lukaid·2024년 4월 19일
post-thumbnail

n100 mini pc를 한대 들이고, 기존에 작업용(그리고 배포용)으로 쓰던 pc를 어떻게 할까 고민하다가, 저전력의 n100 mini pc를 상시 켜두는 배포 서버용으로 두고, 기존의 5600g pc를 한번 싹 밀고, 개발 및 기타 용도로 두루두루 사용하기 위해 기존 pc 마이그래이션 작업에 들어갔다.

dbeaver를 이용한 DB Dump

마이그래이션 대상 프로젝트가 nginx - was (django) - db (postgres) 모두 docker-compose로 구성되어 있어서, volume만 따면 되겠다고 생각했다. 결론적으로는 2시간정도 트라이했는데, 실패했다... 계속 빈 파일만 나오는데 원인을 모르겠는걸... 그래서 일단 성공한 방법을 먼저 소개한다.

dbeaver

dbeaver는 아주 훌륭한 무료 오픈 소스 데이터베이스 솔루션으로, 손쉽게 데이터베이스 연결 및 관리, 데이터 탐색 및 편집 그리고 데이터베이스 백업과 복원을 할 수 있는 툴이다. 또한 Windows, macOS 및 Linux 등 다양한 플랫폼을 지원한다.

전 직장에서도 아주 요긴하게 써먹은 녀석인데, 원래는 생각 못하고 있다가 번뜩 생각나서 이녀석으로 작업했다.

나는 ubuntu에서 작업을 했기에 ubuntu gui를 기준으로 설명한다.

설치

dbeaver에서 devian용 설치 파일을 다운받아주자.

그 후

dpkg -i dbeaver-ce_24.0.2_amd64.deb

설치 끝

오늘 알게 된 것

원래 dbeaver를 잘 써왔는데 오늘 이상하게 버벅이고 뭐가 잘 안되었다.

첫번째로, 내가 원하는 db가 선택이 안됐고, 두번째로는 덤프가 안됐다...

dbeaver connection

모두 이 사진 한장으로 설명이 가능한데, 우선 Show all databases를 꼭 선택해주자. 저런 옵션이 있는지도 몰랐는데... 저거때문에 시간 엄청 잡아먹았다.

다음은 local client인데, 처음에는 저게 선택이 안되어있었다... 덤프를 뜨고싶은 로컬 pc에 postgres client가 설치가 되어있어야 하고, 버전이 맞아야한다. (local의 버전이 더 높아도 되는듯?)

나의 경우엔 docker로 postgres 15버전을 사용하고 있었는데, local은 14버전이라 버전업을 해줬다.

진짜 시간이 많이 걸렸던건, local client를 선택해 줄 때였는데,

local client

여기서 도저히 어떻게 해야할지 몰랐다...

우선

which pg_dump

를 통해서 pg_dump가 어디있는지 알아야한다.

which pg_dump

나의 경우 /usr/bin/pg_dump에 있었는데 보통 여기 있다고 한다.

이 다음이 중요한데, 나는 저 파일을 정확히 짚어줘야 하는 줄 알았다. (여기서 진짜 한시간은 해맸다.)

하지만 정답은...

pg_dump directory

그냥 pg_dump가 있는 디렉토리만 선택해주면 된다... 후...

얘만 잡아주면 그 후는 잘 진행되었다...

감격의 성공 순간...

이후는 그냥 host pc에 restore해주면 된다.

정리

개발이 어려운건, 개념이 어려운 것 보다, 이런 사소한 것에서 막혔을 때의 스트레스가 가장 큰 것 같다.

profile
풀스택 지향 웹개발자 이성우입니다.

0개의 댓글