일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python
- mysql
- MongoDB
- 트랜잭션
- DBMS
- analytics4
- network
- docker
- git
- mssql
- rsync
- oracle
- SQL
- 자바
- 명령어
- Javascript
- PostgreSQL
- group by
- MariaDB
- IntelliJ
- 오블완
- Linux
- spring
- 티스토리챌린지
- JPA
- 리눅스
- java
- 차이점
- API
- top
- Today
- Total
hanker
SQL - 데이터 백업과 복구 방법 본문
데이터베이스에서 데이터 백업과 복구는 데이터 손실을 방지하고 시스템 장애 시 신속하게 복구하기 위해 필수적인 작업이다.
이번 글에서는 각 데이터베이스 별 SQL 데이터 백업과 복구의 개념, 방법에 대해서 알아봅시다!
1. 데이터 백업을 왜 해야할까?
데이터 백업을 하는 이유는 데이터베이스의 데이터를 안전한 위치에 저장하여 데이터 손실에 대비하기 위함이다.
즉, 시스템 장애나 하드웨어 오류, 사용자 실수, 사이버 공격에 대비한다.
2. 백업의 유형
2-1. 전체 백업
- 데이터베이스 전체를 백업한다.
- 장점 : 복구가 간단하며, 모든 데이터를 포함
- 단점 : 시간이 오래 걸리고, 저장 공간을 많이 사용
2-2. 증분 백업
- 마지막 전체 백업 이후 변경된 데이터만 백업한다.
- 장점 : 속도가 빨고 저장 공간을 절약
- 단점 : 복구 시 전체 및 증분 백업을 모두 사용해야 하므로 시간이 오래 걸림
2-3. 차등 백업
- 마지막 전체 백업 이후 변경된 모든 데이터를 백업한다.
- 장점 : 복구 과정이 단순하며, 증분 백업보다 빠름
- 단점 : 시간이 지날수록 백업 데이터가 커짐
2-4. 트랜잭션 로그 백업
- 트랜잭션 로그를 백업하여 데이터 변경 사항을 복구할 수 있다.
- 장점 : 실시간 데이터 복구 가능
- 단점 : 설정과 관리가 복잡
3. 각 데이터베이스 백업 및 복구 방법
3-1. Oracle
전체 백업
exp username/password@database_name file=backup.dmp log=backup.log full=y
- username / password : 데이터베이스 사용자 이름 / 패스워드
- database_name : 데이터베이스 명
- file=backup.dmp : 백업파일 명
- log=backup.log : 로그 파일 명
- full=y : 전체 데이터베이스 백업
복구
imp username/password@database_name file=backup.dmp log=restore.log full=y
3-2. MSSQL
백업
BACKUP DATABASE [DatabaseName]
TO DISK = N'C:\Backup\database_backup.bak'
WITH NOFORMAT, NOINIT, NAME = N'Database-Full Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
복구
RESTORE DATABASE [DatabaseName]
FROM DISK = N'C:\Backup\database_backup.bak'
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5;
3-3. MySQL / MariaDB
전체 데이터베이스 백업
mysqldump -u username -p --all-databases > all_databases_backup.sql
특정 데이터베이스 백업
mysqldump -u username -p database_name > database_backup.sql
특정 테이블 백업
mysqldump -u username -p database_name table_name > table_backup.sql
전체 데이터베이스 복구
mysql -u username -p < all_databases_backup.sql
특정 데이터베이스 복구
mysql -u username -p database_name < database_backup.sql
3-4. PostgreSQL
백업
pg_dump -U username -F c -b -v -f database_backup.backup database_name
-U username : 데이터베이스 사용자 이름
-F c : 사용자 지정 형식으로 백업
-b : 대용량 객체 포함
-v : 자세한 모드
-f database_backup.backup : 백업 파일 명
복구
pg_restore -U username -d database_name -v database_backup.backup
4. 복구 유형
4-1. 완전 복구 (Complete Recovery)
- 데이터베이스를 특정 시점으로 완전히 복구한다.
4-2. 불완전 복구 (Incomplete Recovery)
- 특정 시점까지 데이터를 복구하거나, 일부 데이터만 복구한다.
5. 백업 및 복구 전략
5-1. 주기적인 백업 수행
- 전체, 차등, 증분 백업의 조합으로 데이터를 정기적으로 백업
5-2. 백업 데이터 검증
- 백업이 제대로 작동하는지 주기적으로 검증
5-3. 오프사이트 백업
- 백업 데이터를 원격지나 클라우드에 저장
5-4. 자동화
- 스크립트나 데이터베이스 관리 툴을 활용하여 백업 및 복구 자동화
5-5. 복구 테스트
- 복구 프로세스를 정기적으로 테스트하여 신뢰성을 확인
정리
SQL 데이터 백업과 복구는 데이터 보호와 비즈니스 연속성을 보장하기 위해 필수적인 작업이다.
끝.
'DATABASE > SQL' 카테고리의 다른 글
SQL - 저장 프로시저(Stored Procedure, SP)란 무엇인가? 프로시저의 활용 방법 (0) | 2025.01.13 |
---|---|
SQL - 트리거(Trigger)란 무엇인가? (0) | 2025.01.12 |
SQL - 각 데이터베이스 별 버전 확인 방법 ( MySQL / MSSQL / PostgreSQL / Oracle / MariaDB / MongoDB) (0) | 2025.01.11 |
SQL - 테이블 파티셔닝(Table Partitioning) (0) | 2025.01.10 |
SQL - 뷰(View)를 알아보자 (뷰 테이블, View Table) (0) | 2025.01.09 |