Akashic Records

Explain Oracle database backup 본문

Database Learning Guide

Explain Oracle database backup

Andrew's Akashic Records 2023. 3. 13. 13:49
728x90

Oracle 데이터베이스 백업은 데이터베이스에서 중요한 데이터를 보호하고 장애나 데이터 손실을 예방하기 위해 필수적인 작업입니다. 백업은 데이터베이스를 이전 상태로 복원할 수 있는 방법으로, 일반적으로 백업 데이터는 특정 시간에 데이터베이스가 포함하고 있던 데이터를 보존합니다.

Oracle 데이터베이스는 다양한 유형의 백업을 지원하며, 주요 백업 유형은 다음과 같습니다.

  1. 전체 백업(Full Backup): 데이터베이스의 모든 데이터와 오브젝트를 백업하는 방법입니다. 전체 백업은 초기 백업이나 대규모 데이터 손실 시 복구 작업을 수행할 때 사용됩니다.
  2. 증분 백업(Incremental Backup): 마지막 전체 백업 이후 변경된 데이터만 백업하는 방법입니다. 증분 백업은 전체 백업보다 더 적은 저장 공간을 사용하며, 자주 수행하여 데이터 손실을 최소화합니다.
  3. 차등 백업(Differential Backup): 마지막 전체 백업 이후 변경된 데이터를 모두 백업하는 방법입니다. 차등 백업은 증분 백업보다 더 많은 저장 공간을 사용하지만, 백업과 복구 시간을 줄일 수 있습니다.

Oracle 데이터베이스의 백업 방법은 RMAN(Recovery Manager)과 데이터베이스 내장 백업 기능인 Export/Import, Data Pump 등이 있습니다. RMAN을 사용한 백업은 자동화된 백업과 복구 작업, 증분 및 차등 백업 지원 등의 기능을 제공합니다. 또한 백업을 중앙 집중적으로 관리하기 위해 RMAN 카탈로그를 사용할 수 있습니다.

 

백업은 데이터베이스의 안정성과 회복성을 보장하는 데 중요한 역할을 합니다. 따라서, 데이터베이스 운영 시 적절한 백업 전략을 수립하고, 일정 주기로 백업을 수행하고 백업 데이터를 안전하게 보관하는 것이 중요합니다.


Oracle Full Backup

Oracle 데이터베이스에서 전체 백업(Full Backup)은 데이터베이스의 모든 데이터와 오브젝트를 백업하는 방법입니다. 전체 백업은 초기 백업이나 대규모 데이터 손실 시 복구 작업을 수행할 때 사용됩니다.

전체 백업을 수행하려면 백업 명령어와 백업 유형, 저장 장치 등의 설정이 필요합니다. 일반적으로 RMAN(Recovery Manager)을 사용하여 백업을 수행합니다.

다음은 RMAN을 사용하여 Oracle 데이터베이스에서 전체 백업을 수행하는 예시입니다.

1. RMAN을 실행합니다.

$ rman target /


2. 백업 명령어를 입력합니다.

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

위 예시에서 AS COMPRESSED BACKUPSET은 백업 파일을 압축하여 저장하겠다는 옵션입니다. DATABASE는 데이터베이스 전체를 백업하겠다는 옵션입니다. PLUS ARCHIVELOG는 아카이브 로그 파일도 함께 백업하겠다는 옵션입니다.

3. 백업 저장 장치와 경로를 설정합니다.

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/full_%U';

위 예시에서 DEVICE TYPE은 백업 저장 장치의 유형을 설정하고, FORMAT은 백업 파일의 저장 경로와 파일 이름을 설정합니다.

4. 백업을 수행합니다.

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

위 예시에서 PLUS ARCHIVELOG는 아카이브 로그 파일도 함께 백업하겠다는 옵션입니다.

