==== 목차 ====
[ 1 ] 아카이브 모드 설정방법
[ 2 ] 아카이브 파일 저장경로 설정방법
1. FRA (Fast Recovery Area) 관리
2. log_archive_dest 관리 ( 이중화 실습 )
3. log_archive_dest_n 관리 ( 삼중화 실습 )
※ 위 1, 2, 3번으로 아카이브 저장경로 1곳으로 설정가능하나, 사용방법 이해를 위해 최대한 다중으로 저장해보는 실습
[ 3 ] 백업 파일은 FRA 저장, 아카이브만 별도 경로 설정방법
[ 1 ] 아카이브 모드 설정 방법
1. 아카이브 모드 확인
: database 설치시에 Archive Mode를 설정하지 않아, No Archive Mode이다.

sqlplus / as sysdba
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 4
Current log sequence 6
2. 아카이브 모드 변경
1) DB SHUTDOWN
SHUTDOWN IMMEDIATE;
2) DB MOUNT 시작
STARTUP MOUNT;
3) 아카이브 모드 활성화
ALTER DATABASE ARCHIVELOG;
4) DB OPEN
ALTER DATABASE OPEN;
5) 아카이브 모드 설정 확인
SQL> ARCHIVE LOG LIST;
Database log mode Archive Mode >>>>> No Archive Mode -> Archive Mode로 변경됨
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 4
Next log sequence to archive 6
Current log sequence 6
* DB_RECOVERY_FILE_DEST 경로 확인 ( 아래 경로 /archive/날짜별 폴더에 아카이브 파일 저장됨 )
SQL> show parameter recovery;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size big integer 8256M
recovery_parallelism integer 0
remote_recovery_file_dest
[ 2 ] 아카이브 파일 저장 경로 설정 방법
1. FRA (Fast Recovery Area) 에서 아카이브 관리 ( 이하 FRA 로 표현 )
: Database 설치시에 아래 이미지와 같이 "Fast Recovery Area"를 사용한다고 체크했기 때문 [1]번 설정됨
===== Archive destination USE_DB_RECOVERY_FILE_DEST =====
FRA 경로 : Default {Oracle_Base}/fast_recover_area/{DB_UNIQUE_NAME}
그러므로 archive 파일은 위 FRA 경로에 /archivelog/날짜별 디렉토리에 저장됨

