MySQL의 기존 Binlog 복제를 GTID 모드로 변경하는 방법
Binlog 복제를 GTID 모드로 변경하기 위해서는 GTID 모드를 확인 (MySQL 8.0.30 기준으로 작성)
show variables like 'gtid_mode';
OFF로 설정되어 있을 경우,
STOP REPLICA;
OFF로 설정되어 있을 경우 다음 순서로 GTID 모드 변수를 변경 후, GTID 모드를 활성화 한다.
set global gtid_mode='OFF_PERMISSIVE';
set global gtid_mode='ON_PERMISSIVE';
set global gtid_mode='ON';
복제 정보를 GTID를 이용할 수 있도록 변경한다.
Change replication source to
source_host='소스정보',
source_port='소스포트정보',
source_user='소스의 복제 권한 부여된 계정명',
source_password='복제 계정 비밀번호',
source_auto_position=1;
START REPLICA;
복제 시작 후, REPLICA 서버에서 복제 에러 발생 시 GTID에서 복제 skip 방법
-- 오류가 발생한 GTID 번호 확인
select * from performance_schema.replication_applier_status_by_workers\G;
-- 위 GTID SKIP (skip이 가능한 트랜잭션인지 반드시 확인해야 함)
set gtid_next='GTID 번호'
begin;
commit;
start replica;
show replica status\G;
영구적으로 변경 사항을 반영하기 위해 mysql configuration에 다음 내역을 추가한다.
[mysqld]
server-id=각 서버의 고유 ID
log-bin=binlog
gtid-mode=ON
enforce-gtid-consistency=ON
log_slave_updates=ON
'Database > MySQL, MariaDB' 카테고리의 다른 글
Mysql 계정 정보 복사, 이전 (DB 마이그레이션 시) (0) | 2023.03.08 |
---|---|
MariaDB 버전에 따른 mysql DB 스키마 관련 오류 ([Error] Query caused different errors on mast (0) | 2023.03.06 |
MySQL Group Replication (0) | 2022.09.17 |
[MY-000068] [Server] unknown option '---'. (0) | 2022.09.13 |
MySQL Group Replication 설정 순서 (0) | 2022.09.04 |