프린트 하기

OS환경 : Windows Server 2019 Pro (64bit)

 

DB 환경 : Oracle Database 19.3.0.0

 

방법 : 오라클 19c Windows 환경에서 아카이브 로그 정리 방법(archive log)

윈도우 환경에서 rman 을 이용해 아카이브 로그파일을 정리하는 방법을 설명함

 

 

vm 현재날짜 : 2021년 11월 02일

기존 아카이브로그 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
cmd> rman target /
 
복구 관리자: Release 19.0.0.0.0 - Production on 화 11월 2 15:26:13 2021
Version 19.3.0.0.0
 
Copyright (c) 19822019, Oracle and/or its affiliates.  All rights reserved.
 
대상 데이터베이스에 접속됨: ORCL(DBID=1614224227)
 
RMAN> list archivelog all;
 
db_unique_name ORCL을(를) 가진 데이터베이스에 대한 아카이브된 로그 복사본 목록
=====================================================================
 
키     스레드 시퀀스     S Low 시간
------- ---- ------- - --------
1       1    8       A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_8_1_1086443491.ARC
 
2       1    9       A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_9_1_1086443491.ARC
 
3       1    10      A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_10_1_1086443491.ARC
 
4       1    11      A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_11_1_1086443491.ARC
 
5       1    12      A 21/10/28
        이름: C:\APP\ORACLE\ARCH\ORCL_12_1_1086443491.ARC
 
6       1    13      A 21/10/28
        이름: C:\APP\ORACLE\ARCH\ORCL_13_1_1086443491.ARC
 
7       1    14      A 21/10/29
        이름: C:\APP\ORACLE\ARCH\ORCL_14_1_1086443491.ARC
 
8       1    15      A 21/10/30
        이름: C:\APP\ORACLE\ARCH\ORCL_15_1_1086443491.ARC
 
9       1    16      A 21/10/30
        이름: C:\APP\ORACLE\ARCH\ORCL_16_1_1086443491.ARC
 
10      1    17      A 21/10/31
        이름: C:\APP\ORACLE\ARCH\ORCL_17_1_1086443491.ARC
 
11      1    18      A 21/11/01
        이름: C:\APP\ORACLE\ARCH\ORCL_18_1_1086443491.ARC
 
12      1    19      A 21/11/02
        이름: C:\APP\ORACLE\ARCH\ORCL_19_1_1086443491.ARC

 

 

3일 지난 아카이브로그 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
RMAN> list ARCHIVELOG UNTIL TIME 'SYSDATE-3';
 
db_unique_name ORCL을(를) 가진 데이터베이스에 대한 아카이브된 로그 복사본 목록
=====================================================================
 
키     스레드 시퀀스     S Low 시간
------- ---- ------- - --------
1       1    8       A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_8_1_1086443491.ARC
 
2       1    9       A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_9_1_1086443491.ARC
 
3       1    10      A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_10_1_1086443491.ARC
 
4       1    11      A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_11_1_1086443491.ARC
 
5       1    12      A 21/10/28
        이름: C:\APP\ORACLE\ARCH\ORCL_12_1_1086443491.ARC
 
6       1    13      A 21/10/28
        이름: C:\APP\ORACLE\ARCH\ORCL_13_1_1086443491.ARC
 
7       1    14      A 21/10/29
        이름: C:\APP\ORACLE\ARCH\ORCL_14_1_1086443491.ARC
 
8       1    15      A 21/10/30
        이름: C:\APP\ORACLE\ARCH\ORCL_15_1_1086443491.ARC
 
9       1    16      A 21/10/30
        이름: C:\APP\ORACLE\ARCH\ORCL_16_1_1086443491.ARC

 

 

3일 지난 아카이브로그 파일 삭제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
RMAN> DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-3';
 
복구 카탈로그 대신 대상 데이터베이스 제어 파일을 사용하고 있습니다.
채널을 할당했습니다: ORA_DISK_1
채널 ORA_DISK_1: SID=21 장치 유형=DISK
db_unique_name ORCL을(를) 가진 데이터베이스에 대한 아카이브된 로그 복사본 목록
=====================================================================
 
키     스레드 시퀀스     S Low 시간
------- ---- ------- - --------
1       1    8       A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_8_1_1086443491.ARC
 
2       1    9       A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_9_1_1086443491.ARC
 
3       1    10      A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_10_1_1086443491.ARC
 
4       1    11      A 21/10/27
        이름: C:\APP\ORACLE\ARCH\ORCL_11_1_1086443491.ARC
 
5       1    12      A 21/10/28
        이름: C:\APP\ORACLE\ARCH\ORCL_12_1_1086443491.ARC
 
6       1    13      A 21/10/28
        이름: C:\APP\ORACLE\ARCH\ORCL_13_1_1086443491.ARC
 
7       1    14      A 21/10/29
        이름: C:\APP\ORACLE\ARCH\ORCL_14_1_1086443491.ARC
 
8       1    15      A 21/10/30
        이름: C:\APP\ORACLE\ARCH\ORCL_15_1_1086443491.ARC
 
