코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

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

이 명령은 db1db2multiple_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_dbcompany_db_backup.sql로 백업합니다.

예제 2: SQL Server 데이터베이스 백업

BACKUP DATABASE sales_db
TO DISK = 'C:\\\\backups\\\\sales_db_backup.bak'
WITH FORMAT;

이 명령은 sales_dbsales_db_backup.bak 파일로 백업합니다.

예제 3: PostgreSQL 데이터베이스 백업

pg_dump -U postgres company_db > company_db_backup.sql

이 명령은 company_dbcompany_db_backup.sql로 백업합니다.


6. 요약

  • MySQL: mysqldump 명령어를 사용하여 데이터베이스를 SQL 파일로 백업.
  • SQL Server: BACKUP DATABASE 명령을 사용하여 .bak 파일로 백업.
  • Oracle: RMAN 또는 EXP 도구를 사용하여 데이터베이스 백업.
  • PostgreSQL: pg_dump 도구를 사용하여 데이터베이스를 SQL 파일로 백업.

정기적인 백업은 데이터 손실로부터 시스템을 보호하고, 복구 시 빠르게 데이터를 복원할 수 있는 중요한 절차입니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com