tencent cloud

Data Transfer Service

문서Data Transfer Service

TDSQL for MySQL를 TDSQL for MySQL로 마이그레이션 TDSQL-C for MySQL에서 TDSQL-C for MySQL로 동기화

Download
포커스 모드
폰트 크기
마지막 업데이트 시간: 2022-11-02 16:31:14
본문은 DTS의 데이터 마이그레이션 기능을 사용하여 TDSQL for MySQL에서 TDSQL for MySQL로 데이터를 마이그레이션하는 방법을 설명합니다.
다음 시나리오의 데이터 마이그레이션 요구 사항은 TDSQL for MySQL에서 TDSQL for MySQL로의 데이터 마이그레이션 요구 사항과 동일합니다. 지침은 이 문서를 참고하십시오.
TDSQL for MySQL에서 TencentDB for MariaDB로 데이터 마이그레이션
TDSQL for MySQL에서 TencentDB for MySQL로 데이터 마이그레이션

주의 사항

전체 데이터 마이그레이션 중에 DTS는 특정 원본 인스턴스 리소스를 사용하므로 원본 데이터베이스의 로드와 압력이 증가할 수 있습니다. 데이터베이스 구성이 낮으면 사용량이 적은 시간에 데이터를 동기화하는 것이 좋습니다.
마이그레이션은 기본적으로 잠금 없이 구현되며 이 동안에는 전역 잠금(FTWRL 잠금)이 원본 데이터베이스에 추가되지 않고 기본 키가 없는 테이블만 잠깁니다.
데이터 일관성 검사 작업 생성 시 DTS는 마이그레이션 작업을 실행하는 계정을 사용하여 원본 데이터베이스의 시스템에 데이터베이스 __tencentdb__를 작성하여 마이그레이션 작업 중 데이터 대조 정보를 기록합니다.
후속 데이터 문제를 찾을 수 있도록 원본 데이터베이스의 __tencentdb__ 시스템 데이터베이스는 마이그레이션 작업이 끝난 후 삭제되지 않습니다.
__tencentdb__시스템 데이터베이스는 단일 스레드 연결 대기 메커니즘을 사용하며 원본 데이터베이스의 저장 공간의 약 0.01%–0.1%인 매우 작은 공간을 차지합니다. 예를 들어, 원본 데이터베이스가 50G인 경우 __tencentdb__는 약 5K-50K가 됩니다. 따라서 원본 데이터베이스의 성능에 거의 영향을 미치지 않으며 리소스를 선점하지 않습니다.

전제 조건

TDSQL for MySQL 인스턴스 생성을 완료해야 합니다.
원본 및 타깃 데이터베이스는 데이터 마이그레이션 지원 데이터베이스에 설명된 대로 마이그레이션 기능 및 버전에 대한 요구 사항을 충족해야 합니다.
모든 준비 작업을 마쳐야 합니다.
원본 TDSQL for MySQL 데이터베이스에 미리 __tencentdb__ 데이터베이스를 생성해야 합니다.
원본 데이터베이스 권한이 있어야 합니다.
CREATE USER ’마이그레이션 계정’@’%’ IDENTIFIED BY ’마이그레이션 비밀번호’;
GRANT SELECT,RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHOW VIEW,PROCESS ON *.* TO ’마이그레이션 계정’@’%’;
//원본이 TDSQL for MySQL 데이터베이스인 경우 RELOAD 권한 부여를 위해 티켓을 제출해야 하며, 다른 시나리오의 경우 코드 인증을 참고하십시오
GRANT INSERT, UPDATE, DELETE, DROP, SELECT, INDEX, ALTER, CREATE ON `__tencentdb__`.* TO '마이그레이션 계정'@'%';
대상 데이터베이스 필요 권한: ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE USER, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, PROCESS, REFERENCES, RELOAD, SELECT, SHOW DATABASES, SHOW VIEW, TRIGGER, UPDATE.

애플리케이션 제한

기본 테이블만 마이그레이션할 수 있으며 뷰, 함수, 트리거 및 저장 프로시저와 같은 객체는 마이그레이션할 수 없습니다.
information_schema, sysdb, test, sys, performance_schema, __tencentdb__, mysql과 같은 시스템 DB 테이블 및 사용자 정보는 마이그레이션할 수 없습니다.
InnoDB 데이터베이스 엔진이 있는 데이터만 마이그레이션할 수 있습니다. 다른 엔진이 있는 테이블은 기본적으로 마이그레이션 중에 건너뜁니다.
관련 데이터 객체는 동시에 마이그레이션되어야 합니다. 그렇지 않으면 마이그레이션이 실패합니다.
증분 마이그레이션 중에 원본 데이터베이스에 분산 트랜잭션이 있거나 STATEMENT 형식의 Binlog문을 생성하면 마이그레이션이 실패됩니다.
2급 파티션 테이블은 마이그레이션할 수 없습니다.
TDSQL for MySQL에서 MySQL/MariaDB로 마이그레이션하는 동안 2단계 파티션 테이블이 발생하면 작업에서 오류를 보고합니다.
TDSQL for MySQL에서 TDSQL for MySQL로 마이그레이션하는 동안 마이그레이션된 데이터베이스/테이블에 2단계 파티션 테이블이 포함된 경우 이러한 파티션 테이블은 건너뜁니다. 전체 데이터베이스 또는 인스턴스가 마이그레이션되고 2단계로 파티션된 테이블이 발생하면 작업이 오류를 보고하고 일시 중지됩니다.
동일한 트랜잭션에 DML 및 DDL 문을 모두 포함하는 시나리오는 지원되지 않으므로 작업 실행 중에 오류가 트리거됩니다.
Geometry 데이터 유형은 지원되지 않으며 작업 실행 중에 오류를 트리거합니다.

