MySQL에 대한 마이그레이션 전제 조건 구성
MySQL 소스 데이터베이스 에서 마이그레이션 작업을 실행 하려면 데이터베이스 에서 일부 구성 변경이 필요할 수 있습니다. Relational Migrator 가 데이터베이스 구성 변경이 필요하다고 판단하면 필요한 변경 사항이 포함된 SQL 스크립트 를 자동으로 생성합니다. 데이터베이스 관리자(DBA )가 이 스크립트 의 명령을 검토 하고 데이터베이스 서버 에서 실행을 수행하도록 하는 것이 좋습니다. MySQL Server 구성은 마이그레이션 작업 유형에 따라 다릅니다.
스냅샷 마이그레이션 작업은 모든 데이터를 한 번 마이그레이션 후 중지합니다.
연속 마이그레이션 작업은 스냅샷 마이그레이션 실행 다음 데이터 변경 사항을 지속적으로 복제하는 CDC 단계로 들어갑니다.
지원되는 MySQL 버전에 대한 자세한 내용은 지원되는 데이터베이스 및 버전을 참조하세요.
단계
(선택 사항) 사용자 권한 설정
다음 코드는 Relational Migrator가 MySQL 인스턴스에 연결할 수 있도록 새 MySQL 서비스 계정을 생성합니다. 또는 기존 MySQL 서비스 계정을 사용하여 적절한 권한으로 Relational Migrator에 연결할 수 있습니다.
서비스 계정을 만듭니다:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 서비스 계정에 필요한 권한을 부여합니다.
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%'; 사용자 권한 변경 사항을 적용합니다:
FLUSH PRIVILEGES;
Relational Migrator 에서 연속 작업을 실행하려면 바이너리 로그 가 필요합니다. MySQL 인스턴스 에서 활성화합니다. 바이너리 로그 (Binlog)는 데이터베이스 에 커밋된 순서대로 모든 작업을 기록합니다.
(선택 사항) 사용자 권한 설정
다음 코드는 Relational Migrator가 MySQL 인스턴스에 연결할 수 있도록 새 MySQL 서비스 계정을 생성합니다. 또는 기존 MySQL 서비스 계정을 사용하여 적절한 권한으로 Relational Migrator에 연결할 수 있습니다.
서비스 계정을 만듭니다:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 서비스 계정에 필요한 권한을 부여합니다.
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%'; 사용자 권한 변경 사항을 적용합니다:
FLUSH PRIVILEGES;
(선택 사항) Binlog가 활성화되어 있는지 수동으로 확인
Relational Migrator 는 이 설정을 자동으로 확인합니다. Binlog
옵션이 활성화되어 있는지 수동으로 확인하려면 사용 중인 MySQL 버전에 맞는 아래 쿼리를 사용합니다.
참고
Binlog
MySQL 8.x
버전에서는 기본값 으로 자동으로 활성화됩니다.
SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM performance_schema.global_variables WHERE variable_name='log_bin';
SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
MySQL 구성 파일 찾기 및 업데이트
다음 SQL 쿼리 를 실행하여 MySQL 인스턴스 의
server_id
값을 가져옵니다.SELECT variable_value FROM performance_schema.global_variables WHERE variable_name='server_id'; SELECT variable_value FROM information_schema.global_variables WHERE variable_name='server_id'; 터미널에서 다음
mysqld
명령을 실행 하여 MySQL 인스턴스 의 구성 파일 을 찾습니다.mysql --help | findstr cnf mysql --help | grep cnf MySQL 구성 파일 의
[mysqld]
섹션 아래에 다음 줄을 추가합니다.XXXXX
값을 이전 쿼리 의server_id
로 바꿉니다.server-id = XXXXX log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL binlog_expire_logs_seconds = 864000 server-id = XXXXX log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL expire_log_days = 10 참고
MySQL Amazon Web Services RDS 및 자동 백업 에서 을 실행 경우 활성화되지 않은 경우
Binlog
는 구성 파일 에 값이 설정하다 되어 있더라도 비활성화됩니다.
자세히 알아보기
Relational Migrator 는 오픈 소스 Debezium connector 를 사용하여 행 수준 변경 사항을 캡처합니다. 자세한 내용은 Debezium MySQL 을 참조하세요.