SQL Backup DB
SQL BACKUP DATABASE: 데이터베이스 백업
SQL BACKUP DATABASE 명령은 데이터베이스를 백업하는 데 사용됩니다. 백업은 데이터의 손실이나 손상으로부터 보호하기 위해 데이터를 안전한 장소에 복사하는 작업입니다. 데이터베이스 백업은 정기적으로 수행되어야 하며, 필요시 복구할 수 있는 중요한 데이터 관리 작업입니다.
SQL 자체로는 데이터베이스를 백업하는 명령어가 없지만, DBMS별로 제공하는 도구나 명령어를 통해 백업을 수행할 수 있습니다. 각 DBMS마다 백업을 수행하는 방식이 조금씩 다르므로, 여기서는 MySQL, SQL Server, Oracle 등에서 사용되는 백업 방법을 소개합니다.
1. MySQL에서 데이터베이스 백업
MySQL에서 데이터베이스 백업은 **mysqldump
**라는 명령어 도구를 사용하여 수행합니다. 이 도구는 데이터베이스의 내용을 SQL
스크립트 파일로 덤프(백업)하여, 필요할 때 이 파일을 통해 복원할 수 있습니다.
1.1 MySQL 백업 기본 문법 (mysqldump
)
mysqldump -u 사용자명 -p 데이터베이스_이름 > 백업_파일.sql
u 사용자명
: MySQL 사용자 이름.p
: 비밀번호 입력을 위한 옵션.- 데이터베이스_이름: 백업할 데이터베이스 이름.
> 백업_파일.sql
: 데이터베이스가 저장될 백업 파일의 경로 및 이름.
1.2 MySQL 백업 예제
예제: company_db
데이터베이스 백업
mysqldump -u root -p company_db > company_db_backup.sql
이 명령은 company_db 데이터베이스를 company_db_backup.sql 파일로 백업합니다. 실행 후 비밀번호를 입력하면 데이터베이스가 백업됩니다.
1.3 MySQL에서 여러 데이터베이스 백업
mysqldump -u root -p --databases db1 db2 > multiple_backup.sql
이 명령은 db1과 db2를 multiple_backup.sql 파일로 백업합니다.
1.4 MySQL에서 모든 데이터베이스 백업
mysqldump -u root -p --all-databases > all_databases_backup.sql
이 명령은 MySQL 서버의 모든 데이터베이스를 백업합니다.
2. SQL Server에서 데이터베이스 백업
SQL Server에서는 BACKUP DATABASE
명령을 사용하여 데이터베이스를 백업합니다. 이 명령은
T-SQL(Transact-SQL)로 실행되며, 특정 데이터베이스를 백업할 때 주로 사용됩니다.
2.1 SQL Server 백업 기본 문법
BACKUP DATABASE 데이터베이스_이름
TO DISK = '백업_파일_경로'
WITH FORMAT;
- 데이터베이스_이름: 백업할 데이터베이스의 이름.
TO DISK
: 백업 파일이 저장될 디스크 경로.WITH FORMAT
: 백업 파일을 새롭게 포맷해서 저장할 때 사용.
2.2 SQL Server 백업 예제
예제: sales_db
데이터베이스 백업
BACKUP DATABASE sales_db
TO DISK = 'C:\\\\backups\\\\sales_db_backup.bak'
WITH FORMAT;
이 쿼리는 sales_db 데이터베이스를 C:\backups\sales_db_backup.bak 파일로 백업합니다.
2.3 SQL Server에서 전체 데이터베이스 백업
전체 데이터베이스 백업은 데이터베이스의 모든 데이터를 포함한 백업을 의미합니다.
BACKUP DATABASE company_db
TO DISK = 'C:\\\\backups\\\\company_db_full.bak'
WITH FORMAT;
이 명령은 company_db의 전체 데이터를 백업합니다.
2.4 SQL Server에서 차등 백업
차등 백업은 마지막 전체 백업 이후 변경된 데이터만 백업하는 방식입니다.
BACKUP DATABASE company_db
TO DISK = 'C:\\\\backups\\\\company_db_diff.bak'
WITH DIFFERENTIAL;
이 명령은 company_db의 차등 백업을 수행하여, 마지막 전체 백업 이후 변경된 데이터만 백업합니다.
3. Oracle에서 데이터베이스 백업
Oracle에서는 백업을 위한 다양한 방법을 지원하며, RMAN(Recovery Manager)을 사용하거나 EXP/IMP 도구를 사용할 수 있습니다.
3.1 RMAN을 사용한 Oracle 백업
RMAN은 Oracle에서 제공하는 전용 백업 도구로, 효율적인 데이터베이스 백업 및 복구를 제공합니다.
RMAN 백업 기본 문법
rman TARGET /
RUN {
BACKUP DATABASE;
}
3.2 Oracle에서 데이터베이스 전체 백업
rman TARGET /
RUN {
BACKUP AS BACKUPSET DATABASE;
}
이 명령은 RMAN을 사용하여 전체 데이터베이스를 백업합니다.
3.3 EXP 도구를 사용한 Oracle 데이터베이스 백업
Oracle에서 EXP(Export) 도구를 사용하면 데이터베이스나 특정 테이블을 SQL 스크립트 파일로 백업할 수 있습니다.
Oracle EXP 명령 예제
exp username/password@SID file=backup_file.dmp full=y;
이 명령은 Oracle 데이터베이스의 전체 백업을 수행합니다.
4. PostgreSQL에서 데이터베이스 백업
PostgreSQL에서는 pg_dump 도구를 사용하여 데이터베이스를 백업할 수 있습니다. 이 도구는 SQL 스크립트 파일 형식으로 백업을 수행합니다.
4.1 PostgreSQL 백업 기본 문법 (pg_dump
)
pg_dump -U 사용자명 데이터베이스_이름 > 백업_파일.sql
U 사용자명
: PostgreSQL 사용자 이름.- 데이터베이스_이름: 백업할 데이터베이스 이름.
4.2 PostgreSQL 백업 예제
예제: company_db
데이터베이스 백업
pg_dump -U postgres company_db > company_db_backup.sql
이 명령은 company_db 데이터베이스를 company_db_backup.sql 파일로 백업합니다.
4.3 PostgreSQL에서 모든 데이터베이스 백업
pg_dumpall -U postgres > all_databases_backup.sql
이 명령은 모든 PostgreSQL 데이터베이스를 백업합니다.
5. 실전 예제
예제 1: MySQL 데이터베이스 백업
mysqldump -u root -p company_db > company_db_backup.sql
이 명령은 company_db를 company_db_backup.sql로 백업합니다.
예제 2: SQL Server 데이터베이스 백업
BACKUP DATABASE sales_db
TO DISK = 'C:\\\\backups\\\\sales_db_backup.bak'
WITH FORMAT;
이 명령은 sales_db를 sales_db_backup.bak 파일로 백업합니다.
예제 3: PostgreSQL 데이터베이스 백업
pg_dump -U postgres company_db > company_db_backup.sql
이 명령은 company_db를 company_db_backup.sql로 백업합니다.
6. 요약
- MySQL:
mysqldump
명령어를 사용하여 데이터베이스를 SQL 파일로 백업. - SQL Server:
BACKUP DATABASE
명령을 사용하여 .bak 파일로 백업. - Oracle: RMAN 또는 EXP 도구를 사용하여 데이터베이스 백업.
- PostgreSQL:
pg_dump
도구를 사용하여 데이터베이스를 SQL 파일로 백업.
정기적인 백업은 데이터 손실로부터 시스템을 보호하고, 복구 시 빠르게 데이터를 복원할 수 있는 중요한 절차입니다.