MySQL/TDSQL-C 확인 사항
필요에 따라 다음 매개변수를 구성해야 합니다. 그렇지 않으면 시스템에서 확인 중에 알람을 보고하며 마이그레이션 작업 진행 상황에는 영향을 미치지 않지만 비즈니스에는 영향을 미칩니다. 매개변수 수정 여부를 평가 및 결정해야 합니다.
대상 데이터베이스의 ‘max_allowed_packet’을 원본 데이터베이스보다 큰 값으로 설정하는 것이 좋습니다.
비즈니스에 미치는 영향: 대상 데이터베이스의 ‘max_allowed_packet’ 매개변수가 원본 데이터베이스의 매개변수보다 작으면 대상 데이터베이스에 데이터 쓰기에 실패하고 전체 마이그레이션 실패로 이어질 수 있습니다.
수정: 대상 데이터베이스의 ‘max_allowed_packet’ 매개변수 값을 원본 데이터베이스의 값보다 큰 값으로 변경합니다.
대상 데이터베이스의 ‘max_allowed_packet’을 1GB보다 큰 값으로 설정하는 것이 좋습니다.
비즈니스에 미치는 영향: ‘max_allowed_packet’의 값이 너무 크면 더 많은 메모리가 사용되어 패킷이 손실되고 큰 예외 이벤트 패킷의 SQL 문을 캡처할 수 없습니다. 값이 너무 작으면 프로그램 오류가 발생하여 백업 실패 및 네트워크 패킷의 빈번한 송수신으로 인해 시스템 성능이 저하됩니다.
수정: 다음 명령을 실행하여 ‘max_allowed_packet’ 매개변수를 수정합니다.
set global max_allowed_packet = 1GB
원본 및 대상 데이터베이스에 동일한 문자 집합을 사용하는 것이 좋습니다.
비즈니스에 미치는 영향: 원본 데이터베이스와 대상 데이터베이스의 문자 집합이 다른 경우 문자가 깨질 수 있습니다.
수정: 다음 명령을 실행하여 원본 및 대상 데이터베이스의 문자 집합을 동일한 것으로 변경합니다.
set character_set_server = 'utf8';
2코어 CPU 및 4GB 메모리 이상의 사양을 가진 데이터베이스를 사용하는 것이 좋습니다.
전체 데이터 마이그레이션만 수행하는 경우 마이그레이션 중에 원본 데이터베이스에 새 데이터를 쓰지 마십시오. 그렇지 않으면 원본 및 대상 데이터베이스의 데이터가 일치하지 않습니다. 데이터 쓰기가 있는 시나리오에서 실시간으로 데이터 일관성을 보장하려면 전체+증분 데이터 마이그레이션을 선택하는 것이 좋습니다.
잠금이 있는 데이터 내보내기의 경우: 원본 데이터베이스의 테이블을 임시로 잠그려면 Flush Table With Read Lock을 사용해야 하며 전체 데이터를 내보낼 때까지 MyISAM 테이블이 잠깁니다. 현재 잠금 대기 시간 초과 기간은 60초이며 이 시간이 지나기 전에 잠금을 획득할 수 없으면 작업이 실패합니다.
잠금이 없는 데이터 내보내기의 경우 기본 키 또는 null이 아닌 고유 키가 없는 테이블에 읽기 잠금이 추가됩니다.
TDSQL MySQL 확인 사항
필요에 따라 다음 매개변수를 구성해야 합니다. 그렇지 않으면 시스템에서 확인 중에 알람을 보고하며 마이그레이션 작업 진행 상황에는 영향을 미치지 않지만 비즈니스에는 영향을 미칩니다. 매개변수 수정 여부를 평가 및 결정해야 합니다.
대상 데이터베이스의 ‘max_allowed_packet’을 원본 데이터베이스보다 큰 값으로 설정하는 것이 좋습니다.
비즈니스에 미치는 영향: 대상 데이터베이스의 ‘max_allowed_packet’ 매개변수가 원본 데이터베이스의 매개변수보다 작으면 대상 데이터베이스에 데이터 쓰기에 실패하고 전체 마이그레이션 실패로 이어질 수 있습니다.
수정: 대상 데이터베이스의 ‘max_allowed_packet’ 매개변수 값을 원본 데이터베이스의 값보다 큰 값으로 변경합니다.
대상 데이터베이스의 ‘max_allowed_packet’을 1GB보다 큰 값으로 설정하는 것이 좋습니다.
비즈니스에 미치는 영향: ‘max_allowed_packet’의 값이 너무 크면 더 많은 메모리가 사용되어 패킷이 손실되고 큰 예외 이벤트 패킷의 SQL 문을 캡처할 수 없습니다. 값이 너무 작으면 프로그램 오류가 발생하여 백업 실패 및 네트워크 패킷의 빈번한 송수신으로 인해 시스템 성능이 저하됩니다.
수정: 다음 명령을 실행하여 ‘max_allowed_packet’ 매개변수를 수정합니다.
set global max_allowed_packet = 1GB
원본 및 대상 데이터베이스에 동일한 문자 집합을 사용하는 것이 좋습니다.
비즈니스에 미치는 영향: 원본 데이터베이스와 대상 데이터베이스의 문자 집합이 다른 경우 문자가 깨질 수 있습니다.
수정: 다음 명령을 실행하여 원본 및 대상 데이터베이스의 문자 집합을 동일한 것으로 변경합니다.
set character_set_server = 'utf8';
2코어 CPU 및 4GB 메모리 이상의 사양을 가진 데이터베이스를 사용하는 것이 좋습니다.
전체 데이터 마이그레이션만 수행하는 경우 마이그레이션 중에 원본 데이터베이스에 새 데이터를 쓰지 마십시오. 그렇지 않으면 원본 및 대상 데이터베이스의 데이터가 일치하지 않습니다. 데이터 쓰기가 있는 시나리오에서 실시간으로 데이터 일관성을 보장하려면 전체+증분 데이터 마이그레이션을 선택하는 것이 좋습니다.
잠금이 있는 데이터 내보내기의 경우: 원본 데이터베이스의 테이블을 임시로 잠그려면 Flush Table With Read Lock를 사용해야 하며 전체 데이터를 내보낼 때까지 MyISAM 테이블이 잠깁니다. 현재 잠금 대기 시간 초과 기간은 60초이며 이 시간이 지나기 전에 잠금을 획득할 수 없으면 작업이 실패합니다.
잠금이 없는 데이터 내보내기의 경우 기본 키 또는 null이 아닌 고유 키가 없는 테이블에 읽기 잠금이 추가됩니다.
원본 데이터베이스 인스턴스가 분산 데이터베이스인 경우 대상 데이터베이스에 미리 샤딩된 테이블을 생성해야 합니다. 그렇지 않으면 테이블이 마이그레이션된 후 분할되지 않은 테이블이 됩니다.