MySQL Binary-Log 에 대하여
2010.12.10 20:11
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
출처 : 한국MySQL 한글매뉴얼 참조.(MySQL Replication 개요)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
mysql의 바이너리 로그의 목적
1. replication 동기화
2. 지난 쿼리의 저장
3. 데이터베이스 복구
1. Replication 동기화
MySQL은 단 방향, 즉 비동기 리플리케이션 (asynchronous replication)을 지원하는데, 하나의 서버는 마스터로 동작하고, 나머지 한 개 이상의 다른 서버들은 슬레이브로 동작한다. 이것은 MySQL클러스터의 특징인 동기화 (synchronous) 리플리케이션과는 반대되는 개념이다. ( Chapter 15, MySQL 클러스터)를 참조할 것.
싱글-마스터 리플리케이션에서, 마스터 서버는 업데이트를 자신의 바이너리 로그 파일에 작성하고 로그 로테이션의 트레이스 (trace)를 유지하기 위해 이 파일의 인덱스를 유지 관리 한다. 바이너리 로그 파일은 다른 슬레이브 서버에 전달되는 업데이트 레코드 역할을 한다. 슬레이브가 자신의 마스터에 연결이 될 때, 마스터 정보를 자신이 마지막으로 업데이트가 성공했을 때 읽었던 로그에 전달한다. 슬레이브는 그 시간 이후에 발생한 모든 사항에 대한 업데이트를 전달 받고, 블록 (block)을 한 후에 마스터가 새로운 업데이트를 알려 주기를 기다리게 된다.
2. 지난 쿼리의 저장
바이너리 로그는 디비에 업데이트가 일어나는 모든 쿼리가 시간과 함께 기록된다.
형식은 mysql/var/호스트이름-bin.넘버
이 넘버는 디비 재시작시마다 카운트가 올라간다.
* 업데이트가 일어날때마다 모든 쿼리가 저장되기 때문에 나중에 용량이 많이 늘어날수 있다.
* 서버 용량상 바이너리로그를 저장하지 않으려면 my.cnf에서 log-bin 부분을 제거하면 된다.
다음 명령어로 bin-log를 일반쿼리로 변경할 수 있다.
# mysqlbinlog /usr/local/mysql/var/host-bin.00003 > view.sql
3. 데이터베이스 복구에 이용
bin-log를 일반쿼리로 변경하여 백업에 이용할 수도 있다.
# mysqlbinlog /usr/local/mysql/var/host-bin.00003 > backup.sql
이를 이용해서 오라클 처럼 time-based recovery도 가능해진다.
# mysqlbinlog --start-datetime="20100101 00:00:00" --stop-datetime="20101231 23:59:59" host-bin.00003 > backup.sql
추출된 쿼리를 다음 명령어로 복구할 수 있다.
# mysql -uroot -p < backup.sql
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
15 | [MySQL] MySQL 연습DB | 조인상 | 2012.02.22 | 22915 |
14 | Mysql bin-log 커졌을때 (bin-log 관리하기) | 조인상 | 2010.12.09 | 21394 |
13 | mysql 에러 종류 | 조인상 | 2010.05.12 | 16248 |
12 | MySQL DB 이전 절차 | 조인상 | 2014.10.31 | 13716 |
11 | MySQL Innodb 에 대하여 | 조인상 | 2011.05.02 | 13264 |
10 | mysql 에서 charset 확인방법 | 조인상 | 2010.05.12 | 12406 |
9 | mysql 유저,디비생성 | 조인상 | 2010.05.12 | 10413 |
» | MySQL Binary-Log 에 대하여 | 조인상 | 2010.12.10 | 10233 |
7 | MySQL root 패스워드 분실시 패스워드 변경 | 조인상 | 2011.11.21 | 9531 |
6 | MySQL characterset 변경 | 조인상 | 2015.06.15 | 5189 |
5 | RHEL/Rocky Linux 8.7 버전에서 MySQL 5.7 버전 설치하기 | ischo | 2023.03.20 | 2096 |
4 | MySQL 감사 로그 설정 | ischo | 2022.09.14 | 847 |
3 | MySQL 5.7 에서 MariaDB 10.5 로 마이그레이션하기 | ischo | 2023.02.23 | 563 |
2 | MariaDB federated 활성화 | ischo | 2023.02.23 | 263 |
1 | MariaDB root 패스워드 초기화 | ischo | 2023.02.23 | 231 |