전체 백업은 데이터베이스의 크기에 따라 백업 시간이 길어질 수 있습니다. 또한, 전체 백업 이외에도 증분 백업(Incremental Backup)이나 차등 백업(Differential Backup) 등 다른 백업 방법을 사용하여 백업을 수행할 수도 있습니다. 백업 방법을 선택할 때는 데이터베이스의 크기, 데이터 중요도, 백업 목적 등 여러 가지 요소를 고려하여 적절한 방법을 선택해야 합니다.

 

Oracle 데이터베이스에서 전체 백업(Full Backup)을 수행하는 방법에는 RMAN을 사용하는 방법 외에도 다른 방법이 있습니다. 데이터베이스 내장 백업 기능인 Export/Import, Data Pump 등을 사용하여 백업을 수행할 수 있습니다.

 

1. Export/Import를 사용한 백업

Export/Import를 사용하여 데이터베이스 오브젝트를 백업하고 복원할 수 있습니다. Export 명령어를 사용하여 데이터베이스 오브젝트를 백업하고, Import 명령어를 사용하여 백업한 데이터를 복원합니다.

# Export 수행
$ exp userid=scott/tiger file=my_backup.dmp full=y

# Import 수행
$ imp userid=scott/tiger file=my_backup.dmp full=y

 

위 예시에서는 Export 명령어를 사용하여 scott/tiger 계정으로 로그인하여 데이터베이스의 모든 데이터를 my_backup.dmp 파일로 백업합니다. Import 명령어를 사용하여 my_backup.dmp 파일에서 백업된 데이터를 scott/tiger 계정으로 로그인한 데이터베이스에 복원합니다.


2. Data Pump를 사용한 백업

Data Pump는 Oracle 데이터베이스에서 데이터를 이동, 복사, 복원하는 데 사용되는 기능입니다. Data Pump를 사용하여 데이터베이스 오브젝트를 백업하고 복원할 수 있습니다. Data Pump Export 명령어를 사용하여 데이터베이스 오브젝트를 백업하고, Data Pump Import 명령어를 사용하여 백업한 데이터를 복원합니다.

# Export 수행
$ expdp scott/tiger directory=my_dir dumpfile=my_backup.dmp full=y

# Import 수행
$ impdp scott/tiger directory=my_dir dumpfile=my_backup.dmp full=y

위 예시에서는 Data Pump Export 명령어를 사용하여 scott/tiger 계정으로 로그인하여 데이터베이스의 모든 데이터를 my_backup.dmp 파일로 백업합니다. Data Pump Import 명령어를 사용하여 my_backup.dmp 파일에서 백업된 데이터를 scott/tiger 계정으로 로그인한 데이터베이스에 복원합니다.

 

백업 방법을 선택할 때는 데이터베이스의 용량과 중요도, 백업 목적, 복구 시간 등 다양한 요소를 고려하여 적절한 백업 전략을 수립해야 합니다.


Oracle Incremental Backup

Oracle 데이터베이스에서 증분 백업(Incremental Backup)은 마지막 전체 백업 이후 변경된 데이터만 백업하는 방법입니다. 증분 백업은 전체 백업보다 더 적은 저장 공간을 사용하며, 자주 수행하여 데이터 손실을 최소화합니다.

 

Oracle 데이터베이스에서 증분 백업을 수행하려면 RMAN(Recovery Manager)을 사용하여 수행하는 것이 일반적입니다. 다음은 RMAN을 사용하여 Oracle 데이터베이스에서 증분 백업을 수행하는 예시입니다.


1. RMAN을 실행합니다.

$ rman target /

 

 

2. 백업 유형을 지정합니다.

RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;

위 예시에서 INCREMENTAL LEVEL 1은 첫 번째 수준의 증분 백업을 의미합니다. DATABASE는 데이터베이스 전체를 백업하겠다는 옵션입니다. PLUS ARCHIVELOG는 아카이브 로그 파일도 함께 백업하겠다는 옵션입니다.

 

