체크포인트 테이블 추가 세부정보
데이터베이스 체크포인트를 사용 중인 경우 Oracle GoldenGate는 ADD CHECKPOINTTABLE 명령 실행 시 데이터베이스에 사용자 정의 이름으로 체크포인트 테이블을 생성하거나, 사용자가 chkpt_db_create.sql script(여기서 db는 스크립트가 지원하는 데이터베이스 유형의 약어)를 사용하여 테이블을 생성할 수 있습니다.
기본 체크포인트 테이블과 자동으로 생성되는 보조 체크포인트 테이블의 두 테이블이 있습니다. 트랜잭션 테이블이라고 하는 보조 테이블은 _lox가 추가된 기본 체크포인트 테이블의 이름을 포함합니다. 각 Replicat 또는 조정된 Replicat의 각 스레드는 체크포인트 테이블의 한 행을 사용하여 진행 정보를 저장합니다.
체크포인트 시에는 일반적으로 총 n개 트랜잭션 중 일부 트랜잭션이 적용되었으며 나머지는 아직 처리 중입니다. 예를 들어, Replicat가 CSN1에서 CSN3까지의 n개 트랜잭션 그룹을 처리하는 경우입니다. CSN1는 하이 워터마크이고 CSN3는 로우 워터마크입니다. CSN이 상위 워터마크보다 높은 거래는 처리되지 않았으며 하위 워터마크보다 낮은 CSN 거래는 이미 처리되었습니다. 완료된 트랜잭션은 체크포인트 테이블의 LOG_CMPLT_XID 열에 저장됩니다. 이러한 트랜잭션의 오버플로우는 해당 테이블의 LOG_CMPLT_XID 열에 있는 트랜잭션 테이블(보조 체크포인트 테이블)에 저장됩니다.
현재 Replicat(또는 조정된 Replicat의 각 Replicat 스레드)는 병렬이 아닌 순차적으로 트랜잭션을 적용합니다. 따라서 상위 워터마크(테이블의 LOG_CSN 값)는 항상 하위 워터마크(테이블의 LOG_CMPLT_CSN 값)와 동일하며 일반적으로 LOG_CMPLT_XID 열에 트랜잭션 ID가 하나만 있습니다. 단, 동일한 CSN을 공유하는 여러 트랜잭션이 있는 경우는 예외입니다.
이러한 테이블에서 열의 이름 또는 속성을 변경하지 마십시오. 필요에 따라 테이블 저장 영역 속성을 변경할 수 있습니다.
| 열 | 설명 |
|---|---|
|
LOG_BSN는 트랜잭션을 재처리하기 위해 시간에 다시 추출을 설정하는 데 필요한 정보를 제공합니다. Extract는 이미 Replicat에서 적용한 소량의 데이터를 재생성할 수 있으므로 Replicat에 의한 일부 필터링이 필요합니다. |
|
체크포인트 테이블 형식의 버전입니다. 향후 향상된 기능을 테이블의 버전 번호로 식별할 수 있습니다. |
|
소스 트랜잭션의 커밋 시간 기록입니다. |
|
체크포인트 시 Replicat가 읽은 입력 추적의 시퀀스 번호입니다. |
|
Replicat가 SEQNO로 식별된 추적에서 도달한 상대 바이트 주소입니다. RBA + SEQNO는 체크포인트 시 Replicat의 진행률을 식별하는 추적의 절대 위치를 제공합니다. |
|
체크포인트에 이 테이블을 사용하는 Replicat 그룹의 이름입니다. 동일한 테이블을 사용하는 여러 Replicat 그룹이 있을 수 있습니다. 이 열은 기본 키의 일부입니다. |
|
체크포인트 테이블이 마지막으로 업데이트된 날짜 및 시간입니다. |
|
체크포인트 테이블이 생성된 일자 및 시간입니다. |
|
현재 Oracle GoldenGate 홈 디렉토리 또는 폴더입니다. |
|
이미 적용된 상한 및 하한 워터마크 간 트랜잭션을 저장합니다. |
|
CSN의 하한 워터마크 또는 하한 경계를 저장합니다. 이 값보다 낮은 CSN의 거래가 이미 처리되었습니다. |
|
CSN의 상위 워터마크 또는 상위 경계를 저장합니다. CSN이 이 값보다 높은 트랜잭션은 처리되지 않았습니다. |
|
사용되지 않습니다. 역호환성을 위해 보유됩니다. |
|
다음과 함께 제공되는 고유 식별자 , 동일한 테이블에 쓰는 Replicat 그룹 수에 관계없이 체크포인트를 고유하게 식별합니다. 이 열은 기본 키의 일부입니다. |
| 열 | 설명 |
|---|---|
|
GROUPNAME와 함께 동일한 테이블에 쓰는 Replicat 그룹 수에 관계없이 체크포인트를 고유하게 식별하는 고유 식별자입니다. 이 열은 트랜잭션 테이블의 기본 키에 속합니다. |
|
여러 행을 모두 저장하는 데 필요한 오버플로우 트랜잭션이 너무 많을 경우 고유한 행을 생성합니다. 이 열은 트랜잭션 테이블의 기본 키에 속합니다. |
|
이미 적용된 상한 및 하한 워터마크 간 트랜잭션 오버플로우를 저장합니다. |
|
체크포인트 테이블을 참조하는 외래 키. 이 열은 트랜잭션 테이블의 기본 키에 속합니다. |
|
체크포인트에 이 테이블을 사용하는 Replicat 그룹의 이름입니다. 동일한 테이블을 사용하는 여러 Replicat 그룹이 있을 수 있습니다. 이 열은 트랜잭션 테이블의 기본 키에 속합니다. |
내부 체크포인트 정보
INFO 명령과 SHOWCH 옵션은 현재 체크포인트 항목을 표시할 뿐만 아니라 레코드 자체에 대한 메타데이터 정보도 표시합니다. 이 정보는 문서화되어 있지 않으며 Oracle GoldenGate 프로세스 및 지원 담당자가 지원 케이스를 해결할 때 사용합니다.
메타데이터는 SHOWCH 출력의 다음 항목에 포함됩니다.
Header:
Version = 2
Record Source = A
Type = 1
# Input Checkpoints = 1
# Output Checkpoints = 0
File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 2048
Current Offset = 0
Configuration:
Data Source = 0
Transaction Integrity = -1
Task Type = 0
Status:
Start Time = 2011-01-12 13:10:13
Last Update Time = 2011-01-12 21:23:31
Stop Status = A
Last Result = 400
INFO EXTRACT SHOWCH 명령: 체크포인트 정보
다음 샘플은 INFO EXTRACT 명령으로 반환된 체크포인트 정보를 SHOWCH 옵션과 함께 제공합니다. 이 경우 데이터 소스는 Oracle RAC 데이터베이스 클러스터이므로 출력에 스레드 정보가 포함됩니다. SHOWCH 인수 뒤에 표시할 체크포인트 수를 지정하여 과거 체크포인트를 볼 수 있습니다.
EXTRACT JC108XT Last Started 2011-01-01 14:15 Status ABENDED
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /orarac/oradata/racq/redo01.log
2011-01-01 14:16:45 Thread 1, Seqno 47, RBA 68748800
Log Read Checkpoint File /orarac/oradata/racq/redo04.log
2011-01-01 14:16:19 Thread 2, Seqno 24, RBA 65657408
Current Checkpoint Detail:
Read Checkpoint #1
Oracle RAC Redo Log
Startup Checkpoint (starting position in data source):
Thread #: 1
Sequence #: 47
RBA: 68548112
Timestamp: 2011-01-01 13:37:51.000000
SCN: 0.8439720
Redo File: /orarac/oradata/racq/redo01.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
Thread #: 1
Sequence #: 47
RBA: 68748304
Timestamp: 2011-01-01 14:16:45.000000
SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
Current Checkpoint (position of last record read in the data source):
Thread #: 1
Sequence #: 47
RBA: 68748800
Timestamp: 2011-01-01 14:16:45.000000
SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
Read Checkpoint #2
Oracle RAC Redo Log
Startup Checkpoint(starting position in data source):
Sequence #: 24
RBA: 60607504
Timestamp: 2011-01-01 13:37:50.000000
SCN: 0.8439719
Redo File: /orarac/oradata/racq/redo04.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
Thread #: 2
Sequence #: 24
RBA: 65657408
Timestamp: 2011-01-01 14:16:19.000000
SCN: 0.8440613
Redo File: /orarac/oradata/racq/redo04.log
Current Checkpoint (position of last record read in the data source):
Thread #: 2
Sequence #: 24
RBA: 65657408
Timestamp: 2011-01-01 14:16:19.000000
SCN: 0.8440613
Redo File: /orarac/oradata/racq/redo04.log
Write Checkpoint #1
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 2
RBA: 2142224
Timestamp: 2011-01-01 14:16:50.567638
Extract Trail: ./dirdat/eh
Header:
Version = 2
Record Source = A
Type = 6
# Input Checkpoints = 2
# Output Checkpoints = 1
File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 2048
Current Offset = 0
Configuration:
Data Source = 3
Transaction Integrity = 1
Task Type = 0
Status:
Start Time = 2011-01-01 14:15:14
Last Update Time = 2011-01-01 14:16:50
Stop Status = A
Last Result = 400
INFO REPLICAT, SHOWCH: 체크포인트 정보
기본 명령은 현재 체크포인트를 표시합니다. 이전 체크포인트의 특정 개수를 보려면 SHOWCH 인수 뒤에 값을 입력합니다.
REPLICAT JC108RP Last Started 2011-01-12 13:10 Status RUNNING
Checkpoint Lag 00:00:00 (updated 111:46:54 ago)
Log Read Checkpoint File ./dirdat/eh000000000
First Record RBA 3702915
Current Checkpoint Detail:
Read Checkpoint #1
GGS Log Trail
Startup Checkpoint(starting position in data source):
Sequence #: 0
RBA: 3702915
Timestamp: Not Available
Extract Trail: ./dirdat/eh
Current Checkpoint (position of last record read in the data source):
Sequence #: 0
RBA: 3702915
Timestamp: Not Available
Extract Trail: ./dirdat/eh
Header:
Version = 2
Record Source = A
Type = 1
# Input Checkpoints = 1
# Output Checkpoints =
File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 2048
Current Offset = 0
Configuration:
Data Source = 0
Transaction Integrity = -1
Task Type = 0
Status:
Start Time = 2011-01-12 13:10:13
Last Update Time = 2011-01-12 21:23:31
Stop Status = A
Last Result = 400