[Mysql Replication 정상 작동중인지 확인법]
1. Slave_IO_Running과 Slave_SQL_Running이 Yes로 정상 작동 중인가
2. Laster_Errno와 Last_Error를 통해 어떤 에러코드를 가진 에러가 발생했는가
3. Read_Master_Log_Pos가 Master의 Position과 매칭이 되고 있는가
Master_Log_File: mysql-bin.000104
Read_Master_Log_Pos: 53302
위에 보이는 정보와 Master의 상태 정보에서 확인할 수 있는 File, Position 값이 동일한지 확인한다
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000104 | 53416 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
File이 다를 경우 CHANGE MASTER TO ~ 의 설정을 통해 File과 Position 지정을 다시 해줘야 합니다
=========================================================
[Mysql Replication 에러 복구 방법]
1. skip-counter를 설정해주고 slave 껐다가 켜보기
mysql> stop slave;
mysql> set global sql_slave_skip_counter=1; --> 오류 1개를 스킵하고 진행하라는 뜻
mysql> start slave;
Slave 상태 다시 확인
mysql> show slave status\G
2. slave의 mysql 설정 파일에서 에러를 무시하는 옵션 추가
# vi/etc/my.cnf --> [mysqld] 아래 항목에 slave-skip-error= <무시할 에러 입력>
ex) slave-skip-errors=1032,1062 --> 1032,1062 에러 발생시 무시하고 리플리케이션 진행
========================================================
[Mysql replication 리셋방법]
Master) RESET MASTER;
mysql >SHOW MASTER STATUS\G
커맨드 입력 후 나온 mysql-bin-log / position 값을 기록합니다
Slave)
mysql > STOP SLAVE;
mysql > RESET SLAVE;
sql > CHANGE MASTER TO
MASTER_HOST='마스터서버ip',
MASTER_USER='sammul' , (리플리케이션 적용할 사용자명)
MASTER_PASSWORD='password', (리플리케이션 적용할 사용자 패스워드)
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001', (MasterDB의 Status에 mysql-bin-log 파일명)
MASTER_LOG_POS='204' (Master status의 position 번호)
=========================================================
[Mysql 이중화 원리]
- Master DB에서 DATA변경이 일어나면 (1) 이를 Master DB에 반영한다(2)
- 변경이력을 Binary Log로 저장해둔다 (3)
- 관련 이벤트를 Slave DB들에게 넘긴다 (4)
- Slave IO Thread에서 이벤트를 캐치하면 (5) Binary Log를 Slave DB 각각의 Relay Log에 저장한다 (6)
- Slave SQL Thread에서 Relay Log를 읽어 (7) Slave DB를 업데이트한다 (8)
- 읽기 처리를 할 때는 Slave DB를 사용한다.
Active 서버 mysql replication 이 멈추면 helath check 를 확인하여
자동으로 httpd / asterisk / mysql 멈추게 설정 되어있음 --> standby로 넘어가기 위함
=========================================================
'리눅스 > Ubuntu' 카테고리의 다른 글
Ubuntu 무료 SSL 설치 방법 (0) | 2021.12.03 |
---|---|
리눅스 커널 패닉 해결 방법(Centos / Ubuntu ) (0) | 2021.12.03 |
우분투 방화벽 (UFW) 설정 (0) | 2021.12.03 |
[우분투 부팅시 서비스 자동 시작] (0) | 2021.12.03 |
RST (Reverse SSH Terminal) (0) | 2021.01.21 |