3. 백업 저장 장치와 경로를 설정합니다.

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/incr_%U';

위 예시에서 DEVICE TYPE은 백업 저장 장치의 유형을 설정하고, FORMAT은 백업 파일의 저장 경로와 파일 이름을 설정합니다.

 

4. 백업을 수행합니다.

RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;

위 예시에서 PLUS ARCHIVELOG는 아카이브 로그 파일도 함께 백업하겠다는 옵션입니다.

 

증분 백업은 마지막 전체 백업 이후 변경된 데이터만 백업하므로, 전체 백업에 비해 백업 시간과 저장 공간을 절약할 수 있습니다. 그러나 증분 백업의 경우, 복구 작업을 수행하기 위해서는 전체 백업과 증분 백업 파일이 모두 필요합니다. 따라서 증분 백업을 수행할 때는 전체 백업과 증분 백업 파일 모두 안전하게 보관해야 합니다.

 

Oracle 데이터베이스에서 증분 백업(Incremental Backup)을 수행하는 방법에는 RMAN을 사용하는 방법 외에도 다른 방법이 있습니다. 증분 백업을 수행하기 위해 Oracle 데이터베이스 내장 기능을 사용하여 수행할 수 있습니다.

1. SCN 기반 증분 백업
SCN(System Change Number) 기반 증분 백업은 특정 SCN 이후 변경된 데이터를 백업하는 방법입니다. 이 방법은 RMAN을 사용하지 않고 데이터베이스 내부에서 수행됩니다.

# 전체 백업 수행
$ ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak';

# SCN 기반 증분 백업 수행
$ ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak' REUSE;


위 예시에서는 전체 백업을 수행한 후, SCN 기반 증분 백업을 수행합니다. CONTROLFILE은 데이터베이스의 제어 파일을 의미합니다. 백업된 CONTROLFILE은 데이터베이스를 복원하기 위한 중요한 파일이므로, 안전하게 보관해야 합니다.

2. 로그 기반 증분 백업
로그 기반 증분 백업은 특정 시점 이후 변경된 데이터를 백업하는 방법입니다. 이 방법은 데이터베이스의 아카이브 로그 파일을 사용하여 수행됩니다.

# 전체 백업 수행
$ ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak';

# 로그 기반 증분 백업 수행
$ ALTER SYSTEM SWITCH LOGFILE;
$ COPY /path/to/archive/log/archive_log_file /backup/archive_log_file;

위 예시에서는 전체 백업을 수행한 후, 로그 기반 증분 백업을 수행합니다. ALTER SYSTEM SWITCH LOGFILE 명령어를 사용하여 데이터베이스의 아카이브 로그 파일을 변경한 후, 변경된 로그 파일을 백업합니다. 이후 증분 백업을 수행할 때는 마지막으로 백업한 아카이브 로그 파일부터 백업을 수행합니다.

 

RMAN을 사용하는 증분 백업 방법과는 달리 내장 기능을 사용하는 방법은 구성이 단순하고 추가 비용이 발생하지 않는 장점이 있습니다. 그러나 증분 백업을 수행하기 위해서는 복원 시 필요한 전체 백업 파일이 있어야 합니다. 따라서 전체 백업 파일을 안전하게 보관하는 것이 중요합니다.


Oracle Differential Backup

Oracle 데이터베이스에서 Differential Backup은 전체 백업 이후 변경된 데이터를 백업하는 방법입니다. 전체 백업과 마찬가지로 RMAN(Recovery Manager)을 사용하여 수행할 수 있습니다.

 

Differential Backup을 수행하기 위해서는 전체 백업을 수행한 이후, Differential Backup을 수행할 타이밍을 결정해야 합니다. Differential Backup을 수행할 타이밍은 데이터베이스의 중요도와 백업 목적, 복구 시간 등 다양한 요소를 고려하여 적절하게 결정해야 합니다.

 

