ServBay 데이터베이스 파일 관리 및 마이그레이션 가이드
ServBay는 강력한 로컬 웹 개발 환경으로 여러 종류의 데이터베이스 관리 시스템을 통합하고, 데이터 파일을 체계적으로 관리합니다. ServBay의 데이터베이스 파일 기본 저장 구조를 이해하는 것은 개발자가 데이터 백업, 복원, 마이그레이션을 안전하게 수행하는 데 매우 중요합니다.
이 문서에서는 ServBay의 기본 데이터베이스 파일 저장 구조를 자세히 설명하고, 표준 커맨드라인 도구를 활용한 데이터베이스 파일 관리와 환경 간 마이그레이션 방법을 안내합니다.
TIP
ServBay에서는 MySQL, MariaDB, PostgreSQL 데이터베이스의 자동 또는 수동 백업 및 복원 기능을 제공합니다. 자세한 내용은 백업 및 복원을 참고하세요.
ServBay 데이터베이스 파일 기본 저장 구조
다양한 데이터베이스 버전별 데이터 관리를 쉽게 하고 서로 분리하기 위해, ServBay는 모든 데이터베이스 파일을 /Applications/ServBay/db
디렉터리에 통합 저장합니다. 해당 디렉터리는 데이터베이스 타입별로 분류되며, 각 타입 폴더 아래에는 주요 버전(major version)별로 파일이 관리됩니다.
아래는 /Applications/ServBay/db
디렉터리의 대표적인 구조 예시입니다:
/Applications/ServBay/db
├── mysql
│ ├── 8.0
│ └── 8.1
├── mariadb
│ ├── 10.10
│ ├── 10.11
│ ├── 10.5
│ ├── 10.6
│ ├── 10.7
│ ├── 10.8
│ ├── 10.9
│ ├── 11.0
│ ├── 11.1
│ ├── 11.2
│ └── 11.3
├── postgresql
│ ├── 10
│ ├── 11
│ ├── 12
│ ├── 13
│ ├── 14
│ ├── 15
│ └── 16
└── redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
디렉터리 구조 설명
/Applications/ServBay/db
: ServBay에서 모든 데이터베이스 파일이 저장되는 주 디렉터리입니다.mysql
: MySQL 데이터베이스의 데이터 파일을 저장합니다. 하위 폴더는 주요 버전(예:8.0
,8.1
)별로 생성됩니다.mariadb
: MariaDB 데이터베이스의 데이터 파일을 저장합니다. 하위 폴더는 주요 버전(예:10.11
,11.3
)별로 생성됩니다.postgresql
: PostgreSQL 데이터베이스의 데이터 파일을 저장합니다. 하위 폴더는 주요 버전(예:15
,16
)별로 생성됩니다.redis
: Redis의 영속화 파일(주로dump.rdb
)을 저장합니다.
이러한 구조를 통해 ServBay에서는 동일한 종류의 데이터베이스 여러 버전을 동시에 설치 및 실행할 수 있으며, 각 버전의 데이터 파일은 분리되어 있어 상호 영향을 주지 않습니다.
데이터베이스 파일 관리
로컬 개발 환경에서 데이터베이스 백업, 복원, 마이그레이션 작업을 자주 수행하게 됩니다. 아래는 각 데이터베이스의 표준 커맨드라인 도구를 이용한 주요 관리 방법입니다. 이 작업들은 ServBay의 터미널 환경이나 올바른 환경 변수 설정이 필요할 수 있으며, 해당 데이터베이스 클라이언트와 도구에 접근할 수 있어야 합니다.
데이터베이스 백업
정기적인 백업은 데이터 안전을 위한 핵심 단계입니다. ServBay에서 여러 데이터베이스 유형을 백업하는 방법은 다음과 같습니다.
MySQL 백업
MySQL 백업에는 mysqldump
도구를 사용합니다.
bash
# ServBay 제공 터미널을 사용하거나, PATH 환경 변수에 ServBay의 bin 디렉터리가 포함되어 있어야 합니다.
# 예시: export PATH="/Applications/ServBay/bin:$PATH"
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
4
2
3
4
your_username
: 본인의 데이터베이스 사용자명으로 변경하세요.your_database
: 백업할 데이터베이스 이름으로 변경하세요./Applications/ServBay/backup/your_database.sql
: 백업 파일을 저장할 경로와 파일명으로 변경하세요. 백업 파일은 가능하면 ServBay 폴더 외부, 예를 들어 사용자 홈 디렉터리에 저장하시길 권장합니다.
MariaDB 백업
MariaDB 백업도 MySQL과 동일하게 mysqldump
를 사용합니다.
bash
# ServBay 제공 터미널을 사용하거나, PATH 환경 변수에 ServBay의 bin 디렉터리가 포함되어 있어야 합니다.
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- 위와 동일한 인자 설명이 적용됩니다.
PostgreSQL 백업
PostgreSQL은 pg_dump
도구를 통해 백업합니다. ServBay에서는 PostgreSQL이 일반적으로 Unix Domain Socket 연결(/Applications/ServBay/tmp
경로)을 사용하므로, 명령어에 -h /Applications/ServBay/tmp
설정이 필요합니다.
bash
# ServBay 제공 터미널을 사용하거나, PATH 환경 변수에 ServBay의 bin 디렉터리가 포함되어 있어야 합니다.
pg_dump -h /Applications/ServBay/tmp -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
- 연결 인자: PostgreSQL 서버 연결 방식 설정
- macOS:
-h /Applications/ServBay/tmp
(Unix Domain Socket 경로) - Windows:
-h localhost -p 5432
(TCP 연결)
- macOS:
-U your_username
: 본인의 데이터베이스 사용자명-d your_database
: 백업할 데이터베이스명-F c
: 출력 포맷을 사용자 정의 아카이브 형식으로 지정(권장)-b
: BLOB 등 대용량 객체 포함-v
: 상세 로그 출력-f /Applications/ServBay/backup/your_database.dump
: 백업 파일 저장 경로 및 파일명 지정
Redis 백업
Redis는 dump.rdb
파일을 직접 복사하는 방식으로 백업합니다.
bash
# ServBay 제공 터미널 사용
# Redis 서비스가 동작 중이거나 BGSAVE가 자동 저장되도록 설정되어 있어야 합니다.
cp /Applications/ServBay/db/redis/dump.rdb /Applications/ServBay/backup/dump.rdb
1
2
3
4
2
3
4
/Applications/ServBay/db/redis/dump.rdb
: Redis 기본 영속화 파일 경로/Applications/ServBay/backup/dump.rdb
: 백업 파일 저장 경로 및 파일명으로 변경하세요.
데이터베이스 복원
데이터 손실이나 이전 상태로 되돌릴 필요가 있을 때, 백업 파일을 통해 복원이 가능합니다.
MySQL 복원
MySQL에서는 mysql
클라이언트를 활용해 백업 파일을 복원합니다.
bash
# ServBay 제공 터미널 사용
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
your_username
: 데이터베이스 사용자명your_database
: 복원할 데이터베이스명(사전 생성 필요)/Applications/ServBay/backup/your_database.sql
: 백업 파일 경로
MariaDB 복원
MariaDB 역시 동일하게 mysql
클라이언트를 활용합니다.
bash
# ServBay 제공 터미널 사용
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- 인자 설명은 위와 동일합니다.
PostgreSQL 복원
PostgreSQL의 사용자 정의형식 백업 파일은 pg_restore
로 복원합니다. 역시 -h /Applications/ServBay/tmp
지정이 필요합니다.
bash
# ServBay 제공 터미널 사용
pg_restore -h /Applications/ServBay/tmp -U your_username -d your_database -v /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
- 연결 인자:
- macOS:
-h /Applications/ServBay/tmp
(Unix Domain Socket 경로) - Windows:
-h localhost -p 5432
(TCP 연결)
- macOS:
-U your_username
: 데이터베이스 사용자명-d your_database
: 복원할 데이터베이스명(사전 생성 필요)-v
: 상세 로그 출력- 백업 파일 경로:
- macOS:
/Applications/ServBay/backup/your_database.dump
- Windows:
C:\ServBay\backup\your_database.dump
- macOS:
Redis 복원
Redis 복원은 백업된 dump.rdb
파일을 Redis 데이터 디렉터리에 복사하는 방식입니다. 중요: 해당 작업은 Redis 서비스가 중지된 상태에서 진행해야 합니다.
bash
# ServBay 제공 터미널 사용
# ServBay 내 Redis 서비스 중지
# 백업 파일 복사
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# ServBay 내 Redis 서비스 재시작
1
2
3
4
5
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: 백업 파일 경로/Applications/ServBay/db/redis/dump.rdb
: Redis 기본 영속화 파일 경로
데이터베이스 마이그레이션
데이터베이스 마이그레이션은 한 환경(예: 또 다른 ServBay 인스턴스, 원격 서버, 다른 로컬 환경)에서 다른 환경으로 데이터베이스를 옮기는 작업입니다. 보통 소스 환경에서 데이터 내보내기 후, 대상 환경에서 데이터 가져오기를 수행합니다.
MySQL 마이그레이션
MySQL 마이그레이션은 실무에서 자주 발생하는 작업입니다.
소스 환경에서 데이터베이스 내보내기:
bash# 소스 환경 터미널에서 실행 mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: 소스 환경의 데이터베이스 사용자명your_database
: 마이그레이션 할 데이터베이스명your_database.sql
: 내보낸 SQL 파일 이름
내보낸 SQL 파일을 대상 환경으로 전송:
scp
등 파일 전송 도구로your_database.sql
파일을 ServBay 환경에서 접근 가능한 위치(예:/Applications/ServBay/backup/
)로 이동합니다.대상 ServBay 환경에서 데이터베이스 생성:
bash# 대상 ServBay 터미널에서 실행 mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: 대상 ServBay 환경의 사용자명your_database
: 생성할 데이터베이스명(소스와 동일하게 유지 권장)
대상 ServBay에서 데이터베이스 가져오기:
bash# 대상 ServBay 터미널에서 실행 mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: SQL 파일의 실제 경로로 변경
MariaDB 마이그레이션
MariaDB 마이그레이션은 MySQL과 과정이 완전히 동일합니다.
- 소스 환경에서 데이터베이스 내보내기:bash
# 소스 환경 터미널에서 실행 mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - 내보낸 SQL 파일을 대상 환경으로 전송
- 대상 ServBay 환경에서 데이터베이스 생성:bash
# 대상 ServBay 터미널에서 실행 mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - 대상 ServBay에서 데이터베이스 가져오기:bash
# 대상 ServBay 터미널에서 실행 mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2
PostgreSQL 마이그레이션
PostgreSQL 마이그레이션은 pg_dump
와 pg_restore
를 사용하며, ServBay 환경의 소켓 파일 경로를 주의해야 합니다.
소스 환경에서 데이터베이스 내보내기:
bash# 소스 환경 터미널에서 실행 # 소스 환경이 ServBay일 경우 pg_dump -h /Applications/ServBay/tmp -U your_source_username -d your_database -F c -b -v -f your_database.dump # 소스가 다른 시스템이라면 환경에 맞게 연결 인자 수정
1
2
3
4your_source_username
: 소스 환경의 사용자명your_database
: 마이그레이션할 데이터베이스명your_database.dump
: 내보낸 백업 파일명
내보낸 백업 파일을 대상 ServBay 환경으로 이동:
scp
등으로your_database.dump
파일을 서비스 환경에서 접근 가능한 경로로 이동합니다.대상 ServBay에서 데이터베이스 생성:
bash# 대상 ServBay 터미널에서 실행 # postgres 기본 데이터베이스에 연결 후 새 데이터베이스 생성 psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: 대상 사용자명your_database
: 생성할 데이터베이스명
대상 ServBay에서 데이터베이스 복원:
bash# 대상 ServBay 터미널에서 실행 pg_restore -h /Applications/ServBay/tmp -U your_target_username -d your_database -v /path/to/your_database.dump
1
2/path/to/your_database.dump
: 백업 파일의 실제 경로로 변경
Redis 마이그레이션
Redis 마이그레이션은 dump.rdb
파일을 직접 복사하여 진행합니다.
소스 환경에서
dump.rdb
확보:bash# 소스 터미널에서 실행 # Redis 서비스 중지하거나 BGSAVE 완료 후 진행 cp /path/to/source/redis/dump.rdb ./dump.rdb
1
2
3dump.rdb
파일을 대상 ServBay의 Redis 데이터 디렉터리로 전송:bash# 소스 또는 중간 서버에서 실행 scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
: 대상 ServBay 서버 주소 또는 호스트명- 중요: 대상 ServBay
/Applications/ServBay/db/redis/
디렉터리로 복사 전, 반드시 ServBay의 Redis 서비스를 중지하세요.
대상 ServBay 환경에서 Redis 서비스 시작: Redis 서비스 시작 후 자동으로 새로운
dump.rdb
파일을 읽습니다.
참고 사항
- 서비스 중지 필수: 데이터베이스 파일(특히 MySQL/MariaDB/PostgreSQL 데이터 디렉터리)을 직접 복사, 이동하기 전 반드시 ServBay의 GUI 또는 커맨드라인 도구로 해당 데이터베이스 서비스를 중지하세요. 실행 중인 상태에서 파일을 직접 복사하면 데이터 손상이나 불일치가 발생할 수 있습니다. Redis 역시
dump.rdb
파일을 복원할 때 서비스 중지 필수입니다. - 권한 관리: 파일 복사, 이동, 가져오기를 실행하는 계정에 필요한 디렉터리와 파일 수정 권한이 있는지 확인하세요.
- 폴더 경로 확인: ServBay의 설치 경로(보통
/Applications/ServBay
), 데이터베이스별 파일 경로, 각 버전 하위 디렉터리를 정확히 확인하세요. - 사용자 및 권한: 마이그레이션 후 데이터베이스의 사용자, 권한, 설정 파일도 새로운 환경에 맞게 확인 및 수정이 필요할 수 있습니다.
- ServBay 내장 백업: ServBay는 GUI를 통해 손쉽게 환경 설정, 웹사이트 파일, 데이터베이스, SSL 인증서의 백업 및 복원을 지원하므로 수동 파일 관리의 보완 또는 대안으로 활용할 수 있습니다.
요약
ServBay는 체계화된 파일 구조를 통해 개발자가 데이터베이스 파일을 명확하게 관리할 수 있는 기반을 제공합니다. 이 문서에서는 MySQL, MariaDB, PostgreSQL, Redis 데이터베이스의 ServBay 저장 위치와 표준 커맨드라인 도구를 활용한 백업, 복원, 마이그레이션 실전 가이드를 안내했습니다. 이러한 기능을 익혀두면 로컬 개발 환경에서 데이터베이스를 더욱 효율적으로 관리하고 데이터 안전성을 확보할 수 있습니다. 더불어 ServBay의 내장 기능(예: 간편 백업)을 활용하면 개발 효율성과 데이터 관리 역량을 더욱 높일 수 있습니다.