MySQL 데이터베이스 바이너리 로그

A, MySQL의 바이너리 로그

1.1 MySQL의 바이너리 로그

MySQL의 바이너리 로그 (바이너리 로그) 기록이 모든 이벤트는 이벤트에 대한 추가 및 삭제를 포함하여 데이터베이스 수정, MySQL과 이벤트 테이블의 구조를 수정하는 바이너리 파일입니다. 그것은 SQL 데이터를 수정하지 않는 SELECT, SHOW과 다른 진술을 기록하지 않습니다. 바이너리 로그 (바이너리 로그) 주로 마스터 복사본에서 데이터베이스 복구에 사용되며, 감사 (감사) 작업.

바이너리 로그 1.2의 상태를보기

1,바이너리 로그를 열 수 있는지 확인

  • 값이 오프되지 Log_bin 시스템 변수 로그 이진 (이진 로그)를 나타낸다. ON 수단은 바이너리 로그 (바이너리 로그)를 열고
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)

2,현재의 모든 서버 바이너리 로그 파일보기

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000004 | 478421400 |
| mysql-bin.000005 |      9653 |
| mysql-bin.000006 | 340631484 |
+------------------+-----------+
3 rows in set (0.00 sec)
mysql> show master logs;

+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000004 | 478421400 |
| mysql-bin.000005 |      9653 |
| mysql-bin.000006 |  340631484 |
+------------------+-----------+
3 rows in set (0.00 sec)

삼,이진 파일의 현재 상태를보기

그림 삽입 설명 여기

열린 1.3 바이너리 로그

그 값이 열려있는 바이너리 로그 (바이너리 로그)가 없다는 것을 의미 OFF 인 경우, log_bin 시스템 변수를 참조 할 필요가 바이너리 로그를 열 경우, [= DIR [이름] 아래의 my.cnf 로그 바이너리 추가 [mysqld를]에서는, 디렉터리 파라미터 지정 이진 메모리의 경로, 파일명 파라미터 지정 파일의 이름 두 가지를 준비했다. 여기서 파일명은 임의 일 수 있지만, 바람직하게는 소정의 규격.
(그것은 동적 변수 없기 때문에) Log_bin 시스템 변수는 동적으로 변경 될 수없는, 정적 파라미터들이다.

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
mysql> set global log_bin=mysql_bin;
ERROR 1238 (HY000): Variable 'log_bin' is a read only variable

1,수정 my.cnf의다음 [mysqld가] 추가 log_bin = mysql_bin 재시작 MySQL을 따라 ON 권선 log_bin,기본 데이터 디렉토리에 바이너리 로그 (바이너리 로그) (DATADIR 변수 시스템에서)

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)
mysql> show variables like '%log_bin%';
+---------------------------------+------------------------------------+
| Variable_name                   | Value                              |
+---------------------------------+------------------------------------+
| log_bin                         | ON                                 |
| log_bin_basename                | /var/lib/mysql/mysql_bin_log       |
| log_bin_index                   | /var/lib/mysql/mysql_bin_log.index |
| log_bin_trust_function_creators | OFF                                |
| log_bin_use_v1_row_events       | OFF                                |
| sql_log_bin                     | ON                                 |
+---------------------------------+------------------------------------+
6 rows in set (0.00 sec)
mysql> 

2, 경우에만 my.cnf 파일의 log_bin에 제공되지만, FILE_NAME을 지정하고 데이터베이스를 다시 시작하지 않습니다,이 형식 -bin 바이너리 로그 파일 이름 $ {호스트 이름}.

mysql> show variables like '%log_bin%';
+---------------------------------+------------------------------------+
| Variable_name                   | Value                              |
+---------------------------------+------------------------------------+
| log_bin                         | ON                                 |
| log_bin_basename                | /var/lib/mysql/server1-bin       |
| log_bin_index                   | /var/lib/mysql/server1-bin.index |
| log_bin_trust_function_creators | OFF                                |
| log_bin_use_v1_row_events       | OFF                                |
| sql_log_bin                     | ON                                 |
+---------------------------------+------------------------------------+
6 rows in set (0.00 sec)
mysql> 

1.4 바이너리 로그 스위치

1 진 스위칭 명령 플러쉬 로그를 로그

mysql> flush logs;
Query OK, 0 rows affected (0.03 sec)

각 다시 시작 MySQL의 서비스는 바이너리 로그 스위치의 해당하는 새로운 바이너리 로그 파일을 생성합니다.
바이너리 로그를 전환 할 때, 당신은 수는 계속 증가 할 것입니다 볼 수 있습니다. 또한, 이러한 바이너리 로그 파일뿐만 아니라, 당신은 또한 서버 1-bin.index 파일을 생성을 참조하십시오 것이다 저장 모든 바이너리 파일로 알려진 바이너리 로그 인덱스 파일 목록.

1.5 바이너리 로그가 삭제

1, 당신이 로그를 삭제하기 전에 모든 바이너리 로그 파일 : 퍼지 바이너리 로그에 'log_name', 이 명령은 인덱스 관련 데이터를 수정합니다.
2, 바이너리 로그 파일 전에 시점을 취소 : 퍼지 바이너리가 로그온하기 전에 '2017년 3월 10일 10시 10분 0초';
3, 지우기 칠일 바이너리 로그 파일 이전 : 퍼지 마스터 로그 지금 DATE_SUB (전 () ;, 7 일) 간격
: 4, 기본 관계 (현재 존재하지 않음)에서 복사 된 모든 바이너리 로그 파일을 삭제 하며 RESET 마스터
** 매개 변수의 기본값은 0, 함수가 자동으로 삭제 만료를 사용할 수 없습니다 자동 정리 expire_logs_days을 설정 (5) ** 자동 청소 기능이 활성화 된 경우, 바이너리 로그 파일을 표현하는 일이 번호가 자동으로 보통 자동으로 삭제 작업을 삭제 MySQL의 로그 또는 FLUSH 시간을 시작할 때 발생됩니다 초과합니다.

mysql> show variables like 'expire_logs_days';

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 7     |
+------------------+-------+
1 row in set (0.00 sec)
mysql> 
게시 된 102 개 원래 기사 · 원의 찬양 (21) · 전망 5328

추천

출처blog.csdn.net/ranrancc_/article/details/103035035