다음은 RMAN을 사용하여 Oracle 데이터베이스에서 Differential Backup을 수행하는 예시입니다.

1. RMAN을 실행합니다.

$ rman target /

 

2. 백업 유형을 지정합니다.

RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE PLUS ARCHIVELOG;

위 예시에서 INCREMENTAL LEVEL 1은 첫 번째 수준의 증분 백업을 의미합니다. CUMULATIVE은 이전 Differential Backup을 포함하여 백업하겠다는 옵션입니다. DATABASE는 데이터베이스 전체를 백업하겠다는 옵션입니다. PLUS ARCHIVELOG는 아카이브 로그 파일도 함께 백업하겠다는 옵션입니다.

3. 백업 저장 장치와 경로를 설정합니다.

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/diff_%U';

위 예시에서 DEVICE TYPE은 백업 저장 장치의 유형을 설정하고, FORMAT은 백업 파일의 저장 경로와 파일 이름을 설정합니다.

4. 백업을 수행합니다.

RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE PLUS ARCHIVELOG;

위 예시에서 PLUS ARCHIVELOG는 아카이브 로그 파일도 함께 백업하겠다는 옵션입니다.

Differential Backup은 전체 백업보다 더 적은 저장 공간을 사용하며, 증분 백업보다 더 빠른 백업 속도를 제공합니다. 그러나 Differential Backup을 수행할 때는 이전 Differential Backup 파일이 필요합니다. 따라서 Differential Backup을 수행하기 전에 이전 Differential Backup 파일과 전체 백업 파일을 안전하게 보관해야 합니다.

 

Oracle 데이터베이스에서 Differential Backup을 수행하는 방법에는 RMAN을 사용하는 방법 외에도 다른 방법이 있습니다. Differential Backup을 수행하기 위해 Oracle 데이터베이스 내장 기능을 사용하여 수행할 수 있습니다.

1. SCN 기반 Differential Backup

SCN(System Change Number) 기반 Differential Backup은 마지막 전체 백업 이후 변경된 데이터만 백업하는 방법입니다. 이 방법은 RMAN을 사용하지 않고 데이터베이스 내부에서 수행됩니다.

# 전체 백업 수행
$ ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak';

# SCN 기반 Differential Backup 수행
$ ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak' DIFFERENTIAL;

위 예시에서는 전체 백업을 수행한 후, SCN 기반 Differential Backup을 수행합니다. CONTROLFILE은 데이터베이스의 제어 파일을 의미합니다. 백업된 CONTROLFILE은 데이터베이스를 복원하기 위한 중요한 파일이므로, 안전하게 보관해야 합니다.

2. 로그 기반 Differential Backup
로그 기반 Differential Backup은 마지막 전체 백업 이후 변경된 데이터만 백업하는 방법입니다. 이 방법은 데이터베이스의 아카이브 로그 파일을 사용하여 수행됩니다.

# 전체 백업 수행
$ ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak';

# 로그 기반 Differential Backup 수행
$ ALTER SYSTEM SWITCH LOGFILE;
$ COPY /path/to/archive/log/archive_log_file /backup/archive_log_file;

위 예시에서는 전체 백업을 수행한 후, 로그 기반 Differential Backup을 수행합니다. ALTER SYSTEM SWITCH LOGFILE 명령어를 사용하여 데이터베이스의 아카이브 로그 파일을 변경한 후, 변경된 로그 파일을 백업합니다. 이후 Differential Backup을 수행할 때는 마지막으로 백업한 아카이브 로그 파일부터 Differential Backup을 수행합니다.

내장 기능을 사용하여 Differential Backup을 수행할 경우 구성이 단순하고 추가 비용이 발생하지 않습니다. 그러나 Differential Backup을 수행하기 위해서는 복원 시 필요한 전체 백업 파일이 있어야 합니다. 따라서 전체 백업 파일을 안전하게 보관하는 것이 중요합니다.

728x90
Comments