모니터 지연
지연 통계는 Oracle GoldenGate 프로세스가 비즈니스 애플리케이션에서 생성되는 데이터의 양에 얼마나 잘 부합하는지 보여줍니다. 이 정보를 통해 의심되는 문제를 진단하고 Oracle GoldenGate 프로세스의 성능을 튜닝하여 소스 데이터베이스와 대상 데이터베이스 간의 대기 시간을 최소화할 수 있습니다.
지연 정보
Extract의 경우 Extract가 시스템 시계를 기반으로 레코드를 처리한 시간과 데이터 소스의 해당 레코드에 대한 시간기록 간에 차이(초)가 있습니다.
Replicat의 경우 Replicat가 시스템 시계를 기반으로 마지막 레코드를 처리한 시간과 추적의 해당 레코드에 대한 시간기록 간에 차이(초)가 있습니다.
지연 통계를 보려면 [LAG](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-52D1B2C3-6ACF-4461-9ED2-FD3AE9121022) 또는 [SEND ER](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-DD62102E-A84D-4866-9A3A-9C2281CFEED7), [SEND EXTRACT](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-2A83CA04-DAB8-494B-BF36-F8D15E645749), [SEND REPLICAT](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-DBA8F45C-6016-4AB4-BF9A-00C117029E7F) 명령을 사용합니다.
주: INFO 명령은 또한 지연 통계를 반환하지만, 이 통계는 처리 중인 현재 레코드가 아니라 체크포인트된 마지막 레코드에서 가져옵니다. LAG 또는 INFO보다 덜 정확합니다.
자동 Heartbeat 테이블을 사용하여 지연 모니터
기본 자동 하트비트 테이블 기능을 사용하여 종단간 복제 지연을 모니터할 수 있습니다. 자동 하트비트는 하트비트 시드 테이블 및 하트비트 테이블에서 레코드를 업데이트하고 heartbeat history table를 생성하여 각 소스 데이터베이스에서 복제 스트림으로 전송됩니다. 복제 경로의 각 복제 프로세스는 이러한 하트비트 레코드를 처리하고 해당 레코드의 정보를 업데이트합니다. 이러한 하트비트 레코드는 대상 데이터베이스의 하트비트 테이블에 삽입되거나 갱신됩니다.
하트비트 테이블에는 다음 정보가 포함됩니다.
-
소스 데이터베이스
-
대상 데이터베이스
-
송신 복제 스트림에 대한 정보:
-
경로의 Extract, Distribution Service 및/또는 Replicat 프로세스 이름
-
복제 프로세스에서 하트비트 레코드를 처리한 시간 기록입니다.
-
-
수신 복제 스트림에 대한 정보:
-
경로의 Extract, Distribution Service 및/또는 Replicat 프로세스 이름
-
복제 프로세스에서 하트비트 레코드를 처리한 시간 기록입니다.
-
하트비트 테이블 및 하트비트 내역 테이블의 정보를 사용하여 각 복제의 현재 및 과거 지연을 계산할 수 있습니다.
Replicat는 자동 하트비트 테이블(LOGBSN)을 사용하여 Extract의 현재 재시작 위치를 추적할 수 있습니다. 이렇게 하면 필요한 경우 원본 데이터베이스에서 트레일 파일을 재생성할 수 있으며 원본 데이터베이스의 리두 로그 보존 기간을 최소화할 수 있습니다. 또한 가장 최근의 Extract 재시작 위치를 추적하여 자동 충돌 감지 및 해결(ACDR) 테이블에 대한 묘비 테이블을 더 자주 비울 수 있습니다.
양방향 구성에서 하트비트 테이블은 데이터베이스에 있는 이웃에 대한 복제 경로 수만큼의 항목을 가지며 단방향 설정에서는 소스의 테이블이 비어 있습니다. 송신 열에는 시간 기록과 송신 경로, 로컬 Extract 및 다운스트림 프로세스가 있습니다. 수신 열에는 업스트림 프로세스 및 로컬 Replicat의 시간 기록과 경로가 있습니다.
단방향 구성에서 Target Database는 하트비트 테이블의 수신 열만 채웁니다.
주: MySQL 버전 5.5에서는 자동 하트비트 기능이 지원되지 않습니다.
Heartbeat 테이블 종단 간 복제 플로우
하트비트 테이블에 대한 엔드 투 엔드 복제 프로세스는 Oracle GoldenGate 트레일 형식 사용에 의존합니다. 프로세스는 다음과 같습니다.
ADD HEARTBEATTABLE 명령을 사용하여 각 데이터베이스에 하트비트 테이블을 추가합니다. 모든 소스 및 대상 인스턴스에 하트비트 테이블을 추가한 다음 기존 Oracle GoldenGate 프로세스를 재시작하여 하트비트 기능을 사용으로 설정합니다. 데이터베이스에 따라 하트비트 테이블 데이터를 채우는 작업을 생성하거나 활성화할 필요가 있을 수도 있고 그렇지 않을 수도 있습니다.
다음 샘플을 참조하십시오.
DBLOGIN USERIDALIAS *alias* [DOMAIN domain]|[SYSDBA | SQLID sqlid][SESSIONCHARSET character_set]}
ADD HEARTBEATTABLE
(Optional) For Oracle Databases, you must ensure that the Oracle DBMS_SCHEDULER is operating correctly as the heartbeat update relies on it. 다음을 실행하여 DBMS_SCHEDULER을 질의할 수 있습니다.
SELECT START_DATE, LAST_START_DATE, NEXT_RUN_DATE
FROM DBA_SCHEDULER_JOBS
여기서 job_name ='GG_UPDATE_HEARTBEATS';
그런 다음 NEXT_RUN_DATE에 대해 적합한 항목을 찾습니다. 다음 번에 스케줄러가 실행됩니다. 과거 시간 기록인 경우 작업이 실행되지 않으므로 수정해야 합니다.
스케줄러가 작동하지 않는 일반적인 이유는 job_queue_processes 매개변수가 너무 낮게(일반적으로 0) 설정된 경우입니다. ALTER SYSTEM SET JOB_QUEUE_PROCESSES = ##; 명령을 사용하여 데이터베이스에 구성된 job_queue_processes 수를 늘립니다. 여기서 ##는 작업 대기열 프로세스의 수입니다.
LCR(논리적 변경 레코드)을 수신할 때 OUTGOING_EXTRACT 열의 값을 검사하는 Extract를 실행합니다.
-
추출 이름이 이 값과 일치하는 경우
OUTGOING_EXTRACT_TS열이 업데이트되고 레코드가 추적에 입력됩니다. -
Extract 이름이 일치하지 않으면 LCR이 폐기됩니다.
-
OUTGOING_EXTRACT값이NULL인 경우OUTGOING_EXTRACT_TS와 함께 채워지고 레코드가 추적에 입력됩니다.
레코드 읽기의 배포 서비스에서 OUTGOING_ROUTING_PATH 열의 값을 확인합니다. 이 열에는 배포 경로 목록이 있습니다.
값이 NULL인 경우 열이 현재 그룹 이름(및 분배 서비스인 경우 경로),"*"로 업데이트되고, OUTGOING_ROUTING_TS 열을 업데이트하며, 레코드가 대상 추적 파일에 기록됩니다.
값에 리스트에 "*"가 있는 경우 이 값을 group name[:pathname],"*"'로 바꾸고 OUTGOING_ROUTING_TS 열을 업데이트하며 레코드가 대상 추적 파일에 기록됩니다. 값에 리스트에 별표(*)가 없고 배포 경로 이름이 리스트에 있는 경우 레코드는 리스트의 관련 group name[:pathname],"*"' 쌍에 지정된 경로로 전송됩니다. 배포 경로 이름이 리스트에 없으면 레코드가 폐기됩니다.
레코드를 수신할 때 OUTGOING_REPLICAT 열의 값을 확인하는 Replicat를 실행합니다.
-
Replicat 이름이 값과 일치하면 하트비트 테이블의 행이 업데이트되고 기록 테이블에 레코드가 삽입됩니다.
-
Replicat 이름이 일치하지 않으면 레코드가 폐기됩니다.
-
값이
NULL인 경우 하트비트 및 하트비트 내역 테이블의 행이 Replicat 열 매핑의 암시적 호출로 업데이트됩니다.자동 Replicat 열 매핑:
REMOTE_DATABASE = LOCAL_DATABASE INCOMING_EXTRACT = OUTGOING_EXTRACT INCOMING_ROUTING_PATH = OUTGOING_ROUTING_PATH with "*" removed INCOMING_REPLICAT = @GETENV ("GGENVIRONMENT", "GROUPNAME") INCOMING_HEARTBEAT_TS = HEARTBEAT_TIMESTAMP INCOMING_EXTRACT_TS = OUTGOING_EXTRACT_TS INCOMING_ROUTING_TS = OUTGOING_ROUTING_TS INCOMING_REPLICAT_TS = @DATE ('UYYYY-MM-DD HH:MI:SS.FFFFFF','JTSLCT',@GETENV ('JULIANTIMESTAMP')) LOCAL_DATABASE = REMOTE_DATABASE OUTGOING_EXTRACT = INCOMING_EXTRACT OUTGOING_ROUTING_PATH = INCOMING_ROUTING_PATH OUTGOING_HEARTBEAT_TS = INCOMING_HEARTBEAT_TS OUTGOING_REPLICAT = INCOMING_REPLICAT OUTGOING_HEARTBEAT_TS = INCOMING_HEARTBEAT_TS
추가 고려 사항:
하트비트가 시스템을 통해 흐를 때 컴퓨팅 지연은 올바르게 설정할 소스 및 대상 시스템의 클럭에 의존합니다. 대상 시스템이 소스 시스템보다 앞선 경우 지연이 음수일 수 있습니다. 지연은 음수로 표시되므로 클럭 불일치를 인식하고 이를 해결하기 위한 조치를 취할 수 있습니다.
시스템을 통과하는 시간 기록은 UTC입니다. 시간 기록과 연관된 시간대가 없으므로 하트비트 테이블을 볼 때 다른 구성 요소가 서로 다른 시간대에 있어도 지연을 빠르게 볼 수 있습니다. 기본 테이블 위에 원하는 뷰를 쓸 수 있습니다. UTC가 권장됩니다.
모든 하트비트 항목은 UTF-8의 트레일에 기록됩니다.
송신 경로와 수신 경로는 각각 행을 결정합니다. 즉, 발신 경로가 동일하고 수신 경로가 다른 행이 두 개 있을 경우 두 개의 고유 항목으로 간주됩니다.
하트비트 테이블 세부정보
GG_HEARTBEAT 테이블에는 기본 구성요소와 보조 Extract 및 Replicat 구성요소의 종단간 복제 시간 및 타이밍 정보에 대한 시간 기록 정보가 표시됩니다.
단방향 환경에서는 대상 데이터베이스만 복제 지연에 대한 정보를 포함합니다. 레코드가 원본 데이터베이스에서 생성되어 대상 데이터베이스의 클라이언트가 볼 수 있게 되는 시간입니다. 주: 소스 및 원격 데이터베이스의 이름이 동일한 경우 자동 하트비트 테이블은 OUTGOING_% 열을 데이터로 채우지 않습니다. 데이터베이스 이름을 변경하려면 DBNEWID 유틸리티를 사용합니다. 자세한 내용은 DBNEWID Utility를 참조하십시오.
| 열 | 데이터 유형 | 설명 |
|---|---|---|
LOCAL_DATABASE |
VARCHAR2 |
원격 데이터베이스의 복제 시간을 측정하는 로컬 데이터베이스입니다. |
HEARTBEAT_TIMESTAMP |
TIMESTAMP(6) |
원격 데이터베이스에서 시간 기록이 생성되는 시점입니다. |
REMOTE_DATABASE |
VARCHAR2 |
시간 기록이 생성되는 원격 데이터베이스 |
INCOMING_EXTRACT |
VARCHAR2 |
원격 데이터베이스의 기본 추출(캡처) 이름 |
INCOMING_ROUTING_PATH |
VARCHAR2 |
원격 데이터베이스의 보조 추출(펌프) 이름 |
INCOMING_REPLICAT |
VARCHAR2 |
로컬 데이터베이스의 Replicat 이름입니다. |
INCOMING_HEARTBEAT_TS |
TIMESTAMP(6) |
정보가 로컬 데이터베이스의 GG_HEARTBEAT 테이블에 삽입되는 최종 시간 기록입니다. |
INCOMING_EXTRACT_TS |
TIMESTAMP(6) |
생성된 시간 기록의 시간 기록은 원격 데이터베이스의 기본 Extract에 의해 처리됩니다. |
INCOMING_ROUTING_TS |
TIMESTAMP(6) |
생성된 시간 기록의 시간 기록은 원격 데이터베이스의 보조 Extract에 의해 처리됩니다. |
INCOMING_REPLICAT_TS |
TIMESTAMP(6) |
생성된 시간 기록의 시간 기록은 로컬 데이터베이스에서 Replicat가 처리합니다. |
OUTGOING_EXTRACT |
VARCHAR2 |
양방향/N방향 복제: 로컬 데이터베이스의 기본 Extract 이름입니다. |
OUTGOING_ROUTING_PATH |
VARCHAR2 |
양방향/N방향 복제: 로컬 데이터베이스의 보조 Extract 이름입니다. |
OUTGOING_REPLICAT |
VARCHAR2 |
양방향/N방향 복제: 원격 데이터베이스의 Replicat 이름입니다. |
OUTGOING_HEARTBEAT_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 정보가 원격 데이터베이스의 테이블에 삽입될 때의 최종 시간 기록입니다. |
OUTGOING_EXTRACT_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 생성된 시간 기록의 시간 기록은 로컬 데이터베이스의 기본 Extract에 의해 처리됩니다. |
OUTGOING_ROUTING_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 생성된 시간 기록의 시간 기록은 로컬 데이터베이스의 보조 Extract에 의해 처리됩니다. |
OUTGOING_REPLICAT_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 생성된 시간 기록의 시간 기록은 원격 데이터베이스의 Replicat에서 처리됩니다. |
INCOMING_REPLICAT_LW_CSN |
VARCHAR2 |
- |
INCOMING_EXTRACT_HEARTBEAT_CSN |
VARCHAR2 |
- |
INCOMING_EXTRACT_RESTART_CSN |
VARCHAR2 |
- |
INCOMING_EXTRACT_RESTART_TS |
TIMESTAMP(6) |
- |
GG_HEARTBEAT_HISTORY 테이블에는 기본 구성요소와 보조 Extract 및 Replicat 구성요소의 종단 간 복제 시간 및 타이밍 정보에 대한 내역 시간 기록 정보가 표시됩니다.
단방향 환경에서는 대상 데이터베이스만 복제 지연에 대한 정보를 포함합니다.
시간 기록은 UTC 시간대로 관리됩니다. 레코드가 원본 데이터베이스에서 생성되어 대상 데이터베이스의 클라이언트가 볼 수 있게 되는 시간입니다.
| 열 | 데이터 유형 | 설명 |
|---|---|---|
LOCAL_DATABASE |
VARCHAR2 |
종단간 지연이 측정되는 로컬 데이터베이스입니다. |
HEARTBEAT_RECEIVED_TS |
TIMESTAMP(6) |
원격 데이터베이스의 시간 기록이 로컬 데이터베이스에서 수신되는 시점입니다. |
REMOTE_DATABASE |
VARCHAR2 |
시간 기록이 생성되는 원격 데이터베이스입니다. |
INCOMING_EXTRACT |
VARCHAR2 |
원격 데이터베이스의 기본 Extract 이름입니다. |
INCOMING_ROUTING_PATH |
VARCHAR2 |
원격 데이터베이스의 보조 추출 이름입니다. |
INCOMING_REPLICAT |
VARCHAR2 |
로컬 데이터베이스의 Replicat 이름입니다. |
INCOMING_HEARTBEAT_TS |
TIMESTAMP(6) |
정보가 로컬 데이터베이스의 GG_HEARTBEAT_HISTORY 테이블에 삽입될 때의 최종 시간 기록입니다. |
INCOMING_EXTRACT_TS |
TIMESTAMP(6) |
생성된 시간기록이 원격 데이터베이스의 기본 Extract에 의해 처리되는 시간기록입니다. |
INCOMING_ROUTING_TS |
TIMESTAMP(6) |
생성된 시간기록이 원격 데이터베이스의 보조 Extract에 의해 처리되는 시간기록입니다. |
INCOMING_REPLICAT_TS |
TIMESTAMP(6) |
생성된 시간기록이 로컬 데이터베이스에서 Replicat에 의해 처리되는 시간기록입니다. |
OUTGOING_EXTRACT |
VARCHAR2 |
양방향/N방향 복제: 로컬 데이터베이스에서 가져온 기본 Extract의 이름입니다. |
OUTGOING_ROUTING_PATH |
VARCHAR2 |
양방향/N방향 복제: 로컬 데이터베이스에서 가져온 보조 Extract의 이름입니다. |
OUTGOING_REPLICAT |
VARCHAR2 |
양방향/N방향 복제: 원격 데이터베이스의 Replicat 이름입니다. |
OUTGOING_HEARTBEAT_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 정보가 원격 데이터베이스의 테이블에 영구적으로 삽입될 때의 최종 시간 기록입니다. |
OUTGOING_EXTRACT_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 생성된 시간 기록이 로컬 데이터베이스의 기본 Extract에 의해 처리될 때의 시간 기록입니다. |
OUTGOING_ROUTING_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 로컬 데이터베이스의 보조 Extract에서 생성된 시간기록이 처리되는 시간기록입니다. |
OUTGOING_REPLICAT_TS |
TIMESTAMP(6) |
양방향/N방향 복제: 생성된 시간 기록이 원격 데이터베이스의 Replicat에서 처리될 때의 시간 기록입니다. |
REPLICAT_LOW_WATERMARK_CSN |
String |
이 하트비트 레코드를 처리할 때 Replicat가 이 열을 채웁니다. 이 레코드는 이 레코드를 처리할 때 현재 LWM(낮은 워터마크)으로 이 열을 채웁니다. 이를 통해 Replicat LWM을 기준으로 하트비트 레코드에서 LOGBSN을 선택할 수 있습니다. |
SOURCE_EXTRACT_HEARTBEAT_CSN |
String |
이 열은 Extract에 의해 채워지며 소스 데이터베이스의 하트비트 트랜잭션에 대한 소스 커밋 SCN을 포함합니다. 소스 데이터베이스의 하트비트 작업은 커밋 SCN apriori를 알지 못하므로 이 값을 채울 수 없습니다. |
SOURCE_EXTRACT_RESTART_CSN |
String |
이 열은 Extract에 의해 채워지며 Extract가 이 특정 하트비트 레코드를 처리할 때 현재 LOGBSN을 포함합니다. 소스 데이터베이스의 하트비트 작업이 이 값을 채우지 않습니다. |
SOURCE_EXTRACT_RESTART_CSN_TS |
TIMESTAMP |
이 열은 Extract에 의해 채워지며 Extract가 이 특정 하트비트 레코드를 처리할 때 현재 LOGBSN에 해당하는 리두 시간기록(UTC)을 포함합니다. 소스 데이터베이스의 하트비트 작업이 이 값을 채우지 않습니다. |
GG_LAG 뷰에는 로컬 데이터베이스와 원격 데이터베이스 간의 복제 지연에 대한 정보가 표시됩니다.
단방향 환경에서는 대상 데이터베이스만 복제 지연에 대한 정보를 포함합니다. 지연은 초 단위로 측정됩니다.
| 열 | 데이터 유형 | 설명 |
|---|---|---|
LOCAL_DATABASE |
VARCHAR2 |
원격 데이터베이스의 종단 간 복제 지연을 측정하는 로컬 데이터베이스입니다. |
CURRENT_LOCAL_TS |
TIMESTAMP(6) |
로컬 데이터베이스의 현재 시간 기록입니다. |
REMOTE_DATABASE |
VARCHAR2 |
시간 기록이 생성되는 원격 데이터베이스입니다. |
INCOMING_HEARTBEAT_AGE |
NUMBER |
원격 데이터베이스에서 수신된 최근 하트비트의 경과 시간입니다. |
INCOMING_PATH |
VARCHAR2 |
Extract 및 Replicat 구성요소가 있는 원격 데이터베이스에서 로컬 데이터베이스로의 복제 경로입니다. |
INCOMING_LAG |
NUMBER |
원격 데이터베이스에서 로컬 데이터베이스로의 복제 지연입니다. 원격 데이터베이스에서 생성된 하트비트에서 로컬 데이터베이스의 테이블에 정보가 영구적으로 삽입된 시간을 뺀 시간입니다. |
OUTGOING_HEARTBEAT_AGE |
NUMBER |
로컬 데이터베이스에서 원격 데이터베이스로의 최근 하트비트의 경과 시간입니다. |
OUTGOING_PATH |
VARCHAR2 |
Extract 및 Replicat 구성요소를 사용하여 로컬 데이터베이스에서 원격 데이터베이스로의 복제 경로 |
OUTGOING_LAG |
NUMBER |
로컬 데이터베이스에서 원격 데이터베이스로 복제 지연입니다. 로컬 데이터베이스에서 생성된 하트비트에서 원격 데이터베이스의 테이블에 정보가 영구적으로 삽입된 시간을 뺀 시간입니다. |
REMOTE_EXTRACT_RESTART_CSN |
String |
출처 추출 재시작 위치입니다. |
REMOTE_DATABASE DB_UNIQUE_NAME |
String |
원격 데이터베이스 고유 이름이 표시됩니다. 고유한 이름이 없으면 DB_NAME 값이 표시됩니다. |
REMOTE_EXTRACT_RESTART_CSN_TIME |
Timestamp |
소스 추출 리두 위치와 연관된 시간기록입니다. |
REMOTE_DB_OLDEST_OPEN_TXN_AGE |
Timestamp |
Extract가 현재 처리 중인 소스 데이터베이스에서 가장 오래된 미결 트랜잭션의 경과 시간입니다. 이 열은 SYSTIMESTAMP - REMOTE_EXTRACT_RESTART_TIME로 계산할 수 있습니다. |
LOCAL_REPLICAT_LWM_CSN |
String |
하트비트를 처리할 때 로컬 Replicat의 낮은 워터마크 CSN입니다. |
GG_LAG_HISTORY 뷰는 로컬 및 원격 데이터베이스 간의 복제 지연 내역에 대한 내역 정보를 표시합니다.
단방향 환경에서는 대상 데이터베이스만 복제 지연에 대한 정보를 포함합니다.
지연 단위의 단위는 초입니다.
| 열 | 데이터 유형 | 설명 |
|---|---|---|
LOCAL_DATABASE |
VARCHAR2 |
원격 데이터베이스의 종단 간 복제 지연을 측정하는 로컬 데이터베이스입니다. |
HEARTBEAT_RECEIVED_TS |
TIMESTAMP(6) |
원격 데이터베이스의 시간 기록이 로컬 데이터베이스에서 수신되는 시점입니다. |
REMOTE_DATABASE |
VARCHAR2 |
시간 기록이 생성되는 원격 데이터베이스입니다. |
DB_NAME |
문자열 | 원격 데이터베이스 이름입니다. |
DB_UNIQUE_NAME |
문자열 | 원격 데이터베이스 고유 이름입니다. 데이터베이스 고유 이름이 존재하지 않을 경우 DB_NAME 및 DB_UNIQUE_NAME가 동일합니다. 대기 시나리오로의 스위치오버에서 db_unique_name는 변경되지만 db_name 및 복제 경로는 동일하게 유지됩니다. |
INCOMING_HEARTBEAT_AGE |
NUMBER |
하트비트 테이블의 경과 시간입니다. |
INCOMING_PATH |
VARCHAR2 |
Extract 및 Replicat 구성요소가 있는 원격 데이터베이스에서 로컬 데이터베이스로의 복제 경로입니다. |
INCOMING_LAG |
NUMBER |
원격 데이터베이스에서 로컬 데이터베이스로의 복제 지연입니다. 원격 데이터베이스에서 Heartbeat가 생성된 시간에서 로컬 데이터베이스의 테이블에 정보가 영구적으로 삽입된 시간을 뺀 시간입니다. |
OUTGOING_HEARTBEAT_AGE |
NUMBER |
|
OUTGOING_PATH |
VARCHAR2 |
Extract 및 Replicat 구성요소가 포함된 로컬 데이터베이스에서 원격 데이터베이스로의 복제 경로입니다. |
OUTGOING_LAG |
NUMBER |
로컬 데이터베이스에서 원격 데이터베이스로의 복제 지연입니다. 로컬 데이터베이스에서 Heartbeat가 생성된 시간에서 원격 데이터베이스의 테이블에 정보가 영구적으로 삽입된 시간을 뺀 값입니다. |
REMOTE_EXTRACT_RESTART_CSN |
String |
출처 추출 재시작 위치입니다. |
REMOTE_EXTRACT_RESTART_CSN_TIME |
TIMESTAMP |
소스 추출 리두 위치와 연관된 시간기록입니다. |
REMOTE_DB_OLDEST_OPEN_TXN_AGE |
TIMESTAMP |
Extract가 현재 처리 중인 소스 데이터베이스에서 가장 오래된 미결 트랜잭션의 경과 시간입니다. 이 열은 SYSTIMESTAMP - REMOTE_EXTRACT_RESTART_TIME로 계산할 수 있습니다. |
LOCAL_REPLICAT_LWM_CSN |
String |
하트비트를 처리할 때 로컬 Replicat의 낮은 워터마크 CSN입니다. |
INCOMING_EXTRACT_LAG |
- | - |
INCOMING_ROUTINE_LAG |
- | - |
INCOMING_REPLICAT_READ_LAG |
- | - |
INCOMING_REPICAT_LAG |
- | - |
OUTGOING_EXTRACT_LAG |
- | - |
OUTGOING_ROUTINE_LAG |
- | - |
OUTGOING_REPLICAT_READ_LAG |
- | - |
OUTGOING_REPLICAT_LAG |
- | - |
Heartbeat 테이블 업데이트
하트비트 시드 테이블의 HEARTBEAT_TIMESTAMP 열은 데이터베이스 작업에 의해 주기적으로 업데이트되어야 합니다. 기본 하트비트 간격은 1분이며 명령줄 또는 관리 서비스 웹 인터페이스를 사용하여 이 간격을 지정하거나 대체할 수 있습니다.
Oracle AI Database의 경우 데이터베이스 작업이 자동으로 생성됩니다.
PostgreSQL의 경우 하트비트 테이블을 업데이트하도록 자동화된 작업을 설정할 수 있습니다. PostgreSQL에 대한 Heartbeat 테이블 업데이트를 위한 자동화 태스크 구성을 참조하십시오.
지원되는 다른 모든 데이터베이스의 경우 데이터베이스별 스케줄러 기능을 사용하여 하트비트 시간 기록을 업데이트하려면 백그라운드 작업을 생성해야 합니다.
하트비트 테이블 업데이트에 대한 자세한 내용은 [ADD HEARTBEATTABLE](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-126E30A2-DC7A-4C93-93EC-0EB8BA7C13CB), [ALTER HEARTBEATTABLE](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-08BC29F9-8A5D-4AD9-B355-528A270EECC8)를 참조하십시오.
PostgreSQL에 대한 하트비트 테이블을 업데이트하도록 자동화 태스크 구성
Oracle GoldenGate for PostgreSQL 웹 인터페이스는 하트비트 테이블을 주기적으로 갱신하기 위한 cron 작업을 생성하는 기능을 제공합니다.
다음은 웹 인터페이스에서 이 작업을 생성하는 단계입니다.
-
왼쪽 탐색 창에서 작업을 확장하고 하트비트 작업 업데이트 옵션을 선택합니다.
\

