이 페이지에는 Datastream 사용에 대한 권장사항을 제시합니다. 여기에는 Datastream을 사용할 때의 일반적인 권장사항이 포함됩니다.
스트림의 소스 데이터베이스 변경
경우에 따라 스트림의 소스 데이터베이스를 변경해야 할 수 있습니다. 예를 들어 기본 데이터베이스 인스턴스가 아닌 복제본에서 복제하도록 스트림을 수정해야 할 수 있습니다.
- 복제본 인스턴스의 연결 프로필을 만듭니다.
- 생성한 복제본의 연결 프로필과 대상의 기존 연결 프로필을 사용하여 스트림을 만듭니다.
- 이전 백필이 사용 중지된 상태로 스트림을 시작합니다. 스트림이 시작되면 바이너리 로그의 데이터만 가져옵니다.
- 선택사항입니다. 스트림을 실행한 후 수정하여 자동 백필을 사용 설정합니다.
- 기본 인스턴스에서 읽는 스트림을 일시중지합니다.
- 선택사항입니다. 기본 인스턴스에서 데이터를 스트리밍한 스트림을 삭제합니다.
- 선택사항입니다. 기본 인스턴스의 연결 프로필을 삭제합니다.
Datastream의 알림 및 모니터링
Datastream 대시보드에는 많은 정보가 포함되어 있습니다. 이 정보는 디버깅 목적으로 유용할 수 있습니다. 로그에서 추가 정보를 확인할 수 있으며 이는 Cloud Logging에서 제공됩니다.
Datastream 알림
Datastream에 설정된 기본 알림이 없습니다. 예를 들어 개요 탭에서 알림 정책 만들기 링크를 클릭하여 데이터 업데이트 빈도 측정항목에 대한 알림 정책을 만들 수 있습니다. 나머지 측정항목의 경우 다음 단계를 따르세요.
Google Cloud 콘솔에서 notifications 알림 페이지로 이동합니다.
정책 만들기를 클릭합니다.
측정항목 선택 드롭다운을 클릭합니다.
필터 필드에
Datastream를 입력합니다.선택사항: 사용 가능한 모든 측정항목을 보려면 활성 필터를 사용 중지해야 할 수 있습니다.
데이터 스트림에서 모니터링할 측정항목을 검색합니다.
적용을 클릭합니다.
선택사항: 필터 추가 및 데이터 변환 섹션에 필요한 세부정보를 입력합니다. 다음을 클릭합니다.
알림 트리거 구성 섹션에 필수 정보를 입력합니다. 다음을 클릭합니다.
알림 구성 및 완료 섹션에서 알림을 구성합니다.
알림을 검토하고 준비가 되면 정책 만들기를 클릭합니다.
각 단계를 완료하는 방법에 대한 자세한 내용은 알림 정책 만들기를 참고하세요.
다음 Datastream 측정항목에 대한 알림을 만드는 것이 좋습니다.
- 데이터 최신 상태
- 지원되지 않는 스트림 이벤트 수
- 스트림 총 지연 시간
이러한 측정항목에 대한 알림은 스트림 또는 소스 데이터베이스에 문제가 있음을 나타낼 수 있습니다.
지연 시간 이해
Datastream은 복제 지연 시간을 이해하는 데 도움이 되는 다음과 같은 측정항목을 제공합니다.
- 데이터 최신 상태: 데이터가 소스에 커밋된 시간과 Datastream에서 데이터를 읽은 시간 간의 차이입니다. 이 측정항목이 높으면 Datastream이 소스에서 생성되는 속도보다 느리게 데이터를 읽고 있음을 나타냅니다. 이는 소스에 문제가 있거나 소스와의 네트워크 연결에 문제가 있음을 나타냅니다.
- 시스템 지연 시간: Datastream이 소스에서 이벤트를 읽은 시점부터 대상에 작성될 때까지 이벤트를 처리하는 데 걸리는 시간입니다.
- 총 지연 시간: 엔드 투 엔드 복제 지연 시간으로, 데이터가 소스에 커밋된 시점부터 대상에 기록될 때까지의 총 시간을 나타냅니다.
데이터 최신 상태가 높은 경우 일반적인 원인은 다음과 같습니다.
- 소스 오버로드: 소스 데이터베이스가 Datastream이 읽을 수 있는 속도보다 빠르게 로그 (binlog 파일, 재실행 로그 파일, WAL 파일)를 생성합니다.
- MySQL/Oracle 조치:
maxConcurrentCdcTasks매개변수를 늘려 더 많은 로그를 병렬로 읽습니다. - PostgreSQL 작업: 높은 이탈률을 보이는 테이블을 전용 스트림으로 격리합니다.
- SQL Server 작업:
maxConcurrentCdcTasks매개변수를 늘려 변경 테이블을 더 많이 병렬로 읽습니다.
- MySQL/Oracle 조치:
- 소스 리소스 부족: 소스 데이터베이스 서버 자체에 CPU 사용량 증가, 메모리 부족 또는 디스크 I/O 병목 현상과 같은 문제가 발생합니다.
- 조치: 소스 인스턴스가 정상인지 확인합니다. CPU/RAM 사용량을 확인합니다. PostgreSQL의 경우
logical_decoding_work_mem매개변수의 값을 늘리고 Oracle의 경우 충분한 시스템 전역 영역 (SGA)이 할당되었는지 확인합니다.
- 조치: 소스 인스턴스가 정상인지 확인합니다. CPU/RAM 사용량을 확인합니다. PostgreSQL의 경우
- 네트워크 용량 문제: 소스와 Google Cloud간의 높은 핑 시간 또는 포화된 대역폭
- 작업: VPN 또는 Cloud Interconnect 대역폭 및 지연 시간을 모니터링합니다.
- 단일 대규모 트랜잭션: 수백만 개의 행에 대한
UPDATE와 같은 대규모 일괄 작업은 일시적인 지연 시간 급증을 일으킬 수 있습니다.- 조치: 정상적인 동작입니다. Datastream이 대규모 이벤트를 처리할 때까지 기다립니다. 향후 대규모 배치 작업을 작은 단위로 나누는 것이 좋습니다.
시스템 지연 시간이 높으면 Datastream 또는 대상에 문제가 있음을 나타낼 수 있습니다.
- 작업: Cloud Logging에서 지속적인 행 수준 오류를 확인합니다 (예:
invalid input for type json). 데이터 유형 또는 제약 조건 오류로 인해 스트림이 재시도 루프에 있는 경우 소스에서 데이터를 수동으로 수정해야 할 수 있습니다. 명백한 오류가 없으면 Google 지원팀에 문의하여 도움을 받으세요.
단일 스트림에서 처리할 수 있는 테이블 수는 몇 개인가요?
단일 스트림에는 최대 10,000개의 테이블을 포함하는 것이 좋습니다. 테이블 크기에는 제한이 없습니다. 테이블이 더 많은 스트림을 만들어야 하는 경우 스트림이 오류 상태가 될 수 있습니다. 이를 방지하려면 소스를 여러 스트림으로 분할하는 것이 좋습니다.