hanker

SQL - 데이터 백업과 복구 방법 본문

DATABASE/SQL

SQL - 데이터 백업과 복구 방법

hanker 2025. 1. 15. 00:00
반응형

데이터베이스에서 데이터 백업복구는 데이터 손실을 방지하고 시스템 장애 시 신속하게 복구하기 위해 필수적인 작업이다.

 

이번 글에서는 각 데이터베이스 별 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 데이터 백업과 복구는 데이터 보호와 비즈니스 연속성을 보장하기 위해 필수적인 작업이다.

 

 

끝.

반응형