\
-
하트비트 작업 업데이트 페이지에서 더하기 기호를 누릅니다. Create a New Heartbeat Task 대화 상자가 표시됩니다.\

-
대화상자에서 다음 값을 지정하고 제출을 누릅니다.
-
이름: 작업 이름을 지정합니다.
-
인증서 도메인: 드롭다운 목록에서 도메인 이름을 선택합니다.
-
인증서 별칭: 업데이트 하트비트 태스크를 생성할 PostgreSQL 데이터베이스 인스턴스의 인증서 별칭을 선택합니다.
-
빈도 간격: 업데이트 작업을 실행하기 위한 빈도 간격을 지정합니다. 최소값은 60(기본값)이고 최대값은 7999로 설정할 수 있습니다.
-
하트비트 업데이트 작업을 수정하거나 삭제하려면 다음 단계를 사용합니다. 1. 관리 서비스 인터페이스의 왼쪽 탐색 창에서 작업을 선택합니다.
-
Update Heartbeat Tasks를 누릅니다. 기존 하트비트 업데이트 작업 목록이 표시됩니다.
-
작업 열에서 연필 아이콘을 누릅니다. Edit Update Heartbeat Task 대화 상자가 표시됩니다.
-
인증서 도메인, 별칭 또는 빈도 간격을 변경하거나 수정하고 제출을 누를 수 있습니다. 수정된 하트비트 업데이트 작업이 하트비트 업데이트 작업 페이지에 나열됩니다.
-
태스크를 삭제하려면 태스크에 대한 작업 열에서 삭제 아이콘을 누릅니다. [확인]을 클릭하여 삭제를 확인합니다.
하트비트 기록 테이블 비우기
Heartbeat 내역 테이블은 작업을 사용하여 주기적으로 비워집니다. 기본 간격은 30일이며 관리 클라이언트 또는 관리 서비스 웹 인터페이스와 같은 명령줄 인터페이스를 사용하여 이 간격을 지정하거나 대체할 수 있습니다.
Oracle AI Database의 경우 데이터베이스 작업이 자동으로 생성됩니다.
지원되는 다른 모든 데이터베이스의 경우 데이터베이스별 스케줄러 기능을 사용하여 하트비트 내역 테이블을 비울 백그라운드 작업을 생성해야 합니다.
최적의 방법
Oracle은 다음을 수행할 것을 권장합니다.
-
모든 데이터베이스에서 동일한 하트비트 빈도를 사용하여 쉽게 진단할 수 있습니다.
-
공간이 문제인 경우 보존 기간을 조정하십시오.
-
기본 하트비트 테이블 빈도를 유지합니다. 빈도를 30초에서 60초로 설정하면 대부분의 작업 로드에 대해 최상의 결과를 얻을 수 있습니다.
-
지연 기록 통계를 사용하여 지연 및 기간 정보를 수집합니다.
자동 하트비트 명령 사용
하트비트 테이블 명령을 사용하여 Oracle GoldenGate 자동 하트비트 기능을 제어할 수 있습니다(예:
| 명령 | 설명 |
|---|---|
ADD HEARTBEATTABLE |
LOGBSN 열을 포함하여 자동 하트비트 기능에 필요한 하트비트 테이블을 생성합니다. |
ALTER HEARTBEATTABLE |
기존 Heartbeat 객체를 변경합니다. |
ALTER HEARTBEATTABLE UPGRADE |
하트비트 테이블에 LOGBSN 열을 추가하도록 하트비트 테이블을 변경합니다. 이 속성은 선택사항입니다. |
DELETE HEARTBEATTABLE |
기존 Heartbeat 객체를 삭제합니다. |
DELETE HEARTBEATENTRY |
Heartbeat 테이블에서 항목을 삭제합니다. |
INFO HEARTBEATTABLE |
Heartbeat 테이블 정보를 표시합니다. |
보고 지연
지연 보고서는 관리 서비스에서 액세스할 수 있습니다. 지연 보고서 태스크를 설정하여 특정 재직에 대한 지연 보고서를 자동으로 생성하고 지연 값이 지정된 임계값을 초과할 경우 경고를 발행할 수 있습니다. 지연 보고서를 생성하기 위한 자동화된 작업을 설정하려면 다음을 수행합니다. 1. 관리 서비스 왼쪽 탐색 창에서 태스크를 누르고 지연 보고서를 선택합니다.
-
작업 열에는 지연 보고서 태스크 세부정보를 삭제, 변경, 새로고침 및 보기 위한 모든 옵션이 포함됩니다.
-
필요한 옵션을 선택합니다.
-
작업 변경 옵션을 선택하면 지연 보고서를 편집할 수 있는 옵션이 표시됩니다. 다음과 같은 옵션이 있습니다.
-
Enabled: 지연 보고서 작업을 계속 처리합니다.
-
Check Every(분): 지연 보고서를 확인하기 위한 시간 간격을 설정합니다.
-
보고서: 지정된 임계값이 초과된 경우 자동으로 지연 보고서를 생성합니다. 초과할 경우 상자에서 임계값을 지정할 수 있습니다.
-
초과할 경우: 경고가 시작되기 전의 임계값을 지정합니다. 값은 초, 분 또는 시간일 수 있습니다.
-
경고: 지연 임계값이 지정된 임계값을 초과하는 경우 경고가 생성되도록 허용합니다.
-
초과 시: 경고가 트리거되기 전의 지연 임계값입니다.
-
-
제출을 누릅니다.
Replicat에서 지연 식별
Replicat 프로세스에서 지연을 식별하고 테이블의 열을 수정하려면 다음과 같이 하십시오.
-
Oracle GoldenGate에 링크된 모든 테이블에 대해 소스 데이터베이스에서 작업을 일시 중지합니다.
-
관리 클라이언트를 시작합니다.
-
Replicat 그룹에 대해 다음 명령을 실행합니다.
INFO REPLICAT *group*
-
Checkpoint Lag행에서 Replicat 지연이 있는지 확인합니다. 필요한 경우 지연이 0이 될 때까지INFO REPLICAT를 계속 실행합니다. 이는 추적의 모든 데이터가 처리되었음을 나타냅니다. -
Replicat 그룹을 중지합니다.
STOP REPLICAT *group*
-
Target Database에서 테이블 수정을 수행합니다.
-
Replicat 프로세스를 시작합니다.
START REPLICAT *group*
- Oracle GoldenGate에 연결된 모든 소스 테이블에서 사용자 작업을 재개할 수 있습니다.