9       1    16      A 21/10/30
        이름: C:\APP\ORACLE\ARCH\ORCL_16_1_1086443491.ARC
 
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_8_1_1086443491.ARC RECID=1 STAMP=1087052282
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_9_1_1086443491.ARC RECID=2 STAMP=1087052282
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_10_1_1086443491.ARC RECID=3 STAMP=1087052285
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_11_1_1086443491.ARC RECID=4 STAMP=1087138717
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_12_1_1086443491.ARC RECID=5 STAMP=1087138720
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_13_1_1086443491.ARC RECID=6 STAMP=1087225139
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_14_1_1086443491.ARC RECID=7 STAMP=1087311546
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_15_1_1086443491.ARC RECID=8 STAMP=1087313025
아카이브된 로그를 삭제했습니다.
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_16_1_1086443491.ARC RECID=9 STAMP=1087399421
9 객체를 삭제함

 

 

남은 아카이브로그 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RMAN> list archivelog all;
 
복구 카탈로그 대신 대상 데이터베이스 제어 파일을 사용하고 있습니다.
db_unique_name ORCL을(를) 가진 데이터베이스에 대한 아카이브된 로그 복사본 목록
=====================================================================
 
키     스레드 시퀀스     S Low 시간
------- ---- ------- - --------
10      1    17      A 21/10/31
        이름: C:\APP\ORACLE\ARCH\ORCL_17_1_1086443491.ARC
 
11      1    18      A 21/11/01
        이름: C:\APP\ORACLE\ARCH\ORCL_18_1_1086443491.ARC
 
12      1    19      A 21/11/02
        이름: C:\APP\ORACLE\ARCH\ORCL_19_1_1086443491.ARC

 

 

주기적으로 삭제되게끔 스케줄러 설정

파일은 C:\DBA에 저장함

배치 파일 생성 rman_archdel.bat

1
rman target / @C:\DBA\rman_archdel.sql log=C:\DBA\rman_rman_archdel_%date:-=%.log

 

 

sql 파일 생성 rman_archdel.sql (90일이 지난 아카이브로그는 지워지게끔 설정)

1
2
3
4
5
6
7
# rman_archdel.sql
run
{
CROSSCHECK ARCHIVELOG ALL;
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-90';
}

 

 

시작 - 검색 - 스케줄러 검색해서 작업 스케줄러 실행

 

 

작업 스케줄러 우클릭 - 작업 만들기 실행

 

 

작업 이름, 설명 작성 후 보안옵션 선택

 

 

트리거 새로만들기

 

 

매일 1일마다, 작업지연시간 선택

 

 

동작 - 새로 만들기 실행

 

 

프로그램시작, 스크립트파일명, 시작위치에는 스크립트 파일이 있는 경로를 삽입

 

 

동작등록 확인 후 확인

 

 

저장시 windows 유저 패스워드 입력

 

 

정상적으로 스케줄러가 생성됨

 

 

테스트 실행

 

 

C:\DBA에 정상적으로 로그파일이 생성됨

 

 

로그파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
복구 관리자: Release 19.0.0.0.0 - Production on 화 11월 2 15:43:11 2021
Version 19.3.0.0.0
 
Copyright (c) 19822019, Oracle and/or its affiliates.  All rights reserved.
 
대상 데이터베이스에 접속됨: ORCL(DBID=1614224227)
 
RMAN> # rman_archdel.sql
2> run
3> {
4> CROSSCHECK ARCHIVELOG ALL;
5> DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
6> DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-90';
7> }
8> 
복구 카탈로그 대신 대상 데이터베이스 제어 파일을 사용하고 있습니다.
채널을 할당했습니다: ORA_DISK_1
채널 ORA_DISK_1: SID=147 장치 유형=DISK
아카이브된 로그에 관한 검증이 성공했습니다
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_17_1_1086443491.ARC RECID=10 STAMP=1087485826
아카이브된 로그에 관한 검증이 성공했습니다
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_18_1_1086443491.ARC RECID=11 STAMP=1087572232
아카이브된 로그에 관한 검증이 성공했습니다
아카이브된 로그 파일 이름=C:\APP\ORACLE\ARCH\ORCL_19_1_1086443491.ARC RECID=12 STAMP=1087572541
상호 확인된 3 객체
 
 
채널을 릴리스합니다: ORA_DISK_1
채널을 할당했습니다: ORA_DISK_1
채널 ORA_DISK_1: SID=147 장치 유형=DISK
사양이 저장소의 아카이브된 로그와 일치하지 않습니다.
 
채널을 릴리스합니다: ORA_DISK_1
채널을 할당했습니다: ORA_DISK_1
채널 ORA_DISK_1: SID=147 장치 유형=DISK
사양이 저장소의 아카이브된 로그와 일치하지 않습니다.
 
복구 매니저가 완성되었습니다.
 

정상적으로 실행됨

현재 90일 이상 지난 아카이브로그가 없어서 "사양이 저장소의 아카이브된 로그와 일치하지 않습니다."로 나옴

 

 

참조 : https://positivemh.tistory.com/632

 

rman 백업 스크립트(Windows Server)

OS환경 : Windows Server 2016 (64bit) DB 환경 : Oracle Database 11.2.0.4 방법 : rman 백업 스크립트(Windows Server) 윈도우 환경에서 rman 을 이용한 백업 방법을 작성함 간단한 스크립트로 작성함 아카이..

positivemh.tistory.com

https://positivemh.tistory.com/619

 

rman crosscheck 사양이 저장소의 아카이브된 로그와 일치하지 않습니다

OS환경 : Windows Server 2016, Oracle Linux 6.8 (64bit) DB 환경 : Oracle Database 11.2.0.4 에러 : 사양이 저장소의 아카이브된 로그와 일치하지 않습니다 rman 스크립트 실행시 crosscheck 구문과 DELETE NO..

positivemh.tistory.com