MariaDB replication 중단 복구

Sungyong
2 min read6 days ago

--

텔레그램에서 경고 알람이 날라 왔다.

MariaDB Replication 설정과 모니터링 설정을 했었다. 거기에 알람 걸어놓은 봇이 내는 알람이었다.

이게 왜 뜨지하며, 내가 뭔 짓을 했는지 되집어 보니까, master DB에서 작업을 한다고 했던 것을 slave DB에서 했었던 것이다.

그러다 보니, slave DB에서 master와 동기를 할 수 없게 되어 중단된 거다.

암튼, 이렇게 알람을 안 걸어 놨으면, 또 몇개월이 지나도록 replication 중단된 것도 모르고 지나갈 뻔 했다.

다시 replication 재개를 해야 한다.

Slave DB에 접속해서, show slave status 를 쳐서 상태 확인을 해 보니, Error ‘Duplicate key name ‘idx_cancel_key’’ on query. 라고 뜬다.

복구 절차에 따라,

먼저 slave DB를 중단하고 — stop slave

멈춘 지점을 스킵하도록 하고 — set global SQL_SLAVE_SKIP_COUNTER=1;

다시 slave DB 가동 — start slave

그리고 나서 다시 show slave status 로 replication 상태 확인하니 이제 정상.

실수로라도 slave db쪽에서 작업하지 않도록 slave DB를 read-only 로 변경한다.

set global read_only=ON;

됐는지 확인 — show global variables like '%read_only%';

서버를 재 시작하면 이 값은 풀리므로, mysql.cnf 에도 추가한다.

[mysqld]
read_only = ON
super_read_only = ON

다시 한번 모니터링과 알람 자동화의 중요성을 체감했다.

--

--