MYSQL 바이너리로그(BINARY LOG)파일 활용
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,491 조회
- 0 추천
- 목록
본문
MYSQL 바이너리로그(BINARY LOG)파일 활용
다음은 MYSQL의 데이터가 변경될 때에 그 내역을 기록하는 바이너리로그에 대한 설명이다.
예전에는 MYSQL의 insert, update, delete쿼리에 의해 변경된 데이터를 UPDATE로그라고 하여 텍스트형태로 기록하였다.
하지만 현재는 MYSQL자체 보안과 실행속도 향상을 위하여 바이너리(BINARY)형태로 기록을 하며 로그파일명 또한 BINARY로그라고 부르고있다.
사실 바이너리로그는 DB서버의 부하분산을 위하여 Master DB서버를 Slave DB서버와 Replication하기 위한것이 주목적이다.
그래서 이 로그를 바이너리로그 또는 업데이트로그라고도 하지만 Replication로그라고도 한다.
참고로 알아두기 바란다.
즉 Masterr DB서버에서 insert, update, delete쿼리에 의해 변경된 데이터들을 Slave DB서버에서 이를 가져가서 적용하기 위한 목적으로 사용된 것이다.
즉 MYSQL의 바이너리(BINARY) 로그파일은 MYSQL의 변경된 데이터내역을 기록하기 위한 목적으로 사용되며 다른 로그파일과는 달리 텍스트형태가 아닌 BINARY로 기록하는 이유는 로그를 기록하는 속도를 향상시켜 실행속도를 빠르게하기 위한 것과 데이터의 변경기록을 아무나 볼 수 없도록하여 자체보안을 위한 것이 그 목적이라고 할 수 있다.
. 바이너리로그 옵션형식 : --log-bin=바이너리로그파일명
. 바이너리로그 보는 방법 : /usr/local/mysql/bin/mysqlbinlog 명령어 사용
위와같이 바이너리로그의 형식을 사용하면 MYSQL의 데이터디렉토리 (예 : /usr/local/mysql/data/)에 “바이너리로그파일명”으로 지정된 바이너리로그파일이 생성되며 MYSQL데이터의 변경내역을 기록한다.
그리고 설명한 바와같이 바이너리로그는 vi나 cat등으로 확인할 수 없기 때문에 /usr/local/mysql/bin/mysqlbinlog라는 명령어를 이용하여 확인할 수 있다.
다음은 /usr/local/mysql/bin/디렉토리에서 바이너리로그를 기록하기위하여 아래와 같이 실행한 것이다.
[root@sulinux data]#/usr/local/mysql/bin/mysqld_safe --log-bin=MYSQL_BINARY_LOG & [1] 4117 [root@sulinux data]#090429 02:22:42 mysqld_safe Logging to '/usr/local/mysql/data/sulinux.net.err'. 090429 02:22:42 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
[root@sulinux data]# |
즉 위의 예에서 바이너리로그파일명으로 MYSQL_BINARY_LOG라고 지정하였기 때문에 /usr/local/mysql/data/디렉토리에는 MYSQL_BINARY_LOG라는 파일명이 생성되어 바이너리로그를 기록할 것이다.
다음은 /usr/local/mysql/data/디렉토리에서 위의 예에서 지정한 바이너리로그를 확인한 것이다.
[root@sulinux data]#ls -l /usr/local/mysql/data/MYSQL_BINARY_LOG.* -rw-rw---- 1 mysql mysql 106 4월 29 02:22 /usr/local/mysql/data/MYSQL_BINARY_LOG.000001 -rw-rw---- 1 mysql mysql 26 4월 29 02:22 /usr/local/mysql/data/MYSQL_BINARY_LOG.index [root@sulinux data]# [root@sulinux data]#file /usr/local/mysql/data/MYSQL_BINARY_LOG.* /usr/local/mysql/data/MYSQL_BINARY_LOG.000001: MySQL replication log /usr/local/mysql/data/MYSQL_BINARY_LOG.index: ASCII text [root@sulinux data]# |
참고로 MYSQL의 바이너리파일을 특별한 위치에 저장하고자 한다면 다음과 같이 디렉토리경로와 함께 MYSQL을 시작하면 된다.
[root@sulinux bin]# ./mysqld_safe --log-bin=/디렉토리경로/MYSQL_BINARY_LOG & |
위와같이하면 지정된 “/디렉토리경로/에 “MYSQL_BINARY_LOG”파일이라는 바이너리로그파일이 저장될것이다.
거듭 말하거니와 이 로그파일을 확인하는 것은 mysqlbinlog라는 다음 유틸리티를 이용하면 그 내용을 확인할 수 있다.
[root@sulinux data]#ls -l /usr/local/mysql/bin/mysqlbinlog -rwxr-xr-x 1 root root 1395582 4월 15 2011 /usr/local/mysql/bin/mysqlbinlog [root@sulinux data]# |
관련자료
-
이전
-
다음