SKN/02. DB

12. 백업 및 복원

claovy☘️ 2025. 2. 19. 17:28

-- 수업시간에 다루지 않은 내용이라 기록만 하겠다 --

1. 백업

💡백업(Backup)은 데이터 손실에 대비하여 현재의 데이터베이스 상태를 저장하는 과정이며, **복원(Restore)**은 백업된 데이터를 사용하여 데이터베이스를 이전 상태로 복구하는 과정이다.

MySQL에서 백업과 복원은 데이터의 무결성과 지속성을 보장하는 데 필수적이며, 시스템 장애, 사용자 실수 또는 기타 예기치 않은 상황에 대비할 수 있도록 해준다.

 

01. 백업의 종류

  1. 논리적 백업(Logical Backup)
    • 데이터베이스의 구조와 데이터를 SQL 문장으로 덤프하여 저장하는 방법이다.
    • mysqldump 유틸리티를 사용한다.
    • 이식성이 높고 특정 데이터만 백업 가능한 장점이 있지만, 대용량 데이터의 경우 시간이 오래 걸린다.
  2. 물리적 백업(Physical Backup)
    • 데이터 파일 자체를 복사하여 백업하는 방법이다.
    • mysqlhotcopy, 파일 시스템 복사 등을 사용한다.
    • 속도가 빠르고 대용량 데이터에 적합하지만, 동일한 OS와 파일 시스템 환경이 필요하다는 제한점이 있다.

02. 데이터베이스 백업

# 1. mysqldump를 이용한 백업
# 전체 데이터베이스를 백업하는 명령어
mysqldump -u [username] -p --all-databases > all_databases.sql

# 2. 특정 데이터베이스 백업
mysqldump -u [username] -p [database_name] > [backup_file].sql

# 3. 특정 테이블 백업
mysqldump -u [username] -p [database_name] [table1 table2 ...] > [backup_file].sql

2. 복원

01. 데이터베이스 복원

# 전체 데이터베이스를 복원하는 명령어
mysql -u [username] -p < [backup_file].sql

# 2. 특정 데이터베이스 복원
CREATE DATABASE my_database;
mysql -u [username] -p my_database < [backup_file].sql

# 3. 특정 테이블 복원
mysql -u [username] -p [database_name] < [tables_backup].sql

 

+ 백업과 복원 시 주의 사항

  1. 백업 파일에는 중요한 데이터가 포함되어 있으므로 보안 유지를 위해 적절한 권한 설정과 안전한 저장소에 보관한다.
  2. 복원 과정에서 문제가 없는지 주기적으로 복원 테스트를 수행한다.
  3. 백업 파일이 누적되면 스토리지 공간이 부족해질 수 있으므로 오래된 백업은 정리하는 등 스토리지를 지속적으로 관리한다.
  4. -single-transaction 옵션을 사용하여 백업 중 데이터의 일관성을 유지한다.

'SKN > 02. DB' 카테고리의 다른 글

13. SQL 작성 (select / order_by / where / distinct)  (0) 2025.02.19
04. 개념/논리/물리 모델  (1) 2025.02.19
11. STORED PROCEDURE / Trigger  (0) 2025.02.19
10. VIEW  (0) 2025.02.19
09. INDEX  (0) 2025.02.19