DBAtlas · 데이터베이스 운영 아틀라스

Oracle GoldenGate Microservices: Oracle → Oracle 단방향 복제

Oracle난이도: 고급소요 시간: 3–5시간

GoldenGate 21c 또는 23ai/26ai Microservices로 PDB 스키마 하나를 다른 데이터베이스로 지속적으로(수 초 지연으로) 복제합니다. 완료 후 소스에서는 Integrated Extract와 Distribution Path가, 타깃에서는 Parallel Replicat이 실행됩니다. 타깃 스키마는 일관된 SCN 기준의 초기 로드로 채워지고, heartbeat로 종단 간 지연을 측정합니다. Data Guard와의 차이: 물리적 복사본이 아니라 행 단위(논리적) 복제이며, 타깃은 열려 있고 쓰기가 가능하고 버전/플랫폼이 달라도 됩니다. 소스와 타깃은 단일 인스턴스 또는 RAC일 수 있습니다. 일상 운영과 장애 대응은 GoldenGate 운영 가이드를 사용합니다.

구성: 소스 DB 서버(OGG 소스 deployment) + 타깃 DB 서버(OGG 타깃 deployment). RAC에서는 GoldenGate를 1번 노드에 설치(또는 XAG로 클러스터 리소스로 등록)

시작하기 전에

  • GoldenGate 라이선스와 My Oracle Support/eDelivery 접근 권한이 있습니다. 두 서버 모두에 …/…(Oracle Database용 Microservices 소프트웨어)가 준비되어 있고, 버전 인증(OGG 버전 ↔ DB 버전 ↔ 운영체제)은 MOS 인증 매트릭스에서 확인했습니다.
  • 서버는 …Oracle Linux / RHEL 7.9…Oracle Linux / RHEL ……이고, oracle 사용자와 oinstall 그룹이 있으며(데이터베이스 서버), unzip이 설치되어 있습니다(없으면 root로 … -y install unzip). GoldenGate용 여유 RAM 4 GB 이상, 소프트웨어용 약 2 GB, trail 파일용으로 redo 생성량에 맞는 디스크 공간(일일 redo 생성량 × 보존 일수)이 있습니다.
  • 소스 데이터베이스는 CDB이고 ARCHIVELOG 모드입니다(아니면 이 가이드에서 켭니다). 아카이브 로그는 Extract가 처리할 때까지 삭제되면 안 됩니다(RMAN 삭제 정책). 소스와 타깃 PDB가 열려 있고 서비스가 리스너에 등록되어 있습니다.
  • 복제할 … 스키마의 테이블에 primary key(또는 NOT NULL인 unique key)가 있습니다. 키가 없는 테이블은 모든 컬럼이 키로 간주되어 업데이트가 느려지고 잘못된 행이 매칭될 위험이 생깁니다.
  • 스키마에서 GoldenGate가 지원하지 않거나 별도 처리가 필요한 데이터 타입/객체를 검토했습니다(DBA_GOLDENGATE_SUPPORT_MODE).
  • 소스에서 타깃으로 …/tcp(Receiver Server)가 열려 있고, 관리용으로 두 서버 모두 …–…/tcp가 관리자 네트워크에 열려 있습니다. 서버끼리 이름으로 서로를 확인할 수 있고…, SCAN 이름(…………, …………)이 DNS에서 해석되며…, 시각은 NTP로 맞춰져 있습니다.
  • 소스에서 Integrated Extract의 최초 등록과 초기 로드 중에 오래 열려 있는 transaction이 없어야 합니다. 초기 로드를 위한 한가한 시간대를 계획했습니다.
  • RAC 쪽 Clusterware가 정상이고 srvctl이 oracle 사용자로 실행됩니다. GoldenGate 소프트웨어와 deployment는 노드 하나(…………, …………)에 설치합니다. 노드 장애 시 자동 인계가 필요하면 XAG + 공유(ACFS) 디렉터리를 계획했습니다(참고 사항 참조).

가이드 단계

  • 소스 데이터베이스 준비 — 소스 데이터베이스 상태 확인 · ARCHIVELOG 모드 활성화(필요 시) · GoldenGate용 데이터베이스 설정(소스) · GoldenGate capture 사용자 생성(소스) · GoldenGate 서비스 생성(소스 RAC) · Data Pump 디렉터리 정의(소스 PDB)
  • 타깃 데이터베이스 준비 — GoldenGate용 데이터베이스 설정(타깃) · ggadmin 사용자 생성(타깃 PDB) · GoldenGate 서비스 생성(타깃 RAC) · Data Pump 디렉터리 정의(타깃 PDB)
  • GoldenGate 소프트웨어 설치(두 서버) — 디렉터리 생성 · 설치 파일 압축 해제 · 템플릿에서 oggcore.rsp 준비 · GoldenGate 소프트웨어 설치(silent) · OGG_HOME 환경 변수 정의
  • Service Manager와 deployment(oggca) — oggca response file 작성(소스) · Deployment 생성(oggca, 소스) · Service Manager를 systemd 서비스로 등록(소스) · oggca response file 작성(타깃) · Deployment 생성(oggca, 타깃) · Service Manager를 systemd 서비스로 등록(타깃) …
  • 소스: credential, trandata, heartbeat, Extract, Distribution Path — credential store와 데이터베이스 연결 준비(소스) · 스키마 수준 supplemental logging 활성화 · heartbeat 테이블 생성(소스) · Integrated Extract 등록 및 추가 · Extract 파라미터 파일 작성 · Extract 시작 …
  • 타깃: credential, checkpoint, Parallel Replicat — credential store와 데이터베이스 연결 준비(타깃) · heartbeat와 checkpoint 테이블 생성(타깃) · Parallel Replicat 추가 · Replicat 파라미터 파일 작성
  • 초기 로드와 Replicat 시작 — 열린 transaction 확인(소스) · 초기 로드 SCN 확보 및 export(expdp) · 덤프 파일을 타깃으로 복사 · 타깃으로 import(impdp) · SCN 이후부터 Replicat 시작 · Replicat 시작
  • 검증 및 모니터링 — 모든 프로세스 상태 확인(소스) · 모든 프로세스 상태 확인(타깃) · 종단 간 테스트: 행 삽입(소스) · 종단 간 테스트: 행과 지연 확인(타깃) · 모니터링과 유지 관리
내 환경에 맞춘 단계별 계획 열기 →