tencent cloud

피드백

DTS를 사용하여 InnoDB에서 RocksDB로 데이터 마이그레이션

마지막 업데이트 시간:2022-07-04 15:20:25

    TXRocks는 매우 인기 있는 고성능 KV(key-value) 저장소인 RocksDB를 기반으로 Tencent의 TXSQL 팀에서 개발한 트랜잭션 스토리지 엔진입니다.

    InnoDB에서 사용하는 B+Tree 구조와 비교하여 TXRocks에서 채택한 LSM Tree 구조는 훨씬 적은 저장 공간을 사용합니다. InnoDB의 B+Tree 분할은 종종 half-full 페이지, 유휴 페이지 및 공간 낭비를 초래합니다. 따라서 InnoDB는 유효 페이지 활용도가 낮습니다. TXRocks SST 파일의 크기는 일반적으로 수십 또는 수백 MB 이상의 값으로 설정됩니다. 따라서 TXRocks는 4K 정렬로 인한 낭비가 훨씬 적습니다. SST 파일은 Block으로 나누어져 있지만 해당 Block을 정렬할 필요는 없습니다. 또한 TXRocks SST 파일은 접두사 압축을 사용하므로 동일한 접두사가 있는 데이터 레코드에 대해 하나의 레코드만 생성됩니다. 다른 레벨의 SST 파일은 다른 압축 알고리즘을 채택하여 저장 공간 오버헤드를 더욱 줄일 수 있습니다. 일반적으로 저장 공간 사용량을 50%까지 줄일 수 있습니다.

    InnoDB 데이터를 DTS를 통해 RocksDB에 동기화하여 쓰기 성능을 개선하고 저장 공간을 절약할 수 있습니다.

    설명:

    DTS(Data Transmission Service)는 데이터 마이그레이션, 동기화 및 구독과 같은 기능을 통합하여 업무 중단 없이 데이터베이스를 마이그레이션하고 실시간 동기화 채널을 통해 원격 재해 복구를 위한 고가용성 데이터베이스 아키텍처를 구축할 수 있도록 지원하는 데이터 전송 서비스입니다. 데이터 구독 기능을 사용하면 TencentDB 인스턴스에서 점진적으로 업데이트되는 데이터에 실시간으로 액세스할 수 있으므로 귀하의 비즈니스 요구 사항에 따라 이러한 데이터를 사용할 수 있습니다.

    주의 사항

    • 데이터 동기화를 위해 DTS를 사용할 때 증분 데이터가 RocksDB에 동기화되고 Delete 작업이 차단되는지 확인하십시오.
    • RocksDB로 데이터를 전송한 후 데이터 유효성을 먼저 확인한 다음 원본 데이터베이스의 데이터를 지워 저장 공간 사용량을 줄입니다.
    • 원본 테이블에 파티션된 테이블을 사용하여 데이터 지우기 효율성을 높일 수 있습니다(파티션된 테이블의 사용 제한에 주의하고 타깃 테이블은 파티셔닝을 지원하지 않습니다).
    • RocksDB는 저장 공간 사용량을 효과적으로 줄이기 위해 정기적으로 compaction 작업을 수행합니다.
    • RocksDB 엔진에 대한 자세한 내용은 Instructions를 참고하십시오.

    작업 단계

    1. DTS 콘솔에 로그인하고 왼쪽 사이드바에서 데이터 마이그레이션을 선택한 다음 마이그레이션 작업 생성을 클릭하여 마이그레이션 작업 생성 페이지로 이동합니다.
    2. 마이그레이션 작업 생성 페이지에서 원본 및 타깃 인스턴스의 유형, 리전 및 사양을 선택하고 즉시 구매를 클릭합니다.
      설정 항목설명
      원본 인스턴스 유형 원본 데이터베이스 유형을 선택합니다. 구매 후 변경할 수 없습니다. 여기에서는 ‘MySQL’을 선택합니다.
      원본 인스턴스 리전 원본 데이터베이스 리전을 선택합니다. 원본 데이터베이스가 자체 구축된 데이터베이스인 경우 가장 가까운 리전을 선택하십시오.
      타깃 인스턴스 유형 타깃 데이터베이스 유형을 선택합니다. 구매 후 변경할 수 없습니다. 여기에서 ‘MySQL’을 선택합니다.
      타깃 인스턴스 리전 타깃 데이터베이스 리전을 선택합니다.
      사양 귀하의 업무 여건에 따라 마이그레이션 연계 사양을 선택합니다. 다양한 사양의 성능 및 결제 세부 정보는 과금 개요를 참고하십시오.
    3. 마이그레이션 작업의 작업 열에서 더 보기 > 설정을 선택합니다. 원본 및 타깃 데이터베이스 설정 페이지에서 작업, 원본 데이터베이스 및 타깃 데이터베이스 설정을 구성합니다. 원본 및 타깃 데이터베이스가 연결 테스트를 통과한 후 저장을 클릭합니다.
      설명:

      연결 테스트에 실패하면 DB 연결 확인의 지침에 따라 문제를 해결하고 수정한 후 다시 시도하십시오.

    4. 마이그레이션 옵션 설정 및 마이그레이션 객체 선택 페이지에서 마이그레이션 유형과 마이그레이션 객체를 설정하고 저장을 클릭합니다.
      설명:

      • 마이그레이션 중에 테이블에 Online DDL 작업을 수행하기 위해 gh-ost 및 pt-osc와 같은 도구를 사용하려면, 마이그레이션 객체로 테이블만 선택하는 것이 아니라 테이블이 있는 전체 데이터베이스(또는 전체 인스턴스)를 선택해야 합니다. 그렇지 않으면 Online DDL 변경으로 생성된 임시 테이블 데이터를 대상 데이터베이스로 마이그레이션할 수 없습니다.
      • 마이그레이션하는 동안 테이블 이름을 rename하려면(예: table A를 table B로 rename) 마이그레이션 객체로 table A만 선택하는 것이 아니라 table A가 있는 전체 데이터베이스(또는 전체 인스턴스)를 선택해야 합니다. 그렇지 않으면 시스템에서 오류를 보고합니다.
      설정 항목설명
      마이그레이션 유형 시나리오에 따라 유형을 선택하십시오.
      • 구조적 마이그레이션: 원본 데이터베이스의 데이터베이스 및 테이블과 같은 구조적 데이터가 마이그레이션됩니다.
      • 전체 마이그레이션: 전체 데이터베이스가 마이그레이션됩니다. 마이그레이션된 데이터는 작업이 시작될 때만 원본 데이터베이스의 기존 콘텐츠가 되지만 작업이 시작된 후 원본 데이터베이스에 기록된 증분 데이터는 포함되지 않습니다.
      • 전체 + 증분 마이그레이션: 마이그레이션된 데이터에는 작업이 시작될 때 원본 데이터베이스의 기존 콘텐츠와 작업이 시작된 후 원본 데이터베이스에 기록된 증분 데이터가 포함됩니다. 마이그레이션 중에 원본 데이터베이스에 데이터 쓰기가 있고 논스톱 방식으로 원활하게 데이터를 마이그레이션하려면 이 옵션을 선택하십시오.
      객체 마이그레이션
      • 전체 인스턴스: information_schema, mysql, performance_schema 및 sys와 같은 시스템 데이터베이스를 제외한 전체 데이터베이스 인스턴스를 마이그레이션합니다.
      • 지정된 객체: 지정된 객체를 마이그레이션합니다.
      객체 지정 원본 데이터베이스 객체에서 마이그레이션할 객체를 선택하고 선택한 객체 상자로 이동합니다.
      계정 마이그레이션 원본 데이터베이스의 계정 정보를 마이그레이션하려면 이 기능을 선택하십시오.
    5. 확인 작업 페이지에서 확인을 진행하고 확인 통과 후 작업 실행을 클릭합니다.
    6. 데이터 마이그레이션 작업 목록으로 돌아가면 작업이 준비 중 상태로 들어간 것을 볼 수 있습니다. 1 - 2분 후 데이터 마이그레이션 작업이 시작됩니다.
      • 구조적 마이그레이션 또는 전체 마이그레이션을 선택: 완료되면 작업이 자동 중지됩니다.
      • 전체 + 증분 마이그레이션 선택: 전체 마이그레이션이 완료된 후 마이그레이션 작업은 자동으로 중지되지 않는 증분 데이터 동기화 단계에 자동으로 들어갑니다. 증분 데이터 동기화를 수동으로 중지하려면 완료를 클릭해야 합니다.
        • 적절한 시기에 증분 데이터 동기화 및 비즈니스 전환을 수동으로 완료합니다.
        • 마이그레이션 작업이 증분 동기화 단계에 있고 지연 상태가 아닌지 확인합니다. 그렇다면 몇 분 동안 원본 데이터베이스에 데이터 쓰기를 중지하십시오.
        • 타깃 데이터베이스와 원본 데이터베이스 간의 데이터 간격이 0MB이고 둘 사이의 시간 지연이 0초인 경우 수동으로 증분 동기화를 완료합니다.
    7. 마이그레이션 작업 상태가 작업 성공이 된 후 InnoDB 데이터가 RocksDB에 동기화됩니다.
    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원