프린트 하기

OS 환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 19.3.0.0

 

방법 : 오라클 19c 체크포인트 발생 상황 테스트(테이블스페이스 체크포인트)

오라클에서 체크포인트가 발생하는 경우들을 확인해봄
확인하는 방법으로는 ckpt 프로세스와 dbwr 프로세스에 대해 트레이스를 걸어 확인해봄
본문에서는 테이블스페이스 및 데이터 파일 체크포인트만 확인해봄

참고 : 오라클 19c 체크포인트 발생 상황 테스트(스레드 체크포인트) ( https://positivemh.tistory.com/1073 )

참고 : 오라클 19c 체크포인트 발생 상황 테스트(테이블스페이스 체크포인트) ( https://positivemh.tistory.com/1074 )

참고 : 오라클 19c 체크포인트 발생 상황 테스트(기타 체크포인트) ( https://positivemh.tistory.com/1075 )

 

 

체크포인트(Checkpoint)란?
참조 : 오라클 19c 체크포인트 정리 ( https://positivemh.tistory.com/1071 )

 

 

사전 설정
트레이스 설정

백그라운드 프로세스 정보 경로 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> 
set lines 200 pages 1000
col spid for a10
col tracefile for a100
select p.pname, p.spid, s.sid, s.serial#, s.sql_trace, p.tracefile
from v$session s, v$process p
where s.paddr=p.addr
and (p.pname like 'DBW%' or p.pname = 'CKPT');
 
PNAME SPID              SID    SERIAL# SQL_TRAC TRACEFILE
----- ---------- ---------- ---------- -------- ----------------------------------------------------------------------------------------------------
CKPT  2406              768      11017 DISABLED /ORA19/app/oracle/diag/rdbms/oracle19/oracle19/trace/oracle19_ckpt_2406.trc
DBW0  2394             1149      31657 DISABLED /ORA19/app/oracle/diag/rdbms/oracle19/oracle19/trace/oracle19_dbw0_2394.trc

*spid : os 에서 보이는 pid

 

 

백그라운드 프로세스 트레이스 설정(sid와 serial# 사용)
ckpt 트레이스 설정

1
2
3
SQL> exec dbms_monitor.session_trace_enable(768, 11017, true, true);
 
PL/SQL procedure successfully completed.

 

 

dbwr 트레이스 설정

1
2
3
SQL> exec dbms_monitor.session_trace_enable(1149, 31657, true, true);
 
PL/SQL procedure successfully completed.

 

 

백그라운드 프로세스 정보 경로 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> 
set lines 200 pages 1000
col spid for a10
col tracefile for a100
select p.pname, p.spid, s.sid, s.serial#, s.sql_trace, p.tracefile
from v$session s, v$process p
where s.paddr=p.addr
and (p.pname like 'DBW%' or p.pname = 'CKPT');
 
PNAME SPID              SID    SERIAL# SQL_TRAC TRACEFILE
----- ---------- ---------- ---------- -------- ----------------------------------------------------------------------------------------------------
CKPT  2406              768      11017 ENABLED /ORA19/app/oracle/diag/rdbms/oracle19/oracle19/trace/oracle19_ckpt_2406.trc
DBW0  2394             1149      31657 ENABLED /ORA19/app/oracle/diag/rdbms/oracle19/oracle19/trace/oracle19_dbw0_2394.trc

sql_trace 컬럼값이 enable로 변경됨 됨

 

 

트레이스 확인

1
2
3
4
5
6
7
8
9
10
11
12
ckpt 트레이스 확인
*** 2024-04-06T22:29:19.303033+09:00
WAIT #0: nam='rdbms ipc message' ela= 3007344 timeout=300 p2=0 p3=0 obj#=-1 tim=173569441174
WAIT #0: nam='control file parallel write' ela= 552 files=2 block#=3 requests=2 obj#=-1 tim=173569441969
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=1 blocks=1 obj#=-1 tim=173569442091
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=15 blocks=1 obj#=-1 tim=173569442120
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=173569442128
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=286 blocks=1 obj#=-1 tim=173569442137
 
dbwr 트레이스 확인
*** 2024-04-06T22:29:19.943679+09:00
WAIT #0: nam='rdbms ipc message' ela= 3008003 timeout=300 p2=0 p3=0 obj#=-1 tim=173570081821

매3초 증분 체크포인트가 실행되면서
ckpt 트레이스에 'rdbms ipc message', 'control file parallel write', 'control file sequential read' 이벤트가 발생하고
dbwr 트레이스에 'rdbms ipc message' 이벤트가 발생함

 

 

이렇게 체크포인트 발생시 ckpt 트레이스에 'rdbms ipc message', 'control file parallel write', 'control file sequential read' 이벤트가 발생하는것을 확인할 수 있음
매 3초 증분 체크포인트가 계속 발생하기 때문에 이 체크포인트 발생 직후(1초 이후) 위 테스트 명령을 수행해
트레이스에 다른 이벤트가 발생하는지를 확인해 체크포인트 발생여부를 모니터링함
예를들어 22:32:37에 증분 체크포인트가 발생했다면 다음 증분 체크포인트는 22:32:40에 발생함
이 사이에 테스트 명령을 수행하고 트레이스에 이벤트가 남으면 체크포인트가 발생했다고 판단하겠음
(참고로 이 이벤트들이 체크포인트가 발생을 증명한다는 공식 문서는 찾지못함)

 

 

테스트
체크포인트가 발생하는 경우를 체크포인트 종류별로 구분하여 테스트해봄
1. 스레드 체크포인트 확인
1_1. 일관된 DB 종료 시(shutdown immediate)
1_2. 일관된 DB 종료 시(shutdown normal)
1_3. 일관된 DB 종료 시(shutdown transactional)
1_4. 비일관된 DB 종료 시(shutdown abort)
1_5. DB 기동 시
1_6. alter system checkpoint 구문 실행 시
1_7. alter database begin backup 구문 실행 시
1_8. alter database end backup 구문 실행 시
1_9. log switch 시
결과 참고 : 오라클 19c 체크포인트 발생 상황 테스트(스레드 체크포인트) ( https://positivemh.tistory.com/1073 )

 

 

2. 테이블스페이스 및 데이터 파일 체크포인트 확인
2_1. 테이블스페이스를 읽기 전용으로 변경 시
2_2. 테이블스페이스를 읽기 쓰기로 변경 시
2_3. 테이블스페이스를 오프라인으로 변경 시
2_4. 테이블스페이스를 온라인으로 변경 시
2_5. 테이블스페이스 생성 시
2_6. 테이블스페이스 삭제 시
2_7. 데이터 파일 축소 시
2_8. 데이터 파일 증가 시
2_9. 데이터 파일 추가 시
2_10. 데이터 파일 삭제 시
2_11. alter tablespace begin backup 명령 실행 시
2_12. alter tablespace end backup 명령 실행 시
결과 참고 : 본문

 

 

3. 증분 체크포인트 확인
3_1. 매 3초
결과 참고 : 본문

 

 

4. 기타 체크포인트 확인
4_1. 리두로그 추가 시
4_2. 리두로그 삭제 시
4_3. rman 백업 시
4_4. 컨트롤파일 백업본 생성 시
4_5. 테이블 생성 시
4_6. 테이블 Truncate 시
4_7. 테이블 삭제 시
결과 참고 : 오라클 19c 체크포인트 발생 상황 테스트(기타 체크포인트) ( https://positivemh.tistory.com/1075 )

 

 

2. 테이블스페이스 및 데이터 파일 체크포인트 확인
2_1. 테이블스페이스를 읽기 전용으로 변경 시
테이블스페이스 읽기 전용으로 변경

1
2
3
SQL> alter tablespace users read only;
 
Tablespace altered.

 

 

트레이스 확인(15:07:17에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
*** 2024-04-06T15:07:18.890152+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1123393 timeout=300 p2=0 p3=0 obj#=-1 tim=233449028304
WAIT #0: nam='rdbms ipc message' ela= 104 timeout=188 p2=0 p3=0 obj#=-1 tim=233449028536
WAIT #0: nam='rdbms ipc message' ela= 55 timeout=188 p2=0 p3=0 obj#=-1 tim=233449028676
WAIT #0: nam='rdbms ipc message' ela= 136 timeout=188 p2=0 p3=0 obj#=-1 tim=233449028893
 
dbwr 트레이스
*** 2024-04-06T15:07:18.887532+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 994517 timeout=300 p2=0 p3=0 obj#=-1 tim=233449025681
WAIT #0: nam='control file sequential read' ela= 10 file#=0 block#=1 blocks=1 obj#=-1 tim=233449025920
WAIT #0: nam='control file sequential read' ela= 5 file#=1 block#=1 blocks=1 obj#=-1 tim=233449025951
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=16 blocks=1 obj#=-1 tim=233449025960
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=18 blocks=1 obj#=-1 tim=233449025969
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=233449025981
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=233449025990
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=184 blocks=1 obj#=-1 tim=233449026056
WAIT #0: nam='rdbms ipc message' ela= 2661 timeout=201 p2=0 p3=0 obj#=-1 tim=233449028757
WAIT #0: nam='rdbms ipc message' ela= 1234 timeout=201 p2=0 p3=0 obj#=-1 tim=233449030109
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=1 blocks=1 obj#=-1 tim=233449030208
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=233449030238
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=15 blocks=1 obj#=-1 tim=233449030247
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=17 blocks=1 obj#=-1 tim=233449030287
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=233449030298
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=24 blocks=1 obj#=-1 tim=233449030306
WAIT #0: nam='control file sequential read' ela= 12 file#=0 block#=184 blocks=1 obj#=-1 tim=233449030365
WAIT #0: nam='rdbms ipc message' ela= 1936 timeout=200 p2=0 p3=0 obj#=-1 tim=233449032338
WAIT #0: nam='rdbms ipc message' ela= 51 timeout=200 p2=0 p3=0 obj#=-1 tim=233449032485

결과 : 체크포인트 발생함

 

 

2_2. 테이블스페이스를 읽기 쓰기로 변경 시
테이블스페이스 읽기 쓰기로 변경

1
2
3
SQL> alter tablespace users read write;
 
Tablespace altered.

 

 

트레이스 확인(15:10:00에 마지막 증분 체크포인트 실행됨)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ckpt 트레이스
추가 이벤트 미발생
 
dbwr 트레이스
*** 2024-04-06T15:10:01.193505+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 867893 timeout=300 p2=0 p3=0 obj#=-1 tim=233611331653
WAIT #0: nam='rdbms ipc message' ela= 24 timeout=213 p2=0 p3=0 obj#=-1 tim=233611331782
WAIT #0: nam='rdbms ipc message' ela= 3543 timeout=213 p2=0 p3=0 obj#=-1 tim=233611335355
WAIT #0: nam='control file sequential read' ela= 5 file#=0 block#=1 blocks=1 obj#=-1 tim=233611335444
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=233611335471
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=15 blocks=1 obj#=-1 tim=233611335481
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=233611335487
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=286 blocks=1 obj#=-1 tim=233611335497
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=233611335505
WAIT #0: nam='control file sequential read' ela= 12 file#=0 block#=184 blocks=1 obj#=-1 tim=233611340384

결과 : 체크포인트 미발생함(dbwr 트레이스에는 이벤트가 발생했지만 ckpt 트레이스에는 이벤트가 발생하지 않아 미발생으로 판단)

 

 

2_3. 테이블스페이스를 오프라인으로 변경 시
테이블스페이스 오프라인으로 변경

1
2
3
SQL> alter tablespace users offline;
 
Tablespace altered.

 

 

트레이스 확인(15:14:30에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
*** 2024-04-06T15:14:32.382584+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1464654 timeout=300 p2=0 p3=0 obj#=-1 tim=233882520735
WAIT #0: nam='rdbms ipc message' ela= 49 timeout=153 p2=0 p3=0 obj#=-1 tim=233882520954
WAIT #0: nam='rdbms ipc message' ela= 52 timeout=153 p2=0 p3=0 obj#=-1 tim=233882521051
WAIT #0: nam='rdbms ipc message' ela= 74 timeout=153 p2=0 p3=0 obj#=-1 tim=233882521217
WAIT #0: nam='rdbms ipc message' ela= 7943 timeout=153 p2=0 p3=0 obj#=-1 tim=233882529201
WAIT #0: nam='rdbms ipc message' ela= 4991 timeout=153 p2=0 p3=0 obj#=-1 tim=233882534240
 
dbwr 트레이스
*** 2024-04-06T15:14:32.382130+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1336629 timeout=300 p2=0 p3=0 obj#=-1 tim=233882520276
WAIT #0: nam='control file sequential read' ela= 9 file#=0 block#=1 blocks=1 obj#=-1 tim=233882520477
WAIT #0: nam='control file sequential read' ela= 5 file#=1 block#=1 blocks=1 obj#=-1 tim=233882520508
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=15 blocks=1 obj#=-1 tim=233882520518
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=17 blocks=1 obj#=-1 tim=233882520540
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=233882520554
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=24 blocks=1 obj#=-1 tim=233882520577
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=184 blocks=1 obj#=-1 tim=233882520595
WAIT #0: nam='rdbms ipc message' ela= 472 timeout=166 p2=0 p3=0 obj#=-1 tim=233882521103
WAIT #0: nam='rdbms ipc message' ela= 1442 timeout=166 p2=0 p3=0 obj#=-1 tim=233882522628
WAIT #0: nam='control file sequential read' ela= 4 file#=0 block#=1 blocks=1 obj#=-1 tim=233882522680
WAIT #0: nam='control file sequential read' ela= 3 file#=1 block#=1 blocks=1 obj#=-1 tim=233882522691
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=16 blocks=1 obj#=-1 tim=233882522698
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=18 blocks=1 obj#=-1 tim=233882522711
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=23 blocks=1 obj#=-1 tim=233882522723
WAIT #0: nam='control file parallel write' ela= 356 files=2 block#=24 requests=2 obj#=-1 tim=233882523088
WAIT #0: nam='control file parallel write' ela= 245 files=2 block#=17 requests=2 obj#=-1 tim=233882523374
WAIT #0: nam='control file parallel write' ela= 211 files=2 block#=15 requests=2 obj#=-1 tim=233882523619
WAIT #0: nam='control file parallel write' ela= 221 files=2 block#=1 requests=2 obj#=-1 tim=233882523868
WAIT #0: nam='control file sequential read' ela= 4 file#=0 block#=1 blocks=1 obj#=-1 tim=233882523949
WAIT #0: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=233882523974
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=233882523982
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=17 blocks=1 obj#=-1 tim=233882523995
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=233882524043
WAIT #0: nam='control file sequential read' ela= 12 file#=0 block#=24 blocks=1 obj#=-1 tim=233882524064
WAIT #0: nam='Disk file operations I/O' ela= 24 FileOperation=5 fileno=4 filetype=2 obj#=-1 tim=233882528039
WAIT #0: nam='rdbms ipc message' ela= 1 timeout=166 p2=0 p3=0 obj#=-1 tim=233882528856
WAIT #0: nam='rdbms ipc message' ela= 629 timeout=166 p2=0 p3=0 obj#=-1 tim=233882529512
WAIT #0: nam='control file sequential read' ela= 4 file#=0 block#=1 blocks=1 obj#=-1 tim=233882529581
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=233882529609
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=233882529620
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=233882529627
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=24 blocks=1 obj#=-1 tim=233882529636
WAIT #0: nam='control file parallel write' ela= 286 files=2 block#=23 requests=2 obj#=-1 tim=233882529930
WAIT #0: nam='control file parallel write' ela= 276 files=2 block#=18 requests=2 obj#=-1 tim=233882530234
WAIT #0: nam='control file parallel write' ela= 257 files=2 block#=16 requests=2 obj#=-1 tim=233882530518
WAIT #0: nam='control file parallel write' ela= 219 files=2 block#=1 requests=2 obj#=-1 tim=233882530770
WAIT #0: nam='control file sequential read' ela= 5 file#=0 block#=1 blocks=1 obj#=-1 tim=233882530835
WAIT #0: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=233882530846
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=16 blocks=1 obj#=-1 tim=233882530852
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=18 blocks=1 obj#=-1 tim=233882530862
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=285 blocks=1 obj#=-1 tim=233882530869
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=23 blocks=1 obj#=-1 tim=233882530875
WAIT #0: nam='Disk file operations I/O' ela= 14 FileOperation=5 fileno=6 filetype=2 obj#=-1 tim=233882533631
WAIT #0: nam='rdbms ipc message' ela= 1 timeout=165 p2=0 p3=0 obj#=-1 tim=233882533942

결과 : 체크포인트 발생함

 

 

2_4. 테이블스페이스를 온라인으로 변경 시
테이블스페이스 온라인으로 변경

1
2
3
SQL> alter tablespace users online;
 
Tablespace altered.

 

 

트레이스 확인(15:18:10에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
*** 2024-04-06T15:18:12.040007+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1537798 timeout=300 p2=0 p3=0 obj#=-1 tim=234102178159
WAIT #0: nam='rdbms ipc message' ela= 707 timeout=147 p2=0 p3=0 obj#=-1 tim=234102179029
 
dbwr 트레이스
*** 2024-04-06T15:18:12.028632+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1399426 timeout=300 p2=0 p3=0 obj#=-1 tim=234102166779
WAIT #0: nam='control file sequential read' ela= 9 file#=0 block#=1 blocks=1 obj#=-1 tim=234102166943
WAIT #0: nam='control file sequential read' ela= 6 file#=1 block#=1 blocks=1 obj#=-1 tim=234102166962
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=234102166971
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=234102166979
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=234102166991
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=32 blocks=1 obj#=-1 tim=234102167013
WAIT #0: nam='Disk file operations I/O' ela= 122 FileOperation=2 fileno=4 filetype=2 obj#=-1 tim=234102167143
WAIT #0: nam='rdbms ipc message' ela= 41 timeout=160 p2=0 p3=0 obj#=-1 tim=234102167216
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=1 blocks=1 obj#=-1 tim=234102167247
WAIT #0: nam='control file sequential read' ela= 1 file#=1 block#=1 blocks=1 obj#=-1 tim=234102167253
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=234102167259
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=17 blocks=1 obj#=-1 tim=234102167264
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=234102167271
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=32 blocks=1 obj#=-1 tim=234102167277
WAIT #0: nam='Disk file operations I/O' ela= 49 FileOperation=2 fileno=6 filetype=2 obj#=-1 tim=234102167330
WAIT #0: nam='rdbms ipc message' ela= 3492 timeout=160 p2=0 p3=0 obj#=-1 tim=234102170844
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=1 blocks=1 obj#=-1 tim=234102170909
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=234102170923
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=16 blocks=1 obj#=-1 tim=234102170935
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=18 blocks=1 obj#=-1 tim=234102170945
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=286 blocks=1 obj#=-1 tim=234102170958
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=24 blocks=1 obj#=-1 tim=234102170967
WAIT #0: nam='control file sequential read' ela= 7 file#=0 block#=32 blocks=1 obj#=-1 tim=234102171045
WAIT #0: nam='Disk file operations I/O' ela= 12 FileOperation=5 fileno=4 filetype=2 obj#=-1 tim=234102171107
WAIT #0: nam='Disk file operations I/O' ela= 51 FileOperation=2 fileno=4 filetype=2 obj#=-1 tim=234102171168
WAIT #0: nam='db file sequential read' ela= 4 file#=4 block#=1 blocks=1 obj#=-1 tim=234102171224
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=179 blocks=1 obj#=-1 tim=234102171261
WAIT #0: nam='Disk file operations I/O' ela= 8 FileOperation=5 fileno=6 filetype=2 obj#=-1 tim=234102171345
WAIT #0: nam='Disk file operations I/O' ela= 43 FileOperation=2 fileno=6 filetype=2 obj#=-1 tim=234102171415
WAIT #0: nam='db file sequential read' ela= 2 file#=6 block#=1 blocks=1 obj#=-1 tim=234102171445
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=184 blocks=1 obj#=-1 tim=234102171460
WAIT #0: nam='rdbms ipc message' ela= 5872 timeout=159 p2=0 p3=0 obj#=-1 tim=234102177353
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=1 blocks=1 obj#=-1 tim=234102177471
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=234102177500
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=15 blocks=1 obj#=-1 tim=234102177515
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=17 blocks=1 obj#=-1 tim=234102177522
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=286 blocks=1 obj#=-1 tim=234102177532
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=234102177568
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=184 blocks=1 obj#=-1 tim=234102177583
WAIT #0: nam='rdbms ipc message' ela= 682 timeout=159 p2=0 p3=0 obj#=-1 tim=234102178304
WAIT #0: nam='rdbms ipc message' ela= 281 timeout=159 p2=0 p3=0 obj#=-1 tim=234102178647
WAIT #0: nam='db file parallel write' ela= 225 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234102178917

결과 : 체크포인트 발생함

 

 

2_5. 테이블스페이스 생성 시
테이블스페이스 생성

1
2
3
SQL> create tablespace users2 datafile '/oradata1/oracle19/users2.dbf' size 100m;
 
Tablespace created.

 

 

트레이스 확인(15:20:25에 마지막 증분 체크포인트 실행됨)

1
2
3
4
5
6
ckpt 트레이스
*** 2024-04-06T15:20:27.163851+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1237441 timeout=300 p2=0 p3=0 obj#=-1 tim=234237302002
 
dbwr 트레이스
추가 이벤트 미발생

결과 : 체크포인트 발생함

 

 

2_6. 테이블스페이스 삭제 시
테이블스페이스 삭제

1
2
3
SQL> drop tablespace users2 including contents and datafiles;
 
Tablespace dropped.

 

 

트레이스 확인(15:22:05에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
*** 2024-04-06T15:22:07.281025+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 2090825 timeout=300 p2=0 p3=0 obj#=-1 tim=234337419171
WAIT #0: nam='rdbms ipc message' ela= 2621 timeout=91 p2=0 p3=0 obj#=-1 tim=234337421930
WAIT #0: nam='rdbms ipc message' ela= 64 timeout=90 p2=0 p3=0 obj#=-1 tim=234337422086
WAIT #0: nam='rdbms ipc message' ela= 2424 timeout=90 p2=0 p3=0 obj#=-1 tim=234337424563
WAIT #0: nam='rdbms ipc message' ela= 7012 timeout=90 p2=0 p3=0 obj#=-1 tim=234337431652
 
dbwr 트레이스
*** 2024-04-06T15:22:07.283448+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 2029972 timeout=300 p2=0 p3=0 obj#=-1 tim=234337421596
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=1 blocks=1 obj#=-1 tim=234337421737
WAIT #0: nam='control file sequential read' ela= 3 file#=1 block#=1 blocks=1 obj#=-1 tim=234337421750
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=15 blocks=1 obj#=-1 tim=234337421805
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=17 blocks=1 obj#=-1 tim=234337421817
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=286 blocks=1 obj#=-1 tim=234337421826
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=23 blocks=1 obj#=-1 tim=234337421834
WAIT #0: nam='rdbms ipc message' ela= 270 timeout=97 p2=0 p3=0 obj#=-1 tim=234337422143
WAIT #0: nam='db file parallel write' ela= 1120 requests=8 interrupt=0 timeout=0 obj#=-1 tim=234337424350
WAIT #0: nam='rdbms ipc message' ela= 1288 timeout=97 p2=0 p3=0 obj#=-1 tim=234337425833
WAIT #0: nam='control file sequential read' ela= 5 file#=0 block#=1 blocks=1 obj#=-1 tim=234337425904
WAIT #0: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=234337425918
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=16 blocks=1 obj#=-1 tim=234337425926
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=18 blocks=1 obj#=-1 tim=234337425933
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=24 blocks=1 obj#=-1 tim=234337425942
WAIT #0: nam='control file parallel write' ela= 337 files=2 block#=23 requests=2 obj#=-1 tim=234337426287
WAIT #0: nam='control file parallel write' ela= 246 files=2 block#=17 requests=2 obj#=-1 tim=234337426567
WAIT #0: nam='control file parallel write' ela= 277 files=2 block#=15 requests=2 obj#=-1 tim=234337426887
WAIT #0: nam='control file parallel write' ela= 349 files=2 block#=1 requests=2 obj#=-1 tim=234337427266
WAIT #0: nam='control file sequential read' ela= 4 file#=0 block#=1 blocks=1 obj#=-1 tim=234337427344
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=234337427370
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=234337427382
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=234337427404
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=286 blocks=1 obj#=-1 tim=234337427414
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=234337427437
WAIT #0: nam='Disk file operations I/O' ela= 18 FileOperation=5 fileno=10 filetype=2 obj#=-1 tim=234337431144
WAIT #0: nam='rdbms ipc message' ela= 1 timeout=96 p2=0 p3=0 obj#=-1 tim=234337431515
WAIT #0: nam='rdbms ipc message' ela= 7729 timeout=96 p2=0 p3=0 obj#=-1 tim=234337439266
WAIT #0: nam='control file sequential read' ela= 5 file#=0 block#=1 blocks=1 obj#=-1 tim=234337439362
WAIT #0: nam='control file sequential read' ela= 3 file#=1 block#=1 blocks=1 obj#=-1 tim=234337439388
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=16 blocks=1 obj#=-1 tim=234337439397
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=18 blocks=1 obj#=-1 tim=234337439423
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=286 blocks=1 obj#=-1 tim=234337439451
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=24 blocks=1 obj#=-1 tim=234337439464

결과 : 체크포인트 발생함

 

 

2_7. 데이터 파일 축소 시
임시 테이블스페이스 생성

1
2
3
SQL> create tablespace imsi datafile '/oradata1/oracle19/imsitest.dbf' size 100m;
 
Tablespace created.

 

 

데이터 파일 축소

1
2
3
SQL> alter database datafile '/oradata1/oracle19/imsitest.dbf' resize 50m;
 
Database altered.

 

 

트레이스 확인(15:24:26에 마지막 증분 체크포인트 실행됨)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ckpt 트레이스
*** 2024-04-06T15:24:27.815103+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1249321 timeout=300 p2=0 p3=0 obj#=-1 tim=234477953255
WAIT #0: nam='rdbms ipc message' ela= 63 timeout=175 p2=0 p3=0 obj#=-1 tim=234477953442
WAIT #0: nam='latch: messages' ela= 65 address=1611003904 number=53 why=3510017112 obj#=-1 tim=234477953591
WAIT #0: nam='rdbms ipc message' ela= 1892 timeout=175 p2=0 p3=0 obj#=-1 tim=234477955536
 
dbwr 트레이스
*** 2024-04-06T15:24:27.815340+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1121883 timeout=300 p2=0 p3=0 obj#=-1 tim=234477953495
WAIT #0: nam='db file parallel write' ela= 923 requests=7 interrupt=0 timeout=0 obj#=-1 tim=234477954966
WAIT #0: nam='db file parallel write' ela= 231 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234477955456
WAIT #0: nam='rdbms ipc message' ela= 1 timeout=188 p2=0 p3=0 obj#=-1 tim=234477955525
WAIT #0: nam='rdbms ipc message' ela= 4076 timeout=188 p2=0 p3=0 obj#=-1 tim=234477959615
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=1 blocks=1 obj#=-1 tim=234477959713
WAIT #0: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=234477959729
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=15 blocks=1 obj#=-1 tim=234477959738
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=234477959746
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=234477959756
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=24 blocks=1 obj#=-1 tim=234477959763
WAIT #0: nam='direct path sync' ela= 21 File number=10 Flags=0 p3=0 obj#=-1 tim=234477959792

결과 : 체크포인트 발생함
추가로 ckpt 트레이스에 'latch: messages' 이벤트도 발생하고, dbwr 트레이스에 'direct path sync' 이벤트도 발생함

 

 

2_8. 데이터 파일 증가 시
데이터 파일 증가

1
2
3
SQL> alter database datafile '/oradata1/oracle19/imsitest.dbf' resize 150m;
 
Database altered.

 

 

트레이스 확인(15:27:08에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
추가 이벤트 미발생
 
dbwr 트레이스
*** 2024-04-06T15:27:09.125733+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 3004967 timeout=300 p2=0 p3=0 obj#=-1 tim=234639263880
WAIT #0: nam='db file parallel write' ela= 210 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639264211
WAIT #0: nam='db file parallel write' ela= 148 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639264410
WAIT #0: nam='db file parallel write' ela= 157 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639264622
WAIT #0: nam='db file parallel write' ela= 164 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639264875
WAIT #0: nam='db file parallel write' ela= 203 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639265126
WAIT #0: nam='db file parallel write' ela= 189 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639265382
WAIT #0: nam='db file parallel write' ela= 160 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639265600
WAIT #0: nam='db file parallel write' ela= 137 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639265790
WAIT #0: nam='db file parallel write' ela= 149 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639265998
WAIT #0: nam='db file parallel write' ela= 158 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639266219
WAIT #0: nam='db file parallel write' ela= 143 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639266411
WAIT #0: nam='db file parallel write' ela= 156 requests=1 interrupt=0 timeout=0 obj#=-1 tim=234639266620
 
*** 2024-04-06T15:27:10.302995+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1174469 timeout=300 p2=0 p3=0 obj#=-1 tim=234640441133
WAIT #0: nam='control file sequential read' ela= 11 file#=0 block#=1 blocks=1 obj#=-1 tim=234640441330
WAIT #0: nam='control file sequential read' ela= 5 file#=1 block#=1 blocks=1 obj#=-1 tim=234640441363
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=16 blocks=1 obj#=-1 tim=234640441373
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=18 blocks=1 obj#=-1 tim=234640441397
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=234640441410
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=24 blocks=1 obj#=-1 tim=234640441433
WAIT #0: nam='direct path sync' ela= 22 File number=10 Flags=0 p3=0 obj#=-1 tim=234640441469

결과 : 체크포인트 미발생함(dbwr 트레이스에는 이벤트가 발생했지만 ckpt 트레이스에는 이벤트가 발생하지 않아 미발생으로 판단)

 

 

2_9. 데이터 파일 추가 시
데이터 파일 추가

1
2
3
SQL> alter tablespace imsi add datafile '/oradata1/oracle19/imsitest2.dbf' size 100m;
 
Tablespace altered.

 

 

트레이스 확인(15:30:12에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
추가 이벤트 미발생
 
dbwr 트레이스
*** 2024-04-06T15:30:13.818545+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1205073 timeout=300 p2=0 p3=0 obj#=-1 tim=234823956682
WAIT #0: nam='control file sequential read' ela= 13 file#=0 block#=1 blocks=1 obj#=-1 tim=234823956904
WAIT #0: nam='control file sequential read' ela= 5 file#=1 block#=1 blocks=1 obj#=-1 tim=234823956936
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=16 blocks=1 obj#=-1 tim=234823956948
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=18 blocks=1 obj#=-1 tim=234823956955
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=286 blocks=1 obj#=-1 tim=234823956970
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=234823956993
WAIT #0: nam='rdbms ipc message' ela= 76 timeout=180 p2=0 p3=0 obj#=-1 tim=234823957128
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=1 blocks=1 obj#=-1 tim=234823957173
WAIT #0: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=234823957184
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=16 blocks=1 obj#=-1 tim=234823957191
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=18 blocks=1 obj#=-1 tim=234823957199
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=23 blocks=1 obj#=-1 tim=234823957210
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=31 blocks=1 obj#=-1 tim=234823957217
WAIT #0: nam='Disk file operations I/O' ela= 174 FileOperation=2 fileno=11 filetype=2 obj#=-1 tim=234823957398
WAIT #0: nam='rdbms ipc message' ela= 1668 timeout=180 p2=0 p3=0 obj#=-1 tim=234823959107
WAIT #0: nam='control file sequential read' ela= 6 file#=0 block#=1 blocks=1 obj#=-1 tim=234823959228
WAIT #0: nam='control file sequential read' ela= 3 file#=1 block#=1 blocks=1 obj#=-1 tim=234823959264
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=234823959276
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=17 blocks=1 obj#=-1 tim=234823959286
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=286 blocks=1 obj#=-1 tim=234823959296
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=24 blocks=1 obj#=-1 tim=234823959313
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=31 blocks=1 obj#=-1 tim=234823959341
WAIT #0: nam='Disk file operations I/O' ela= 14 FileOperation=5 fileno=11 filetype=2 obj#=-1 tim=234823959386
WAIT #0: nam='Disk file operations I/O' ela= 81 FileOperation=2 fileno=11 filetype=2 obj#=-1 tim=234823959477
WAIT #0: nam='db file sequential read' ela= 3 file#=11 block#=1 blocks=1 obj#=-1 tim=234823959492
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=179 blocks=1 obj#=-1 tim=234823959510
WAIT #0: nam='rdbms ipc message' ela= 1174 timeout=180 p2=0 p3=0 obj#=-1 tim=234823960726
WAIT #0: nam='control file sequential read' ela= 4 file#=0 block#=1 blocks=1 obj#=-1 tim=234823960817
WAIT #0: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=234823960843
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=16 blocks=1 obj#=-1 tim=234823960853
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=18 blocks=1 obj#=-1 tim=234823960863
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=286 blocks=1 obj#=-1 tim=234823960871
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=23 blocks=1 obj#=-1 tim=234823960891

결과 : 체크포인트 미발생함(dbwr 트레이스에는 이벤트가 발생했지만 ckpt 트레이스에는 이벤트가 발생하지 않아 미발생으로 판단)

 

 

2_10. 데이터 파일 삭제 시
데이터 파일 삭제

1
2
3
SQL> alter tablespace imsi drop datafile '/oradata1/oracle19/imsitest2.dbf';
 
Tablespace altered.

 

 

트레이스 확인(15:32:27에 마지막 증분 체크포인트 실행됨)

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
ckpt 트레이스
*** 2024-04-06T15:32:29.075845+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1229177 timeout=300 p2=0 p3=0 obj#=-1 tim=234959213994
WAIT #0: nam='rdbms ipc message' ela= 23 timeout=177 p2=0 p3=0 obj#=-1 tim=234959214139
WAIT #0: nam='rdbms ipc message' ela= 2129 timeout=177 p2=0 p3=0 obj#=-1 tim=234959216325
WAIT #0: nam='rdbms ipc message' ela= 7327 timeout=177 p2=0 p3=0 obj#=-1 tim=234959223692
 
dbwr 트레이스
*** 2024-04-06T15:32:29.075530+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1101558 timeout=300 p2=0 p3=0 obj#=-1 tim=234959213679
WAIT #0: nam='control file sequential read' ela= 7 file#=0 block#=1 blocks=1 obj#=-1 tim=234959213829
WAIT #0: nam='control file sequential read' ela= 3 file#=1 block#=1 blocks=1 obj#=-1 tim=234959213846
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=234959213853
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=17 blocks=1 obj#=-1 tim=234959213858
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=234959213868
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=24 blocks=1 obj#=-1 tim=234959213873
WAIT #0: nam='rdbms ipc message' ela= 314 timeout=190 p2=0 p3=0 obj#=-1 tim=234959214224
WAIT #0: nam='db file parallel write' ela= 1138 requests=8 interrupt=0 timeout=0 obj#=-1 tim=234959216096
WAIT #0: nam='rdbms ipc message' ela= 1393 timeout=190 p2=0 p3=0 obj#=-1 tim=234959217713
WAIT #0: nam='control file sequential read' ela= 4 file#=0 block#=1 blocks=1 obj#=-1 tim=234959217776
WAIT #0: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=234959217788
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=16 blocks=1 obj#=-1 tim=234959217794
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=18 blocks=1 obj#=-1 tim=234959217800
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=23 blocks=1 obj#=-1 tim=234959217809
WAIT #0: nam='control file parallel write' ela= 293 files=2 block#=24 requests=2 obj#=-1 tim=234959218109
WAIT #0: nam='control file parallel write' ela= 264 files=2 block#=17 requests=2 obj#=-1 tim=234959218410
WAIT #0: nam='control file parallel write' ela= 288 files=2 block#=15 requests=2 obj#=-1 tim=234959218728
WAIT #0: nam='control file parallel write' ela= 266 files=2 block#=1 requests=2 obj#=-1 tim=234959219025
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=1 blocks=1 obj#=-1 tim=234959219111
WAIT #0: nam='control file sequential read' ela= 1 file#=1 block#=1 blocks=1 obj#=-1 tim=234959219124
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=15 blocks=1 obj#=-1 tim=234959219130
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=17 blocks=1 obj#=-1 tim=234959219137
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=285 blocks=1 obj#=-1 tim=234959219148
WAIT #0: nam='control file sequential read' ela= 1 file#=0 block#=24 blocks=1 obj#=-1 tim=234959219155
WAIT #0: nam='Disk file operations I/O' ela= 15 FileOperation=5 fileno=11 filetype=2 obj#=-1 tim=234959222997
WAIT #0: nam='rdbms ipc message' ela= 2 timeout=189 p2=0 p3=0 obj#=-1 tim=234959223321
WAIT #0: nam='rdbms ipc message' ela= 3302 timeout=189 p2=0 p3=0 obj#=-1 tim=234959226641
WAIT #0: nam='control file sequential read' ela= 5 file#=0 block#=1 blocks=1 obj#=-1 tim=234959226718
WAIT #0: nam='control file sequential read' ela= 3 file#=1 block#=1 blocks=1 obj#=-1 tim=234959226747
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=16 blocks=1 obj#=-1 tim=234959226757
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=18 blocks=1 obj#=-1 tim=234959226763
WAIT #0: nam='control file sequential read' ela= 3 file#=0 block#=285 blocks=1 obj#=-1 tim=234959226771
WAIT #0: nam='control file sequential read' ela= 2 file#=0 block#=23 blocks=1 obj#=-1 tim=234959226777

결과 : 체크포인트 발생함

 

 

2_11. alter tablespace begin backup 명령 실행 시
테이블스페이스 begin backup 명령 실행

1
2
3
SQL> alter tablespace users begin backup;
 
Tablespace altered.

 

 

트레이스 확인(15:34:43에 마지막 증분 체크포인트 실행됨)

1
2
3
4
5
6
7
8
9
10
11
12
ckpt 트레이스
*** 2024-04-06T15:34:44.439498+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1233502 timeout=300 p2=0 p3=0 obj#=-1 tim=235094577646
WAIT #0: nam='rdbms ipc message' ela= 56 timeout=177 p2=0 p3=0 obj#=-1 tim=235094577836
WAIT #0: nam='rdbms ipc message' ela= 55 timeout=177 p2=0 p3=0 obj#=-1 tim=235094577956
WAIT #0: nam='rdbms ipc message' ela= 150 timeout=177 p2=0 p3=0 obj#=-1 tim=235094578527
WAIT #0: nam='rdbms ipc message' ela= 1296 timeout=177 p2=0 p3=0 obj#=-1 tim=235094579873
WAIT #0: nam='rdbms ipc message' ela= 17 timeout=177 p2=0 p3=0 obj#=-1 tim=235094579987
 
dbwr 트레이스
*** 2024-04-06T15:34:44.440230+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1106510 timeout=300 p2=0 p3=0 obj#=-1 tim=235094578379

결과 : 체크포인트 발생함

 

 

2_12. alter tablespace end backup 명령 실행 시
테이블스페이스 end backup 명령 실행

1
2
3
SQL> alter tablespace users end backup;
 
Tablespace altered.

 

 

트레이스 확인(15:35:43에 마지막 증분 체크포인트 실행됨)

1
2
3
4
5
6
7
ckpt 트레이스
*** 2024-04-06T15:35:44.624621+09:00 <<< 증분 체크포인트가 아닌 이벤트 발생
WAIT #0: nam='rdbms ipc message' ela= 1257422 timeout=300 p2=0 p3=0 obj#=-1 tim=235154762771
WAIT #0: nam='rdbms ipc message' ela= 182 timeout=174 p2=0 p3=0 obj#=-1 tim=235154763054
 
dbwr 트레이스
추가 이벤트 미발생

결과 : 체크포인트 발생함

 

 

결론 :
2. 테이블스페이스 및 데이터 파일 체크포인트 확인
2_1. 테이블스페이스를 읽기 전용으로 변경 시 : 체크포인트 발생함
2_2. 테이블스페이스를 읽기 쓰기로 변경 시 : 체크포인트 발생함
2_3. 테이블스페이스를 오프라인으로 변경 시 : 체크포인트 발생함
2_4. 테이블스페이스를 온라인으로 변경 시 : 체크포인트 발생함
2_5. 테이블스페이스 생성 시 : 체크포인트 발생함
2_6. 테이블스페이스 삭제 시 : 체크포인트 발생함
2_7. 데이터 파일 축소 시 : 체크포인트 발생함
2_8. 데이터 파일 증가 시 : 체크포인트 발생함
2_9. 데이터 파일 추가 시 : 체크포인트 발생함
2_10. 데이터 파일 삭제 시 : 체크포인트 발생함
2_11. alter tablespace begin backup 명령 실행 시 : 체크포인트 발생함
2_12. alter tablespace end backup 명령 실행 시 : 체크포인트 발생함

 

 

참고용 스크립트
트레이스를 매번 손으로 입력해서 걸기 귀찮아서 아래 스크립트를 이용함

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ cat bgp_trc.sql
set lines 200 pages 1000
col spid for a10
col tracefile for a100
select p.pname, p.spid, s.sid, s.serial#, s.sql_trace, 'tail -300f '||p.tracefile, 'exec dbms_monitor.session_trace_enable('||s.sid||','||s.serial#||', true, true);'
from v$session s, v$process p
where s.paddr=p.addr
and (p.pname like 'DBW%' or p.pname = 'CKPT');
 
PNAME SPID              SID    SERIAL# SQL_TRAC
----- ---------- ---------- ---------- --------
'TAIL-300F'||P.TRACEFILE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'EXECDBMS_MONITOR.SESSION_TRACE_ENABLE('||S.SID||','||S.SERIAL#||',TRUE,TRUE);'
--------------------------------------------------------------------------------------------------------------------------------------
DBW0  37236            1149      29246 DISABLED
tail -300f /ORA19/app/oracle/diag/rdbms/oracle19/oracle19/trace/oracle19_dbw0_37236.trc
exec dbms_monitor.session_trace_enable(1149,29246, true, true);
 
CKPT  37240             386      52080 DISABLED
tail -300f /ORA19/app/oracle/diag/rdbms/oracle19/oracle19/trace/oracle19_ckpt_37240.trc
exec dbms_monitor.session_trace_enable(386,52080, true, true);

 

 

참조 : 

1490838.1, 1431133.1, 1526181.1, 270571.1, 568049.1
https://hemantoracledba.blogspot.com/2008/11/tracing-process-tracing-dbwr.html
https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/background-processes.html
https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_MONITOR.html#GUID-C9054D20-3A70-484F-B11B-CC591A10D609
https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/process-architecture.html#GUID-D3174B3E-BCCA-473F-961E-84A36FD5C372
https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/oracle-database-instance.html#GUID-4EC2658A-9519-4188-90C6-AA79F14D
https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/oracle-database-instance.html#GUID-A3FAC5B6-928C-474C-9D4C-E5C5B27544E985D2
https://docs.oracle.com/en//database/oracle/oracle-database/23/dbiad/db_CKPT.html
https://avdeo.com/2015/09/07/how-many-checkpoints-in-oracle-database/
https://docs.oracle.com/en/database/oracle/oracle-database/19/rcmrf/SHUTDOWN.html
http://www.gurubee.net/wiki/pages/26742841
https://positivemh.tistory.com/284

https://positivemh.tistory.com/1073

https://positivemh.tistory.com/1074

https://positivemh.tistory.com/1075