일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 블린이
- 와썹맨
- leetcode
- 독후감
- 트리
- 그거봤어?
- Python
- 나는 아마존에서 미래를 다녔다
- LongestPalindromicSubstring
- technical debt
- 기술적 채무
- 삼성역량테스트
- 김태강
- Envoy
- 동적 프로그래밍
- Dynamic Programmin
- 파이썬
- 규칙없음
- No Rules Rules
- 리트코드
- Unique Paths
- 리스트의 리스트
- 아마조니언
- list of list
- mysql #numa #swap #memory
- 알고리즘
- BFS
- 삼성인 아마조니언 되다
- 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 |