>  기사  >  백엔드 개발  >  mysql binlog 사용법 설명

mysql binlog 사용법 설명

jacklove
jacklove원래의
2018-06-08 15:39:483011검색

이 글에서는 열기, 닫기, 상태 보기, 새로 고침, 지우기, 실행된 SQL 문 보기 및 기타 작업을 포함하여 mysql binlog의 사용법을 소개합니다. 5.7 및 이전 버전의 설정도 누구나 쉽게 배울 수 있도록 설명되어 있습니다.

mysql binlog 소개

binlog는 모든 mysql dml 작업을 기록하는 바이너리 로그 파일인 바이너리 로그입니다.

mysql binlog 파일에 따르면 어떤 SQL 문이 실행되었는지 확인하고 데이터 복구, 마스터-슬레이브 동기 복제 및 기타 작업을 수행할 수 있습니다.

Binlog 파일은 데이터베이스 처리 및 복구에 매우 중요한 역할을 합니다.

1.mysql binlog 열기 및 닫기

mysql binlog 구성 보기

show global variables like '%log_bin%';
+---------------------------------+-------+| Variable_name                   | Value |
+---------------------------------+-------+| log_bin                         | OFF   |
| log_bin_basename                |       |
| log_bin_index                   |       |
| log_bin_trust_function_creators | OFF   |
| log_bin_use_v1_row_events       | OFF   |+---------------------------------+-------+

binlog는 현재 닫혀 있습니다. ​

Open binlog

Open my.cnf 또는 my.ini다음 명령문을 추가하고 mysql을 다시 시작하세요

log_bin=ONlog_bin_basename=/usr/local/var/mysql/mysql-binlog_bin_index=/usr/local/var/mysql/mysql-bin.index

log_bin
ON은 binlog 로그를 여는 것을 의미합니다. 끄다.

log_bin_basename
은 binlog 로그의 기본 파일 이름을 나타내며, 각 파일을 구별하기 위한 식별자가 추가됩니다.

log_bin_index
binlog 파일의 index 파일을 지정합니다. 이 파일은 모든 binlog 파일의 디렉터리를 관리합니다.


mysql5.7 미만이면 이 설정이면 충분합니다. 5.7 이상이라면 다음과 같이 설정해야 합니다.

log_bin=mysql-binserver_id=123456

log_bin은 사용자 정의 binlog 파일 이름을 나타냅니다.

server_id는 다른 클러스터 머신과 동일한 이름을 가지지 않는 문자열을 무작위로 지정한다는 의미입니다. 이는 mysql 복제 구성 시 정의해야 합니다. canal의 SlaveId와 동일할 수 없습니다.

다시 시작한 후 mysql binlog 구성을 다시 확인하세요

show global variables like '%log_bin%';
+---------------------------------+--------------------------------------+| Variable_name                   | Value                                |
+---------------------------------+--------------------------------------+| log_bin                         | ON                                   |
| log_bin_basename                | /usr/local/var/mysql/mysql-bin       |
| log_bin_index                   | /usr/local/var/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                  |
| log_bin_use_v1_row_events       | OFF                                  |+---------------------------------+--------------------------------------+

binlog가 활성화된 것을 확인할 수 있습니다.

2. binlog 로그 파일 목록 보기

show master logs;
+------------------+-----------+| Log_name         | File_size |
+------------------+-----------+| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       177 |
| mysql-bin.000003 |       177 |
| mysql-bin.000004 |       177 |
| mysql-bin.000005 |       177 |
| mysql-bin.000006 |       177 |
| mysql-bin.000007 |       201 |
| mysql-bin.000008 |       201 |
| mysql-bin.000009 |       201 || mysql-bin.000010 |       154 |
+------------------+-----------+

3. 현재 작성 중인 binlog 로그 보기

show master status;
+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000010 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

4. 로그 파일 지우기

flush logs;

6. binglog 로그 파일 내용

binlog 로그 파일을 확인하여 어떤 SQL 문이 실행되었는지 확인하려면

mysqlbinlog

도구를 사용하여 처리할 수 있습니다. 먼저

log_bin_basename

에 따라 binlog 파일이 저장된 디렉토리를 찾은 후 mysqlbinlog 도구를 사용하여 해당 binlog 파일을 확인합니다.

예:

reset master;
그런 다음 mysql-bin-1.log를 확인하여 실행된 SQL 문을 확인하세요.

mysqlbinlog -v mysql-bin.000001 > mysql-bin-1.log

mysqlbinlog

사용시 주의할 점이 몇 가지 있습니다. 1. 현재 작성 중인 binlog 파일을 먼저 보지 마시고, 먼저 해당 파일을 다른 디렉토리에 복사하신 후 보시면 됩니다.

2. 강제 접근을 위해 force 매개변수를 추가하지 마세요.

3. binlog 형식이 행 모드인 경우 -vv 매개변수를 추가하세요.

이 글에서는 mysql binlog 사용법을 설명하고 있습니다. 관련 지식은 php 중국어 홈페이지를 참고해주세요.

관련 권장 사항:

PHP가 토큰 버킷 알고리즘을 사용하여 redis 기반 흐름 제어를 구현하는 방법을 설명합니다.


PHP를 통해 로고가 있는 QR 코드 클래스를 만드는 방법


방법을 자세히 설명합니다. 테이블 파티션을 재구축하고 mysql 데이터 관련 방법을 유지하세요

위 내용은 mysql binlog 사용법 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.