작업 제한

마이그레이션하는 동안 다음 작업을 수행하지 마십시오. 그렇지 않으면 마이그레이션 작업이 실패합니다.
원본 및 타깃 데이터베이스와 포트 번호의 사용자 정보(사용자 이름, 암호 및 권한 포함)를 수정하거나 삭제하지 마십시오.
원본 데이터베이스에서 분산 트랜잭션을 실행하지 마십시오.
STATEMENT 형식의 Binlog 데이터를 원본 데이터베이스에 쓰지 마십시오.
원본 데이터베이스에서 Binlog를 지우지 마십시오.
증분 마이그레이션 중에 시스템 테이블 __tencentdb__를 삭제하지 마십시오.
전체 데이터 마이그레이션만 수행하는 경우 마이그레이션 중에 원본 데이터베이스에 새 데이터를 쓰지 마십시오. 그렇지 않으면 원본 및 대상 데이터베이스의 데이터가 일치하지 않습니다. 데이터 쓰기가 있는 시나리오에서 실시간으로 데이터 일관성을 보장하려면 전체+증분 데이터 마이그레이션을 선택하는 것이 좋습니다.
증분 마이그레이션 중에는 원본 데이터베이스에서 새 샤드를 추가하거나 샤드 사양을 조정할 수 없습니다. 그렇지 않으면 마이그레이션 작업이 새 샤드의 데이터를 동기화하지 않거나 오류를 보고하고 일시 중지됩니다. 장기간 증분 동기화를 유지하고 원본 데이터베이스에 샤드를 추가하거나 조정해야 하는 경우 Sync from TDSQL for MySQL to TDSQL for MySQL을 참고하십시오.

지원되는 SQL 작업

작업 유형
지원되는 SQL 작업
DML
INSERT, UPDATE, DELETE, REPLACE
DDL
TABLE:CREATE TABLE, ALTER TABLE, DROP TABLE, TRUNCATE TABLE
VIEW:CREATE VIEW, DROP VIEW
INDEX:CREATE INDEX, DROP INDEX
DATABASE:CREATE DATABASE, ALTER DATABASE, DROP DATABASE

환경 요건

설명:
시스템은 마이그레이션 작업을 시작하기 전에 다음 환경 요구 사항을 자동으로 확인하고 요구 사항이 충족되지 않으면 오류를 보고합니다. 실패 항목을 식별할 수 있는 경우 확인 항목 요구 사항에 따라 수정하십시오. 그렇지 않으면 시스템 확인이 완료될 때까지 기다렸다가 오류 메시지에 따라 문제를 수정하십시오.
유형
환경 요건
원본 데이터베이스 요구 사항
원본 및 타깃 데이터베이스를 연결할 수 있어야 합니다.
데이터베이스 매개변수 요구 사항:
table_row_format은 FIXED로 설정할 수 없습니다.
원본 및 대상 데이터베이스의 lower_case_table_names 변수 값은 동일해야 합니다.
대상 데이터베이스의 max_allowed_packet 매개변수는 4M 이상이어야 합니다.
원본 데이터베이스의 connect_timeout 변수는 10 이상이어야 합니다.
Binlog 매개변수 요구사항:
원본 데이터베이스의 binlog_format 변수는 ROW로 설정해야 합니다.
원본 데이터베이스의 log_bin 변수는 ON으로 설정해야 합니다.
원본 데이터베이스의 binlog_row_image 변수는 FULL로 설정해야 합니다.
v5.6 이상에서는 원본 데이터베이스의 gtid_mode 변수가 ON이 아닌 경우 WARNING이 발생합니다. gtid_mode를 활성화하는 것이 좋습니다.
do_db 및 ignore_db를 설정할 수 없습니다.
원본 데이터베이스가 복제 데이터베이스인 경우 log_slave_updates 변수를 ON으로 설정해야 합니다.
최소 3일 동안 원본 데이터베이스의 Binlog를 보관하는 것이 좋습니다. 그렇지 않으면 체크포인트에서 작업을 재개할 수 없으며 실패합니다.
외래 키 종속성:
외래 키 종속성은 no action 또는 restrict 유형일 수 있습니다.
부분 테이블 마이그레이션 중에는 외래 키 종속성이 있는 테이블을 마이그레이션해야 합니다.
타깃 데이터베이스에 대한 요구 사항
타깃 데이터베이스가 분산 데이터베이스인 경우 수동으로 분할된 테이블을 생성하고 shardkey를 미리 계획하는 것이 좋습니다. 그렇지 않으면 DTS는 원본 데이터베이스의 테이블 스타일을 기반으로 타깃 데이터베이스에 테이블을 만듭니다. 원본 데이터베이스가 독립 실행형 인스턴스인 경우 타깃 데이터베이스는 단일 테이블로 생성됩니다.
타깃 데이터베이스 버전은 원본 데이터베이스 버전보다 높거나 같아야 합니다.
대상 데이터베이스의 공간은 원본 데이터베이스에서 마이그레이션할 테이블 크기의 1.2배 이상이어야 합니다.
대상 데이터베이스는 원본 데이터베이스와 충돌하는 테이블을 가질 수 없습니다.
기타 요구 사항
환경 변수 innodb_stats_on_metadata는 off로 설정해야 합니다.

