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가 제공하는 터미널 환경을 사용하거나, 해당 데이터베이스 클라이언트 및 도구가 PATH에 포함되어 있어야 합니다.
데이터베이스 백업
주기적인 백업은 데이터의 안전을 지키는 핵심 단계입니다. ServBay에서 각 데이터베이스를 백업하는 방법은 다음과 같습니다.
MySQL 백업
mysqldump
도구를 사용하여 MySQL 데이터베이스를 백업할 수 있습니다.
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 백업
pg_dump
도구로 PostgreSQL 데이터베이스를 백업할 수 있습니다. ServBay에서는 PostgreSQL이 보통 Unix Domain Socket을 통해 연결되며, 기본 경로는 /Applications/ServBay/tmp
입니다. 따라서 명령어에서 반드시 -h /Applications/ServBay/tmp
옵션을 사용해야 합니다.
bash
# ServBay에서 제공하는 터미널 환경 또는 올바른 PATH 환경에서 실행하세요.
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
-h /Applications/ServBay/tmp
: PostgreSQL 서버의 소켓 파일 경로를 지정-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과 동일하며, mysql
클라이언트를 사용합니다.
bash
# ServBay 터미널 환경에서 실행하세요.
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- 각 인자는 위와 동일하게 적용해주세요.
PostgreSQL 복구
pg_restore
도구로 PostgreSQL의 커스텀 형식 백업 파일을 복구할 수 있습니다. 반드시 소켓 경로 -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
-h /Applications/ServBay/tmp
: 서버 소켓 경로-U your_username
: 데이터베이스 사용자 이름-d your_database
: 복원 대상 데이터베이스 명 (사전 생성 필요)-v
: 상세 출력/Applications/ServBay/backup/your_database.dump
: 백업 파일 경로
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 이전하기는 개발 과정에서 흔히 발생하는 작업입니다.
소스 환경에서 데이터베이스 내보내기(export):
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
: 대상 환경 데이터베이스 사용자 이름your_database
: 생성할 데이터베이스 이름(소스와 동일해야 함)
대상 ServBay에서 데이터베이스 임포트(import):
bash# 대상 터미널에서 실행 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 - 대상에서 임포트: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# 대상 터미널에서 실행 # 기본 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# 대상 터미널에서 실행 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의 Redis 서비스는 반드시 사전에 정지되어 있어야 합니다.
대상 ServBay에서 Redis 서비스 시작: Redis 서비스를 시작하면 새로운
dump.rdb
파일이 자동으로 불러와집니다.
주의사항
- 서비스 정지: 데이터베이스 파일(특히 MySQL/MariaDB/PostgreSQL의 데이터 디렉터리)을 직접 복사하거나 이동하기 전에, 반드시 ServBay GUI 또는 CLI로 해당 데이터베이스 서비스를 중지하세요. 실행 중인 데이터 파일을 복사할 경우 데이터 불일치 또는 손상 가능성이 있습니다. Redis도
dump.rdb
복구 시에는 서비스 중지가 필요합니다. - 권한: 파일 복사, 이동, 또는 임포트 작업을 수행하는 사용자가 관련 디렉터리 및 파일에 대한 충분한 권한이 있어야 합니다.
- 파일 경로: ServBay 기본 설치 경로(
/Applications/ServBay
)와 데이터베이스 별 상세 파일 경로, 하위 버전 폴더를 정확히 확인하세요. - 사용자 및 권한: 데이터를 마이그레이션한 후, 데이터베이스 내 사용자, 권한, 구성파일 등을 새로운 환경에 맞게 반드시 점검 및 수정하세요.
- ServBay 내장 백업: ServBay는 GUI로 사이트 파일, 데이터베이스, SSL 인증서, 환경설정 등을 백업 및 복구할 수 있는 내장 기능도 제공합니다. 이는 수동 파일 관리를 보완하거나 대체할 수 있습니다.
요약
ServBay는 표준화된 파일 구조를 통해 개발자에게 명확한 데이터베이스 파일 관리 기반을 제공합니다. 본 가이드는 ServBay에서 MySQL, MariaDB, PostgreSQL, Redis 데이터 파일의 위치와, 표준 명령줄 도구를 활용한 백업, 복구, 마이그레이션 방법을 자세히 안내합니다. 이러한 스킬을 익히면 로컬 개발 환경의 데이터베이스를 체계적이고 안전하게 관리하고, 다양한 환경 간 프로젝트 이전도 효율적으로 진행할 수 있습니다. ServBay의 내장 백업 기능과 병행하여 활용하면 개발 효율성과 데이터 관리 능력이 크게 향상될 것입니다.