실습) 아카이브 파일 저장 경로에 아카이브 파일 만들기
: switch log x 5번 -> fra/archivelog/날짜/ 경로에서 아카이브 생성 확인
SQL> alter system switch logfile;
System altered.
[oracle@ol819cs22 2024_06_14]$ pwd
/u01/app/oracle/fast_recovery_area/ORA19/archivelog/2024_06_14
[oracle@ol819cs22 2024_06_14]$ ll
total 7748
-rw-r-----. 1 oracle dba 7916032 Jun 14 17:16 o1_mf_1_20_m6qz3ojf_.arc
-rw-r-----. 1 oracle dba 1024 Jun 14 17:16 o1_mf_1_21_m6qz3pom_.arc
-rw-r-----. 1 oracle dba 1536 Jun 14 17:16 o1_mf_1_22_m6qz3qp2_.arc
-rw-r-----. 1 oracle dba 1024 Jun 14 17:16 o1_mf_1_23_m6qz3r9r_.arc
-rw-r-----. 1 oracle dba 1024 Jun 14 17:17 o1_mf_1_24_m6qz3xj3_.arc
[ 참고 ]
1. Fast Recovery Area 란?
: 데이터베이스 복구를 위한 모든 관련 파일을 중앙 집중식으로 관리하는 공간이며, 데이터베이스의 복구 가능성을
높이고 관리작업을 간소화함. RMAN으로 백업 받을 경우 해당 경로에 /backupset으로 설정되어 저장됨.
2. FRA 2가지 설정
1) 위치
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fast_recovery_area' SCOPE=BOTH;
2) 크기
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 100G SCOPE=BOTH;
※ FRA 사용 현황 조회 : SELECT * FROM V$RECOVERY_AREA_USAGE;
2. log_archive_dest 관리 ( 이중화 )
: 지정한 경로에 아카이브 파일 쌓기 위한 용도이며, oracle 8i 이전까지 사용하던 방법. 현재도 사용가능하나
오라클에서권장하지는 않음. LOG_ARCHIVE_DEST는 1개 경로에 쌓는 것이며, 가용성을
위해서 LOG_ARCHIVE_DUPLEX_DEST를 사용하여 위치를 추가로 설정가능함. 하나의 위치에서 문제가
발생하더라도 다른 위치에서 아카이브 로그를 사용할 수 있어 데이터 보호와 가용성을 높일 수 있음.
실습) 아카이브 파일 저장 경로에 아카이브 파일 만들기
1. 이중화를 위해 /u02 디렉토리 신규 스토리지 attach 함
2. 아카이브 파일 다른 Disk에 저장하기
- /tmp <-- /dev/sda2
- /u02/archivelog/ <-- /dev/sdb1
※ fra와 log_archive_dest는 동시사용 불가하므로 한 곳 경로는 '' 처리
< 동시 사용 에러 >
ALTER SYSTEM SET LOG_ARCHIVE_DEST='/u02/archivelog' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DUPLEX_DEST='USE_DB_RECOVERY_FILE_DEST' SCOPE=BOTH;
**** 아래 에러 발생
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/u01/app/oracle/fast_recovery_area' SCOPE=BOTH;
* 에러코드
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16019: cannot use db_recovery_file_dest with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
* log_archive_dest_n 과 fra 는 에러 발생 하지 않음.
1. fra '' 처리
alter system set db_recovery_file_dest='' scope=both;
2. log_archive_dest만 해도되나, 이중화를 위해 log_archive_duplex_dest 까지 설정
alter system set log_archive_dest='/tmp' scope=both;
alter system set log_archive_duplex_dest = '/u02/archivelog' scope=both;
[ Script ]
1. FRA '' 처리
SQL> alter system set db_recovery_file_dest='' scope=both;
2. Oracle이 아래 경로로 아카이브 파일 경로 변경함
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
3. 원하는 경로로 변경
alter system set log_archive_dest='/tmp' scope=both;
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /tmp **********************
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
4. 이중화
alter system set log_archive_duplex_dest = '/u02/archivelog' scope=both;
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u02/archivelog **********************
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
5. 아카이브 저장 경로 조회
SELECT name, value, default_value, display_value
FROM V$PARAMETER a
WHERE NAME in ( 'db_recovery_file_dest','log_archive_dest'
,'log_archive_duplex_dest','log_archive_format' );
NAME VALUE DEFAULT_VALUE DISPLAY_VALUE
log_archive_dest /tmp NONE /tmp
log_archive_duplex_dest /u02/archivelog NONE /u02/archivelog
log_archive_format ARCH_STR_%r_%t_%s.ARC %t_%s_%r.dbf ARCH_STR_%r_%t_%s.ARC
db_recovery_file_dest NONE
6. 아카이브 파일 만들기
: switch log x 5번 -> /tmp, /u02/archivelog 생성 확인
SQL> alter system switch logfile;
System altered.
7. log_archive_dest 경로
[oracle@ol819cs22 ~]$ ll /tmp/*.ARC
-rw-r-----. 1 oracle dba 2048 Jun 14 17:56 /tmp/ARCH_STR_1171616389_1_31.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 17:56 /tmp/ARCH_STR_1171616389_1_32.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 17:56 /tmp/ARCH_STR_1171616389_1_33.ARC
-rw-r-----. 1 oracle dba 9216 Jun 14 17:56 /tmp/ARCH_STR_1171616389_1_34.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 17:56 /tmp/ARCH_STR_1171616389_1_35.ARC
8.log_archive_duplex_dest 경로
[oracle@ol819cs22 ~]$ ll /u02/archivelog/
total 28
-rw-r-----. 1 oracle dba 2048 Jun 14 17:56 ARCH_STR_1171616389_1_31.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 17:56 ARCH_STR_1171616389_1_32.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 17:56 ARCH_STR_1171616389_1_33.ARC
-rw-r-----. 1 oracle dba 9216 Jun 14 17:56 ARCH_STR_1171616389_1_34.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 17:56 ARCH_STR_1171616389_1_35.ARC
※ 아카이브 파일이 .dbf 파일로 저장된다면, archive_format이 변경된 것이므로 아래 수행 후 db restart 후에 재작업!
: alter system set log_archive_format='ARCH_STR_%r_%t_%s.ARC' scope=spfile;
3. log_archive_dest_n 관리
: 8i부터 여러 아카이브 로그 목적지를 설정하는 방법. 오라클에서는 log_archive_dest 보다는
log_archive_dest_n을권장하고 있음. 그 이유는 유연성과 가용성으로, LOG_ARCHIVE_DEST_n을
사용하면 여러 아카이브 로그 목적지를 지정 할 수 있어 로그 관리와 데이터 보호 측면에서
더 많은 이점을 제공함. 사용 방법 이해를 위해 아키이브 삼중화까지 해보자.
실습) 아카이브 파일 저장 경로에 아카이브 파일 만들기
1. 삼중화 저장 경로
- /tmp <-- /dev/sda2
- /u02/archivelog/ <-- /dev/sdb1
- /u01/app/oracle/fast_recovery_area/ORA19/archivelog/2024_06_14/ <-- FRA
※ log_archive_dest_n 에서 사용할 경로 3가지
- LOG_ARCHIVE_DEST, LOG_ARCHIVE_DUPLEX_DEST 에서 사용했던 경로 2개
- FRA
[ Script ]
1. log_archive_dest 경로 모두 '' 처리
ALTER SYSTEM SET LOG_ARCHIVE_DUPLEX_DEST = '' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST = '' SCOPE=BOTH;
2. log_archive_dest_n 경로 설정
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/tmp' SCOPE=BOTH; -- log_archive_dest 경로
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'LOCATION=/u02/archivelog' SCOPE=BOTH; -- log_archive_duplex_dest 경로
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST' SCOPE=BOTH; -- fra 사용
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fast_recovery_area' SCOPE=BOTH; -- fra 경로 지정
3. 아키이브 모드 확인
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 46
Next log sequence to archive 48
Current log sequence 48
4. [2] 번 테스트로 적재된 ARCHIVE 모두 삭제 처리
5. 아카이브 적재 경로 확인
SELECT name, value
FROM V$PARAMETER a
where name in ( 'db_recovery_file_dest','log_archive_dest','log_archive_duplex_dest'
,'log_archive_format','log_archive_dest_1','log_archive_dest_2','log_archive_dest_3' );
NAME VALUE
log_archive_dest_1 LOCATION=/tmp
log_archive_dest_2 LOCATION=/u02/archivelog
log_archive_dest_3 LOCATION=USE_DB_RECOVERY_FILE_DEST
log_archive_dest NONE
log_archive_duplex_dest NONE
log_archive_format ARCH_STR_%r_%t_%s.ARC
db_recovery_file_dest /u01/app/oracle/fast_recovery_area
6. 아카이브 파일 만들기 > switch log x 5번
SQL> alter system switch logfile;
System altered.
7. 삼중화 확인 조회
: fra는 omf 형태로 자동으로 생성되고, 이외는 설정한 format 형태로 생성됨
1) LOG_ARCHIVE_DEST_1 : tmp
[oracle@ol819cs22 2024_06_14]$ ll /tmp/*.ARC
-rw-r-----. 1 oracle dba 4096 Jun 14 18:20 /tmp/ARCH_STR_1171616389_1_48.ARC
-rw-r-----. 1 oracle dba 2048 Jun 14 18:20 /tmp/ARCH_STR_1171616389_1_49.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 /tmp/ARCH_STR_1171616389_1_50.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 /tmp/ARCH_STR_1171616389_1_51.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 /tmp/ARCH_STR_1171616389_1_52.ARC
2) LOG_ARCHIVE_DEST_2 : /u02/archivelog
[oracle@ol819cs22 2024_06_14]$ ll /u02/archivelog/
total 20
-rw-r-----. 1 oracle dba 4096 Jun 14 18:20 ARCH_STR_1171616389_1_48.ARC
-rw-r-----. 1 oracle dba 2048 Jun 14 18:20 ARCH_STR_1171616389_1_49.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 ARCH_STR_1171616389_1_50.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 ARCH_STR_1171616389_1_51.ARC
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 ARCH_STR_1171616389_1_52.ARC
3) LOG_ARCHIVE_DEST_2 : /u01/app/oracle/fast_recovery_area ( USE_DB_RECOVERY_FILE_DEST )
[oracle@ol819cs22 2024_06_14]$ pwd
/u01/app/oracle/fast_recovery_area/ORA19/archivelog/2024_06_14
[oracle@ol819cs22 2024_06_14]$ ll
total 20
-rw-r-----. 1 oracle dba 4096 Jun 14 18:20 o1_mf_1_48_m6r2t5h2_.arc
-rw-r-----. 1 oracle dba 2048 Jun 14 18:20 o1_mf_1_49_m6r2t814_.arc
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 o1_mf_1_50_m6r2t8qg_.arc
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 o1_mf_1_51_m6r2tfs8_.arc
-rw-r-----. 1 oracle dba 1024 Jun 14 18:20 o1_mf_1_52_m6r2tgoh_.arc
[ 3 ] 백업 파일은 FRA 저장, 아카이브만 별도 경로 설정
: 백업 파일은 FRA에 저장하고 싶고, 용량을 지속적으로 소모하는 아카이브 파일은 별도 경로에 저장하고 싶은 경우
[ Script ]
1. 아래 2 경로 이외는 모두 '' 처리
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/u01/app/oracle/fast_recovery_area' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='location=/u02/archivelog' SCOPE=BOTH;
2. 아카이브 모드 조회
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u02/archivelog
Oldest online log sequence 4
Next log sequence to archive 6
Current log sequence 6
3. 아카이브 적재 경로 조회
SELECT name, value
FROM V$PARAMETER a
where regexp_like (name ,'db_recovery|log_archive_dest$|log_archive_duplex_dest|log_archive_format
|log_archive_dest_1$|log_archive_dest_2$|log_archive_dest_3$' );
NAME VALUE
log_archive_dest_1 location=/u02/archivelog --------------------------------------아카이브
log_archive_dest_2
log_archive_dest_3
log_archive_dest
log_archive_duplex_dest
log_archive_format ARCH_STR_%r_%t_%s.ARC
db_recovery_file_dest /u01/app/oracle/fast_recovery_area ------------------------ fra
db_recovery_file_dest_size 8657043456
4. 아카이브 파일 만들기 > switch log x 6번
SQL> alter system switch logfile;
System altered.
[oracle@ol819cs22 archivelog]$ ll
total 154732
-rw-r-----. 1 oracle dba 43204096 Jun 15 20:45 ARCH_STR_1171716229_1_2.ARC
-rw-r-----. 1 oracle dba 114883584 Jun 15 22:13 ARCH_STR_1171745151_1_1.ARC
-rw-r-----. 1 oracle dba 335360 Jun 15 22:13 ARCH_STR_1171745151_1_2.ARC
-rw-r-----. 1 oracle dba 4608 Jun 15 22:13 ARCH_STR_1171745151_1_3.ARC
-rw-r-----. 1 oracle dba 2048 Jun 15 22:13 ARCH_STR_1171745151_1_4.ARC
-rw-r-----. 1 oracle dba 1024 Jun 15 22:13 ARCH_STR_1171745151_1_5.ARC
5. 백업 파일 만든후 fra 경로 확인
[oracle@ol819cs22 2024_06_15]$ ll
total 1412888
-rw-r-----. 1 oracle dba 1446797312 Jun 15 22:16 o1_mf_nnndf_TAG20240615T221618_m6v5133n_.bkp
RMAN> backup database;
Starting backup at 2024/06/15(SAT) 22:16:17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=140 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_system_m6q1wqlq_.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_sysaux_m6q1xjr1_.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_undotbs1_m6q1xzyw_.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_ts_test_m6tbonsh_.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_ts_test_m6t98lo4_.dbf
input datafile file number=00008 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_ts_test_m6tbq130_.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_ts_test_m6tbq2m2_.dbf
input datafile file number=00010 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_ts_test_m6tkmsr2_.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/ORA19/datafile/o1_mf_users_m6q1y12q_.dbf
channel ORA_DISK_1: starting piece 1 at 2024/06/15(SAT) 22:16:19
channel ORA_DISK_1: finished piece 1 at 2024/06/15(SAT) 22:16:34
piece handle=/u01/app/oracle/fast_recovery_area/ORA19/backupset/2024_06_15
/o1_mf_nnndf_TAG20240615T221618_m6v5133n_.bkp tag=TAG20240615T221618 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 2024/06/15(SAT) 22:16:34
'ORACLE > DBA' 카테고리의 다른 글
히든 파라메터 조회 (Hidden Parameter) (0) | 2024.09.05 |
---|---|
오라클 서버 CPU와 MEMORY 조회 (2) | 2024.09.04 |
Oracle 19c Install 에러 "Ins-081010" 해결방안 (0) | 2024.06.12 |
DB 접속이 안되는 5가지 이유 (0) | 2024.06.09 |
파티션 테이블의 주,서브 파티션키 검색 (0) | 2024.04.28 |