작업 단계

1. DTS 콘솔에 로그인하고 왼쪽 사이드바에서 데이터 마이그레이션을 선택한 다음 마이그레이션 작업 생성을 클릭하여 마이그레이션 작업 생성 페이지로 이동합니다.
2. 마이그레이션 작업 생성 페이지에서 원본 및 타깃 인스턴스의 유형, 리전 및 사양을 선택하고 구매하기를 클릭합니다.
설정 항목
설명
원본 인스턴스 유형
원본 데이터베이스 유형을 선택합니다. 구매 후 변경할 수 없습니다. 본문은 ‘TDSQL for MySQL’를 선택합니다.
원본 인스턴스 리전
원본 데이터베이스 리전을 선택합니다.
타깃 인스턴스 유형
타깃 데이터베이스 유형을 선택합니다. 구매 후 변경할 수 없습니다. 본문은 ‘TDSQL for MySQL’을 선택합니다.
타깃 인스턴스 리전
타깃 데이터베이스 리전을 선택합니다.
사양
비즈니스 상황에 따라 마이그레이션 링크의 사양을 선택합니다.
3. 원본과 타깃 데이터베이스 설정 페이지에서 작업 설정, 원본 데이터베이스 설정 및 타깃 데이터베이스 설정을 완료하고, 원본 데이터베이스와 타깃 데이터베이스의 연결성 테스트 통과 시 생성을 클릭합니다.
설명:
연결 테스트에 실패하면 수정 방법의 지침에 따라 문제를 해결하고 수정한 후 다시 시도하십시오.
설정 유형
설정 항목
설명
작업 설정
작업 이름
쉬운 작업 식별을 위해 의미 있는 이름을 설정합니다.
실행 모드
즉시 실행 및 예약 실행 지원: 즉시 실행은 작업 검증 통과 후 즉시 작업을 시작하고, 예약 실행은 작업 실행 시간을 설정하고 설정 시간이 되면 작업을 시작합니다.
태그
태그는 다양한 차원의 범주별로 리소스를 관리하는 데 사용됩니다. 기존 태그가 요구 사항을 충족하지 않는 경우 콘솔로 이동하여 추가로 생성하십시오.
원본 데이터베이스 설정
원본 데이터베이스 유형
구매 시 선택한 원본 데이터베이스 유형으로, 변경할 수 없습니다.
리전
구매 시 선택한 원본 데이터베이스 리전으로, 변경할 수 없습니다.
액세스 유형
‘데이터베이스’를 선택합니다.
데이터베이스 인스턴스
원본 데이터베이스의 인스턴스 ID를 선택합니다.
계정
특정 권한이 있어야 하는 원본 TDSQL for MySQL 데이터베이스의 계정입니다.
비밀번호
원본 TDSQL for MySQL 데이터베이스의 비밀번호입니다.
타깃 라이브러리 설정
타깃 데이터베이스 유형
구매 시 선택한 타깃 데이터베이스 유형으로, 변경할 수 없습니다.
리전
구매 시 선택한 타깃 데이터베이스 리전으로, 변경할 수 없습니다.
액세스 유형
‘데이터베이스’를 선택합니다.
데이터베이스 인스턴스
대상 TDSQL for MySQL 인스턴스 ID를 선택합니다.
계정
대상 TDSQL for MySQL 데이터베이스 계정으로, 특정 권한이 있어야 합니다.
비밀번호
대상 TDSQL for MySQL 계정 비밀번호입니다.
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. (옵션) 작업 조회, 삭제 등 작업을 수행하려면 해당 작업을 클릭하고 작업 열에서 해당 작업을 선택합니다. 자세한 내용은 작업 관리를 참고하십시오.
8. 마이그레이션 작업 상태가 작업 성공이 되면 정식으로 컷오버할 수 있습니다. 자세한 내용은 컷오버 설명을 참고하십시오.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백