티스토리 뷰
데이터베이스 덤프란?
- 데이터베이스의 구조와 데이터를 파일로 내보내는 과정입니다. 이 파일은 백업, 이동, 복구 등 다양한 관리 작업에 활용됩니다.
1. 백업과 복구
- 백업: 덤프 파일은 데이터베이스의 현재 상태를 저장하여 데이터 손실을 방지함.
- 복구: 시스템 장애나 데이터 손실 시, 덤프 파일을 통해 데이터를 복구할 수 있음.
2. 데이터베이스 이동 및 마이그레이션
- 서버 간 이동: 덤프 파일을 사용해 데이터를 다른 서버로 효율적으로 이동함.
- 버전 업그레이드: 데이터베이스 시스템 업그레이드 시, 데이터를 최신 버전으로 옮김.
- 이종 DBMS 간 마이그레이션: 서로 다른 DBMS 간에 데이터를 이전할 때 덤프 파일을 사용함.
3. 데이터베이스 복제 및 개발
- 복제: 테스트 및 개발 환경에서 동일한 데이터를 사용할 때 덤프 파일을 사용하여 데이터를 복제함.
- 데이터 분석 및 개발: 덤프 파일로 데이터의 스냅샷을 캡처하여 분석이나 기능 개발에 활용할 수 있음.
4. 데이터 감사 및 아카이브
- 감사: 데이터베이스의 변화를 추척하고 기록하는데 도움이 됨.
- 아카이브: 특정 시점의 데이터를 보관하여 역사적 데이터를 보존하거나 법적 요구 사항을 충족할 수 있음.
MariaDB 덤프 파일 생성 및 복원 작업
이 작업은 macOS와 Docker desktop 환경에서 진행했습니다.
1. A 컨테이너에서 덤프 파일 생성
mariadb-dump 명령어를 사용하여 bms 데이터베이스의 덤프 파일을 생성합니다. 명령어를 입력한 후 A 컨테이너 root 비밀번호를 입력하면 됩니다.
참고: 프로젝트 진행 중 mysqldump 사용 시 MariaDB와의 호환성 문제로 오류가 발생했습니다. 이 문제를 해결하기 위해 apt-get update와 apt-get install mariadb-client 명령어를 통해 클라이언트를 업데이트하고 설치했지만, 문제가 해결되지 않았습니다. 이후 bin 디렉터리에서 mariadb-dump 명령어를 발견하여 이를 사용해 덤프 파일을 성공적으로 생성했습니다.
mariadb-dump -u root -p bms > bms.sql
2. Desktop으로 덤프 파일 복사
터미널에서 docker cp 명령어를 사용하여 A 컨테이너에서 생성한 bms.sql 파일을 desktop 복사합니다.
docker cp <A컨테이너이름>:/bms.sql /Users/<사용자이름>/Desktop
3. B 컨테이너로 덤프 파일 복사
터미널에서 B 컨테이너의 tmp 폴더로 bms.sql 파일을 복사합니다.
docker cp /Users/<사용자이름>/Desktop/bms.sql <B컨테이너이름>:/tmp/bms.sql
4. 데이터베이스 생성 및 덤프 파일 복원
B 컨테이너에 복원하기전에 bms 데이터베이스를 생성한 후에 덤프 파일의 데이터를 복원합니다. B 컨테이너의 root 비밀번호를 입력하면 복원이 완료됩니다.
mariadb -u root -p
CREATE DATABASE bms;
mariadb -u root -p bms < /tmp/bms.sql
프로젝트의 일관성과 효율성을 높이기 위해, 초기 세팅 단계에서 데이터 구조와 초기 데이터의 일관성을 유지하기 위해 덤프 파일을 사용했습니다. 덤프파일을 사용한 이유는 다음과 같이 정리했습니다.
- 일관된 테이블 구조: 모든 팀원이 동일한 데이터베이스 스키마를 사용해 개발.
- 통일된 초기 데이터: 팀원들이 동일한 초기 데이터를 기반으로 작업하여, 기능 개발 및 테스트 일관성을 유지.
- 간편한 환경 설정: 새 팀원이 합류하거나 새로운 개발 환경을 설정할 때 덤프 파일을 사용해 쉽게 동일한 데이터베이스 상태를 구축.
- 복구의 용이성: 초기 세팅 과정에서의 오류를 덤프 파일을 통해 쉽게 복구.
끝.
'Project' 카테고리의 다른 글
[Project] 패키지 구조에 대한 고민과 해결 (0) | 2024.07.10 |
---|---|
[Project] 상태 코드 관리에 대한 고민과 해결 (0) | 2024.07.04 |
- Total
- Today
- Yesterday
- Lower
- Upper
- If
- index
- combinations
- Lambda
- Built-in Functions
- for
- counter
- function
- bool
- permutations
- isdigit
- operators
- zip
- Python
- find
- Method
- isalpha
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 |
29 | 30 |