일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 기술적 채무
- 동적 프로그래밍
- 리스트의 리스트
- LongestPalindromicSubstring
- No Rules Rules
- 김태강
- 와썹맨
- 프로그래머스
- 삼성역량테스트
- Dynamic Programmin
- mysql #numa #swap #memory
- 아마조니언
- technical debt
- 규칙없음
- 트리
- list of list
- 알고리즘
- 파이썬
- 블린이
- Unique Paths
- Envoy
- 나는 아마존에서 미래를 다녔다
- BFS
- 독후감
- 삼성인 아마조니언 되다
- 그거봤어?
- Python
- leetcode
- minimum path sum
- 리트코드
- Today
- Total
개발자가 되고 싶은 준개발자
[mysql] fatal error 1236 from master when reading data from binary log 해결법 본문
[mysql] fatal error 1236 from master when reading data from binary log 해결법
준개발자 2024. 5. 21. 20:34
에러 메시지
Got fatal error 1236 from master when reading data from binary log: 'Could not open log file'..
발생 원인
01번이 primary, 02번이 secondary 구조로 복제를 하고 있는 상황을 가정하자.
이 상황에서 01번에 장애가 발생하면, HA 솔루션에 의해 02번으로 Primary가 넘어가게 된다.
02번은 01번으로 복제 연결이 되어 있는 상황이었고, 01번은 다시 재기동을 하고 있다.
01번은 재기동을 하면서 신규 binlog 파일을 열어서 binlog를 이어서 작성한다.
하지만 02번은 이 상황을 모르고 복제해 오던 로그의 다음 포지션을 바라보고 있어서 위의 에러가 발생한 것이다.
해결 방법은 신규 binlog 파일의 가장 처음으로 복제 연결을 다시 해주는 것이다.
mysql은 4번 position부터 binlog를 작성한다.
02번 서버에서 01번 서버 신규 binlog 파일의 4번 position으로 master position을 변경해 주면 된다.
구글링 해보면 01번에서 'show master status'를 해보고, 그 position으로 변경하라는 글이 나온다.
이 글도 어느 정도는 맞지만, 그 이전에 쓰인 binlog를 잃게 된다.
따라서 데이터 유실을 최소화하려면 위의 방법이 더 좋다.
해결 방법
02번 서버에서 신규 binlog 파일의 4번 position으로 master position을 변경해 주면 된다.
mysql > stop slave;
mysql > CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.00000XX', MASTER_LOG_POS=4;
mysql> start slave;
mysql> show slave status \G
'MySQL > mysql' 카테고리의 다른 글
[MySQL] MySQL 8.0.25 버전 Prepared Statement가 index 못 타는 버그 (0) | 2023.07.17 |
---|---|
[MySQL] PK, unique key 컬럼 선정 방법 (aka. 복제 지연 예방 방법) (0) | 2023.07.17 |
[MySQL] Delete 쿼리 하나로 수십시간의 복제 지연 발생 원인 분석 (0) | 2023.05.04 |
[MySQL] swap 사용률 낮추기 위해 NUMA 정책 interleave로 바꾸기 (0) | 2023.02.23 |
MySQL 데이터베이스 이관 시 고려할 점 (0) | 2023.01.31 |