SQL Server에 대한 정확한 인스턴스화
Oracle GoldenGate 23.8부터 SQL Server용 초기 로드 Extract를 사용하여 정확한 인스턴스화를 조정할 수 있습니다. 정확한 인스턴스화 방법을 사용하면 원본 데이터베이스에서 대상 데이터베이스로 데이터를 처음 로드할 수 있으며 원본 데이터베이스는 응용 프로그램 갱신을 위해 온라인 상태로 유지됩니다. 이 방법을 사용하면 타겟 데이터베이스에서 중복 데이터를 사용하지 않고 Replicat에서 HANDLECOLLISIONS를 사용할 필요 없이 변경 데이터 캡처 및 전달 프로세스를 정확하게 배치할 수 있습니다.
SQL Server용 Oracle GoldenGate에 대한 정확한 인스턴스화를 위해서는 스냅샷 격리를 허용하도록 소스 SQL Server 데이터베이스를 설정하고 초기 로드 Extract 내에서 INITIALLOADOPTIONS USESNAPSHOT 매개변수를 사용해야 합니다. 이 방법은 지원되는 SQL Server 소스 데이터베이스에서 지원되는 대상 데이터베이스를 인스턴스화하는 데 사용할 수 있습니다.
다음은 소스 인스턴스에서 스키마 덤프를 사용한 후 대상 인스턴스로 로드한 다음 변경 데이터 복제를 위한 Oracle GoldenGate 구성을 사용하는 샘플 정확한 인스턴스화 방법입니다.
-
소스 데이터베이스 테이블로
ADD TRANDATADBLOGIN USERIDALIAS src_aliasADD TRANDATA dbo.* -
TRANDATA가 완료된 후 데이터베이스가 스냅샷 격리에 대해 활성화되었는지 확인하고 활성화되지 않은 경우 수동으로 활성화합니다.
ALTER DATABASE tpcc_source SET ALLOW_SNAPSHOT_ISOLATION ON; -
마이크로서비스 아키텍처의 경우 WebUI에 CDC 데이터 비우기 작업을 추가합니다. 자세한 내용은 CDC 스테이징 데이터 비우기 및 비우기 프로세스를 참조하십시오.
-
INITIALLOADOPTIONS USESNAPSHOT매개변수를 사용하여 초기 로드 추출을 생성합니다.ADD EXTRACT einit, SOURCEISTABLE--Sample Initial Load Extract Parameter File: EXTRACT einit USERIDALIAS tpcc_source2017 INITIALLOADOPTIONS USESNAPSHOT EXTFILE ei, MEGABYTES 500, PURGE TABLE dbo.*; -
초기 로드 추출을 시작합니다.
START EXTRACT einit -
초기 로드 추출이 완료되고 중지되면 보고서 파일을 보고 아래와 유사한 메시지를 찾습니다. 이 메시지는 CDC 추출을 생성할 때 사용됩니다.
VIEW REPORT einitINFO OGG-05381 A consistent point is established in database 'tpcc_source' at LSN 0x00000488:00002a98:0002. OGG-05379 Create or position a Change Data Capture Extract to LSN 0x00000488:00002a98:0002. Example: ADD EXTRACT <extract-name> TRANLOG LSN 0x00000488:00002a98:0002 or ALTER EXTRACT <extract-name> LSN 0x00000488:00002a98:0002 -
이제 스냅샷 격리를 허용하는 소스 데이터베이스 옵션이 단계 2에서 수동으로 사용으로 설정된 경우 OFF로 다시 설정할 수 있습니다.
ALTER DATABASE tpcc_source SET ALLOW_SNAPSHOT_ISOLATION OFF; -
초기 로드 Extract의 보고서 파일에서 LSN 출력을 사용하여 CDC Extract를 생성합니다.
ADD EXTRACT extcdc TRANLOG LSN 0x00000488:00002a98:0002ADD EXTTRAIL ea, EXTRACT extcdc -
초기 로드 Extract에 의해 생성된 추적에서 읽는 초기 로드 Replicat를 생성하고 시작합니다.
ADD REPLICAT rinit, PARALLEL, EXTTRAIL ei, CHECKPOINTTABLE ggadmin.ggcheckSTART rinit--Sample Initial Load Replicat Parameter file REPLICAT rinit USERIDALIAS tgt_alias BATCHSQL SPLIT_TRANS_RECS 100000 MAP dbo.*, TARGET dbo.*; -
초기 로드 Replicat가 처리를 종료하면 CDC Extract에 의해 생성된 추적에서 읽는 CDC Replicat를 생성하고 시작합니다.
ADD REPLICAT repcd, PARALLEL, EXTTRAIL ea, CHECKPOINTTABLE ggadmin.ggcheckSTART EXTRACT extcdcSTART REPLICAT repcd