ServBay PostgreSQL 문제 해결 가이드
PostgreSQL은 강력하고 다양한 기능을 갖춘 오픈소스 객체-관계형 데이터베이스 시스템으로, 여러 웹 애플리케이션과 데이터 저장 환경에서 널리 이용됩니다. ServBay 로컬 개발 환경의 핵심 패키지 중 하나인 PostgreSQL은 일반적으로 안정적으로 작동하지만, 때때로 실행이 되지 않거나, 연결 실패, 성능 저하, 데이터 접근 오류 등 다양한 문제가 발생할 수 있습니다.
이 문서는 ServBay를 사용하는 개발자들을 위한 자세한 PostgreSQL 문제 해결 가이드입니다. ServBay 환경에서 자주 발생하는 PostgreSQL 패키지의 문제 유형, 진단 절차 그리고 해결 방안을 설명합니다. ServBay는 macOS와 Windows 운영체제를 지원하며, 여러 버전의 PostgreSQL 패키지를 통합하므로, 진단이나 복구를 진행할 때 특정 버전이나 구성 파일, 데이터 디렉터리 경로를 지정해야 할 수도 있습니다.
개요
이 가이드는 ServBay 환경에서 PostgreSQL 패키지를 관리하고 사용할 때 흔히 마주치는 기술적 문제를 중심적으로 다룹니다. 가장 일반적인 실행 및 연결 장애부터 점차 성능 병목, 예기치 않은 크래시, 백업 및 복구 등 더 복잡한 시나리오까지 단계적으로 소개합니다. 본문의 절차를 따르면, 대부분의 PostgreSQL 관련 문제를 체계적으로 진단하고 해결할 수 있습니다.
사전 준비 사항
문제 해결을 시작하기 전에 다음의 조건을 만족하는지 확인하세요:
- ServBay 애플리케이션이 정상적으로 설치되고 실행 중일 것
- ServBay를 통해 문제 해결이 필요한 PostgreSQL 패키지 버전이 설치되어 있을 것
- 기본적인 커맨드라인 사용법을 알고 있을 것
- 현재 사용하는 PostgreSQL 패키지의 구성 파일 및 데이터 디렉터리 경로 파악 필요
- macOS:
/Applications/ServBay/db/postgresql/<version>
- Windows:
C:\ServBay\db\postgresql\<version>
- macOS:
- 연결하려는 데이터베이스의 이름, 사용자명, 비밀번호 확인
자주 발생하는 문제 및 해결 방법
1. PostgreSQL 패키지가 실행되지 않음
ServBay에서 PostgreSQL 패키지를 시작하려고 할 때, 패키지 상태가 '중지됨'이거나 실행이 실패하는 경우는 다음과 같은 원인이 있을 수 있습니다.
원인
- 구성 파일의 문법 오류 또는 충돌
- PostgreSQL 패키지가 사용하는 포트(기본값 5432)가 다른 프로세스에 의해 이미 사용 중인 경우
- ServBay 또는 PostgreSQL 데이터 디렉터리, 구성 파일의 권한 부족
- PostgreSQL 데이터 디렉터리 손상
- ServBay 내부 관리 이슈
해결 방법
- ServBay GUI 상태 및 로그 확인: ServBay 애플리케이션 인터페이스를 열고 PostgreSQL 패키지의 상태를 확인합니다. 상태가 이상하다면 GUI에서 수동 시작을 시도하세요. ServBay의 메인 로그 또는 PostgreSQL 패키지와 관련된 특정 로그를 확인합니다.
로그 파일 위치:
- macOS:
/Applications/ServBay/logs/postgresql/<version>/postgresql-<version>.log
- Windows:
C:\ServBay\logs\postgresql\<version>\postgresql-<version>.log
- 구성 파일 점검: PostgreSQL의 주요 구성 파일은
postgresql.conf
입니다. 문법 오류, 오타, 잘못된 설정이 없는지 확인하세요.
구성 파일 위치(예: PostgreSQL 13):
- macOS:
/Applications/ServBay/db/postgresql/13/postgresql.conf
- Windows:
C:\ServBay\db\postgresql\13\postgresql.conf
또한 중요한 구성 파일인 pg_hba.conf
는 클라이언트 인증을 관리합니다. 설정이 잘못되면 연결 장애뿐만 아니라 실행에도 영향을 줄 수 있으므로, 일반적으로 postgresql.conf
가 위치한 곳에 함께 있습니다.
PostgreSQL 자체는 구성 파일의 전체 문법을 직접 검증하는 명령어가 없으므로, 로그를 통해 로드 에러를 확인하는 것이 좋습니다. 또는 실행 중인 데이터베이스(다른 버전 또는 임시 인스턴스)에 `psql`로 접속해서 쿼리로 확인할 수도 있습니다.
`pg_hba.conf`의 룰은 다음 SQL로 실행 중인 DB에서 확인 가능합니다:
```sql
-- 데이터베이스에 연결 후 실행
SELECT * FROM pg_hba_file_rules();
```
구성 로드 에러는 `pg_file_settings`로 확인할 수 있습니다:
```sql
-- 데이터베이스에 연결 후 실행
SELECT sourcefile, name, sourceline, error FROM pg_file_settings WHERE error IS NOT null;
```
**참고:** 위 SQL은 PostgreSQL 인스턴스가 이미 실행 중일 때만 유효합니다. *실행 자체가 불가*할 경우, **로그 파일 확인**이 가장 중요합니다.
- 포트 점유 상태 점검: 기본적으로 PostgreSQL은 5432 포트를 사용합니다. 이 포트가 다른 프로세스에 의해 점유 중이면 실행되지 않습니다.
포트 점유 상태 확인:
macOS:
bash
lsof -i :5432
1
Windows:
cmd
netstat -an | findstr :5432
# PowerShell에서도 사용 가능
Get-NetTCPConnection -LocalPort 5432
1
2
3
2
3
해당 명령어에 출력이 있으면, 5432 포트를 이미 쓰고 있는 프로세스가 있다는 뜻입니다. PID(프로세스 ID)를 확인 후, 해당 프로세스를 종료하거나 `postgresql.conf`의 `port` 설정을 변경한 뒤, ServBay GUI 또는 `servbayctl`로 패키지를 재실행하세요.
- 파일 및 디렉터리 권한 확인: ServBay는 설치 디렉터리 및 하위 디렉터리에 읽기/쓰기 권한이 필요하며, PostgreSQL 데이터 및 구성 파일에도 ServBay 프로세스가 적합한 권한을 가지고 있어야 합니다. ServBay는 보통 현재 사용자 권한으로 작동하므로,
/Applications/ServBay/
디렉터리 및 자료에 사용자 또는 그룹 쓰기 권한이 있는지 확인하세요.
권한 확인:
macOS:
bash
ls -ld /Applications/ServBay/db/postgresql/13 # 데이터 디렉터리 권한 확인
ls -l /Applications/ServBay/db/postgresql/13/postgresql.conf # 구성 파일 권한 확인
ls -l /Applications/ServBay/db/postgresql/13/pg_hba.conf # 인증 파일 권한 확인
1
2
3
2
3
Windows: 파일 탐색기에서 디렉터리 및 파일 속성을 직접 확인해 명확한 읽기/쓰기 권한이 ServBay 서비스 계정에 부여되어 있는지 검사하세요.
권한이 맞지 않을 때는 `chmod` 또는 `chown`을 이용할 수 있지만, ServBay 환경에서는 설치 과정에서 자동으로 권한이 맞춰지므로 수동 조정은 권장되지 않습니다. 권한 이슈 발생 시, 설치 미완료나 파일 변경이 원인일 수 있습니다.
데이터 디렉터리 손상 점검: PostgreSQL의 데이터 디렉터리(데이터 저장 폴더)가 손상되면 실행 불가 상태가 될 수 있습니다(예: 강제 종료, 디스크 에러). 로그에서 비정상적 손상 단서가 있다면 복구가 어렵거나 고급 툴, 혹은 백업 복원이 필요할 수 있습니다. PostgreSQL은
pg_resetwal
등 유틸을 제공하지만, 잘못 사용하면 데이터가 유실될 수 있으니 복구 시도 전 손상된 데이터 디렉터리 전체를 반드시 백업하세요.ServBay 제어 커맨드로 재실행 시도: 위 원인을 모두 점검, 보정한 후 ServBay의 CLI를 이용해 PostgreSQL 패키지를 재시작합니다(버전 명시 필요).
bashservbayctl restart postgresql 13
1또는 ServBay GUI에서 재실행하세요.
2. PostgreSQL 연결 불가
PostgreSQL 패키지가 정상 실행 중임에도 불구하고, psql
, pgAdmin
또는 애플리케이션 코드 등 클라이언트에서 연결이 되지 않을 수 있습니다.
원인
- 실제로 PostgreSQL 패키지가 정상 실행 중이지 않거나 비정상 운영 중인 경우
pg_hba.conf
인증 구성에서 접속이 허용되지 않은 경우- 방화벽이 연결을 차단한 경우
- 연결 정보(호스트, 포트, 데이터베이스명, 사용자명, 비밀번호)가 올바르지 않은 경우
- 사용자가 해당 데이터베이스에 접속 권한이 없는 경우
해결 방법
ServBay GUI 또는
servbayctl
로 패키지 상태 재확인: PostgreSQL 패키지 상태가 '실행 중'인지 다시 확인하세요. 그렇지 않다면 "실행 불가" 절차를 거쳐야 합니다.bashservbayctl status postgresql 13
1정상적으로 '실행 중'이라고 출력되는지 확인하세요.
pg_hba.conf
인증 설정 점검:pg_hba.conf
파일은 어떤 호스트, 사용자, 데이터베이스가 어떤 인증 방식으로 PostgreSQL에 연결할 수 있는지 제어합니다. 로컬 개발 환경에서는 일반적으로localhost
(127.0.0.1) 접속이 허용되어야 합니다.
pg_hba.conf
파일 위치:
macOS:
/Applications/ServBay/db/postgresql/13/pg_hba.conf
Windows:
C:\ServBay\db\postgresql\13\pg_hba.conf
예를 들어, ServBay 데모 사용자가 로컬에서 md5 패스워드 인증으로 모든 데이터베이스에 접근 가능하게 하려면:
ini# TYPE DATABASE USER ADDRESS METHOD host all servbay-demo 127.0.0.1/32 md5 host all servbay-demo ::1/128 md5
1
2
3설정을 변경했다면 PostgreSQL 구성을 다시 로드해야 합니다(전체 재실행 불필요).
bashservbayctl reload postgresql 13
1또는 ServBay GUI에서 재로드하세요.
- 방화벽 설정 확인:macOS:
bash
# 애플리케이션을 허용 목록에 추가
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ServBay/bin/postgres
# 애플리케이션 차단 해제
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/ServBay/bin/postgres
1
2
3
4
2
3
4
Windows: Windows Defender 또는 타사 방화벽 설정에서 ServBay PostgreSQL의 실행 파일 혹은 포트 규칙을 허용하도록 추가하세요.
cmd
# 특정 프로그램 방화벽 허용
netsh advfirewall firewall add rule name="ServBay PostgreSQL" dir=in action=allow program="C:\ServBay\bin\postgresql\<version>\bin\postgres.exe"
1
2
2
접속 정보 및 사용자 권한 점검: 클라이언트 연결 구문의 호스트명(보통
localhost
또는127.0.0.1
), 포트(기본 5432), DB명, 사용자명, 비밀번호가 정확한지 확인하세요.psql
로 직접 연결 테스트는 문제를 진단하는 가장 명확한 방법입니다:bashpsql -U your_username -d your_database -h localhost -p 5432
1실제 사용자명과 데이터베이스명으로 바꿔 입력하세요. 성공 시 psql 프롬프트가 보이고 실패하면 원인을 구체적으로 알려줍니다(예: 비밀번호 오류, DB 없음, 권한 부족 등).
연결은 되지만 특정 DB나 테이블접근이 안된다면 권한 문제일 수 있으니
psql
내에서\du
명령어로 사용자 역할/권한을 점검하세요:sql-- psql CLI에서 입력 \du
1
2충분한 권한이 있는 사용자(
postgres
등)로 접속한 뒤GRANT
명령을 이용해 권한을 부여하세요.
3. 성능 문제
PostgreSQL 패키지가 실행되고 접속도 되나, 쿼리 속도가 느려지면 성능 이슈일 수 있습니다.
원인
- SQL 쿼리가 비효율적임
- 데이터베이스 스키마 설계 문제
- 캐시·메모리 등 구성 파라미터 부적합
- 필수 인덱스 누락
- 하드웨어(CPU, 메모리, 디스크 I/O) 부족
- 데이터베이스 통계 정보 오래됨
해결 방법
쿼리 및 실행 계획 분석: 느린 쿼리는
EXPLAIN
또는EXPLAIN ANALYZE
로 실행 계획을 분석하세요. 어떤 인덱스를 사용하고, 테이블 연결과 스캔 방식, 병목점이 무엇인지 실시간으로 보여줍니다.sql-- psql이나 SQL 클라이언트에서 실행 EXPLAIN ANALYZE SELECT * FROM your_table_name WHERE column_name = 'value';
1
2분석 결과를 토대로 쿼리 리팩터링이나 인덱스 추가, 스키마 변경을 검토하세요.
PostgreSQL 구성 파라미터 튜닝:
postgresql.conf
에는 성능 관련 수많은 파라미터가 있습니다. 메모리 및 I/O 관련 주요 항목은 아래와 같습니다:shared_buffers
: 데이터 캐시의 메모리 크기(전체 메모리의 25% 이하 권장)work_mem
: 내부 정렬, 해시가 필요한 작업별 메모리(적절히 키우면 성능 향상)
시스템 리소스와 작업 특성에 맞게 적절히 조정하세요. 변경 후에는 반드시 패키지를 재로드하거나 재시작해야 적용됩니다.
ini# 시스템 메모리에 따라 값 조정 예시 shared_buffers = 1GB # 예: 메모리 4GB일 때 work_mem = 64MB # 쿼리 특성에 따라 조정
1
2
3적절한 인덱스 생성: WHERE, JOIN, ORDER BY에서 자주 사용하는 컬럼에 인덱스를 추가하면 쿼리 속도가 크게 향상됩니다. 인덱스 추가 전에는 반드시
EXPLAIN
분석으로 인덱스 필요 여부를 확인하세요.sql-- your_table_name의 column_name에 인덱스 생성 예시 CREATE INDEX idx_column_name ON your_table_name(column_name);
1
2인덱스가 지나치게 많으면 쓰기 작업과 디스크 사용량이 늘어나므로 꼭 필요한 컬럼만 구축하세요.
통계 정보 갱신: PostgreSQL 옵티마이저는 최신 테이블/인덱스 통계에 기반해 실행 계획을 짜므로, 데이터가 많이 변한 뒤에는
ANALYZE
로 주기적 갱신이 필요합니다.sql-- 전체 데이터베이스 분석 ANALYZE; -- 특정 테이블만 분석 ANALYZE your_table_name;
1
2
3
4ServBay의 PostgreSQL은 자동 청소(autovacuum) 기능을 기본 사용하지만, 성능 이슈 진단 시 수동 실행도 매우 효과적입니다.
하드웨어 리소스 확인: 대용량 데이터나 복잡한 쿼리를 다룰 때는 macOS의 활동 모니터(Activity Monitor)로 CPU, 메모리, 디스크, 네트워크 사용량을 확인하고 병목이 있는지 체크하세요. 특히 SSD 대비 HDD는 I/O가 느릴 수 있습니다.
4. 데이터베이스 크래시
PostgreSQL 패키지가 실행 중 갑자기 중지되거나 응답이 멈추면 크래시가 발생한 것입니다.
원인
- 하드웨어 장애(메모리, 디스크 오류 등)
- 운영체제 문제 또는 리소스 제한
- PostgreSQL 버그(드물지만 특정 버전/복잡한 환경에서 발생 가능)
- 데이터 디렉터리 손상
- 설정 오류로 리소스 고갈(예: 연결 과다)
해결 방법
- PostgreSQL 에러 로그 확인: 크래시 발생 시 PostgreSQL은 상세 에러를 로그에 남깁니다. 원인 진단의 최우선 단계입니다.
로그 파일 위치:
macOS:
/Applications/ServBay/logs/postgresql/<version>/postgresql-<version>.log
Windows:
C:\ServBay\logs\postgresql\<version>\postgresql-<version>.log
FATAL
,ERROR
레벨의 메시지, 특히 크래시 시점 인근 내역을 집중적으로 찾으세요. 메모리 접근 오류, 어서션 실패, 데이터 파일 오류 등 원인이 기록됩니다.
시스템 로그 확인: macOS의 시스템 로그(Console 앱 등)에서도 하드웨어나 OS 측 에러 내역이 있을 수 있으니 함께 확인하세요.
하드웨어 상태 점검: macOS 기본 진단 도구나 서드파티 하드웨어 검사 툴로 메모리와 디스크 오류를 점검하세요. 디스크 오류는 DB 손상과 크래시의 주요 원인입니다.
데이터 디렉터리 복구 또는 새 디렉터리 구축(신중): 로그에 데이터 디렉터리 손상이 표시되면 PostgreSQL의 저수준 툴(예:
pg_resetwal
)을 조심스럽게 사용해 복구를 시도할 수 있으나, 데이터 손실 위험이 있어 사용 전 전체 데이터를 반드시 백업하세요.권장 방법: a. 기존 데이터 디렉터리를 백업 (손상된 경우라도 전체 복사) b. 새 데이터 디렉터리 초기화: PostgreSQL 패키지 중지 후 옛 데이터 폴더를 따로 저장하고,
initdb
명령으로 빈 디렉터리 초기화(패키지 재설치로 자동 처리 가능) c. 최근 백업에서 데이터 복구:pg_restore
나psql
로 최근 백업 파일을 새 디렉터리로 복구백업에서 데이터 복구: 데이터 디렉터리가 심각하게 손상되어 복구가 불가능하거나, 크래시 직전 상태로 복원이 필요하다면 ServBay의 자동 또는 수동 백업 파일에서 복구하는 방법이 가장 확실합니다.
백업 파일 위치:
- macOS:
/Applications/ServBay/backup/postgresql/<version>/
- Windows:
C:\ServBay\backup\postgresql\<version>\
5. 백업 및 복구 문제
ServBay는 PostgreSQL 패키지의 수동 및 자동 백업을 지원합니다. 백업 또는 복구 중 문제가 발생한 경우 다음 해결책을 참고하세요.
원인
- 백업 파일 손상 또는 불완전함
- 복구 명령이나 파라미터 오류
- 대상 데이터베이스 없음 또는 사용자 권한 부족
- 디스크 공간 부족
- 백업 또는 복구 작업 중단
해결 방법
- 백업 파일 무결성 확인: 백업 파일(
pg_dump
나 ServBay 내장 백업 기능으로 생성된 파일)이 기대한 크기인지, 저장/전송 과정에서 손상되지 않았는지 확인합니다. 텍스트 백업은 파일 앞·뒤가 정상인지 점검 가능하고, 커스텀/디렉터리 백업은 복구 시pg_restore
의 에러 리포트에 주목해야 합니다.
백업 파일 위치:
- macOS:
/Applications/ServBay/backup/postgresql/13/your_backup_file.dump
- Windows:
C:\ServBay\backup\postgresql\13\your_backup_file.dump
파일 크기 확인:
- macOS:
ls -lh /Applications/ServBay/backup/postgresql/13/your_backup_file.dump
- Windows:
dir C:\ServBay\backup\postgresql\13\your_backup_file.dump
복구 명령(
pg_restore
또는psql
) 올바르게 사용: 백업 파일 포맷에 따라 복구 명령이 다릅니다.- 일반 텍스트 포맷(
pg_dump -Fp
또는 기본값):psql
명령으로 복구bash복구 전psql -U your_username -d your_database -h localhost -p 5432 -f /path/to/your_backup_file.sql
1your_database
가 존재해야 합니다. - 커스텀 포맷(
-Fc
) 또는 디렉터리 포맷(-Fd
):pg_restore
명령으로 복구bash마찬가지로 목표 DB가 반드시 존재해야 합니다.pg_restore -U your_username -d your_database -h localhost -p 5432 /path/to/your_backup_file.dump
1pg_restore
는 객체별 선택적 복구 등의 옵션도 제공됩니다.
사용 중인
your_username
이 대상 데이터베이스에서 객체 생성 권한이 충분한지 확인하세요. 대개 데이터베이스 소유자나 슈퍼유저(postgres
등)로 복구를 진행해야 합니다.- 일반 텍스트 포맷(
대상 데이터베이스 존재 여부 확인:
psql -f
또는pg_restore
복구 시 대상 데이터베이스가 미리 생성되어 있어야 합니다. 없다면 아래처럼 직접 생성하세요:bashcreatedb -U your_username -h localhost -p 5432 your_database
1또는 ServBay GUI나 다른 관리 툴에서 생성해도 됩니다.
디스크 용량 점검: 대형 데이터베이스를 복구할 때 충분한 디스크 공간이 확보되어 있는지 macOS의 저장 공간을 점검하세요.
ServBay 백업 설정 및 로그 확인: ServBay 자동 백업 기능을 사용할 때 장애가 있으면, 백업 설정 및 관련 로그에서 구체적인 원인을 찾으세요. ServBay는 백업 일정, 대상, 보존 정책 등 사용자 설정을 지원합니다.
자주 묻는 질문 (FAQ)
Q: ServBay에서 PostgreSQL 데이터 디렉터리는 어디인가요?A: PostgreSQL 데이터 디렉터리 위치:
- macOS:
/Applications/ServBay/db/postgresql/<version>/data
- Windows:
C:\ServBay\db\postgresql\<version>\data
구성 파일 위치:
- macOS:
/Applications/ServBay/db/postgresql/<version>/
- Windows:
C:\ServBay\db\postgresql\<version>\
- macOS:
Q: PostgreSQL 패키지의
postgres
사용자 비밀번호를 재설정하려면?A: 기본 슈퍼유저postgres
의 비밀번호를 잊거나, 다른 사용자의 비밀번호를 재설정하려면(신뢰 연결 또는 다른 슈퍼유저로 접속 가능한 경우):ServBay에서 PostgreSQL 패키지 중지
pg_hba.conf
파일을 열어, 로컬 연결 방식을 임시로trust
로 변경(비밀번호 없이 접속 허용)- macOS:
/Applications/ServBay/db/postgresql/13/pg_hba.conf
- Windows:
C:\ServBay\db\postgresql\13\pg_hba.conf
아래와 비슷한 행을 찾아서:
ini# TYPE DATABASE USER ADDRESS METHOD local all all peer # 또는 md5 host all all 127.0.0.1/32 md5 # 또는 scram-sha-256 등
1
2
3다음처럼 수정(임시, 반드시 복구 필요):
ini# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust
1
2
3
4- macOS:
ServBay로 PostgreSQL 패키지 실행
psql
로 postgres 사용자로 비밀번호 없이 접속:bashpsql -U postgres -h localhost -p 5432
1psql CLI에서
ALTER USER
로 비밀번호 변경:sqlALTER USER postgres PASSWORD 'new_secure_password';
1'new_secure_password'
에는 새 비밀번호, 기타 사용자는postgres
대신 해당 사용자를 입력하세요.\q
로 psql 종료중요: 반드시 PostgreSQL 패키지를 중지하고,
pg_hba.conf
의trust
항목을 기존 안전 인증 방식으로 복구(md5, scram-sha-256 등), 재실행 또는 다시 로드
Q: ServBay에서 PostgreSQL의 고가용성이나 복제 기능 지원하나요?A: ServBay는 주로 로컬 개발 환경용으로 설계되어 편리한 패키지 관리와 통합 환경 제공에 중점을 둡니다. 생산 환경 수준의 고가용·복제 솔루션의 GUI 관리 기능은 직접 제공하지 않으나, ServBay 환경에서 수작업으로 PostgreSQL 스트리밍 복제 등 고급 기능을 설정할 수 있습니다. 이 경우 PostgreSQL 커맨드라인과 깊은 구성 이해가 필요합니다.
Q: ServBay PostgreSQL 패키지 버전 업그레이드 방법은?A: ServBay는 PostgreSQL의 여러 버전을 설치·관리할 수 있습니다. 업그레이드하려면, 새(상위) 버전 패키지를 설치한 다음 PostgreSQL 공식 툴인
pg_upgrade
를 사용해 이전 버전 데이터 디렉터리의 데이터를 새 버전 데이터 디렉터리로 마이그레이션합니다. 패키지 2개 모두 중지 후pg_upgrade
실행, 새 버전 시작 순으로 진행합니다. 자세한 단계는 PostgreSQL 공식pg_upgrade
문서를 참고하세요. ServBay 디자인은 버전별 데이터 디렉터리가 분리되어 있어 이런 작업에 적합합니다.