MySQL 시리즈 의 11 로그 기록
MySQL 시리즈 의 시작 MySQL 관계 형 데이터베이스 기초 개념
MySQL 시리즈 중 하나 인 MariaDB-server 설치
MySQL 시리즈 의 두 번 째 인 스 턴 스 설정
MySQL 시리즈 의 3 가지 기초 편
MySQL 시리즈 의 4 SQL 문법
MySQL 시리즈 의 다섯 가지 보기,저장 함수,저장 과정,트리거
MySQL 시리즈 의 6 사용자 및 권한 부여
MySQL 시리즈 7 MySQL 저장 엔진
MySQL 시리즈 8 MySQL 서버 변수
MySQL 시리즈 의 9 my sql 캐 시 및 색인 조회
MySQL 시리즈 의 10 MySQL 사무 격 리 병행 제어 실현
MySQL 시리즈 의 11 로그 기록
MySQL 시리즈 의 12 백업 및 복구
MySQL 시리즈 13 MySQL 복사
MySQL 시리즈 의 14 MySQL 의 높 은 사용 가능 한 구현
MySQL 시리즈 의 15 MySQL 상용 설정 및 성능 압력 테스트
SQL 명령 기록
~/.mysql_history
my sql 에서 실 행 된 명령 의 역 사 를 기록 하 였 습 니 다.트 랜 잭 션 로그
transaction log:사무 형 저장 엔진 자체 관리 및 사용
트 랜 잭 션 을 제출 한 후 디스크 에 저장 되 지 않 은 상태 에서 트 랜 잭 션 로그 에 기록 합 니 다.이 럴 때 시스템 이 끊 기 면 다시 시작 하면 제출 한 트 랜 잭 션 을 자동 으로 다시 시작 합 니 다(redo log).트 랜 잭 션 이 제출 되 지 않 은 상태 에서 전기 가 끊 기 면 재 부팅 후 취소 작업 을 수행 합 니 다(undo log)
상관 변수
MariaDB [school]> SHOW VARIABLES LIKE 'innodb_log%';
+---------------------------+------------+
| Variable_name | Value |
+---------------------------+------------+
| innodb_log_block_size | 512 | --
| innodb_log_buffer_size | 8388608 | --
| innodb_log_file_size | 1073741824 | --
| innodb_log_files_in_group | 3 | -- ,
| innodb_log_group_home_dir | ./ | -- ,
+---------------------------+------------+
innodb_log_file_size 기본 크기 는 5M,innodblog_files_in_group 개수 기본 2 개;이 두 값 을 늘 릴 것 을 강력 히 건의 합 니 다.트 랜 잭 션 의 데이터 가 트 랜 잭 션 로그 파일 의 전체 크기 보다 크 면 ROLLBACK 을 실행 할 때 취소 할 수 있 지만 데이터 파일 이 점용 되 므 로 OPTIMIZE TABLE 명령 을 사용 하여 데이터 공간 을 방출 해 야 합 니 다.
TRUNCATE 를 사용 하여 표 기록 을 삭제 하면 사용 공간 을 줄 일 수 있 습 니 다.DELETE 명령 은 디스크 공간 을 방출 하지 않 습 니 다.방출 이 필요 하 다 면 OPTIMIZE 명령 을 사용 하여 조각 을 새로 정리 해서 공간 을 방출 합 니 다.
메모:innodb 수정log_file_size 시 원래 로그 파일 을 삭제 해 야 합 니 다.
오류 로그
오류 로그 에 기 록 된 항목:
MariaDB [school]> SHOW GLOBAL VARIABLES LIKE 'log_error'; #
+---------------+------------------------------+
| Variable_name | Value |
+---------------+------------------------------+
| log_error | /var/log/mariadb/mariadb.log |
+---------------+------------------------------+
log_warnings=1|0
기본 값 1(예):오류 로그 파일 에 경고 메 시 지 를 기록 할 지 여부조회 로그
사용자 의 작업 로 그 를 기록 합 니 다.일반적으로 사용 하 는 것 을 권장 하지 않 습 니 다.
MariaDB [school]> SHOW VARIABLES LIKE 'general_log%';
+------------------+-------------+
| Variable_name | Value |
+------------------+-------------+
| general_log | OFF | -- ,
| general_log_file | centos7.log | -- ,/var/lib/mysql/HOSTNAME.log
+------------------+-------------+
MariaDB [school]> SHOW VARIABLES LIKE 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE | -- ,(TABLE|FILE|NONE)
+---------------+-------+
mysql.general_log:표 는 조회 로 그 를 저장 합 니 다.전 제 는 표 로 저장 합 니 다.5.느 린 조회 로그
조회 시간 이 지정 한 시간 을 초과 한 동작 을 기록 합 니 다.
1.느 린 조회 관련 변수
MariaDB [school]> SHOW VARIABLES LIKE 'slow_query%';
+---------------------+------------------+
| Variable_name | Value |
+---------------------+------------------+
| slow_query_log | OFF | --
| slow_query_log_file | centos7-slow.log | --
+---------------------+------------------+
MariaDB [school]> SHOW VARIABLES LIKE 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 | -- , , 10
+-----------------+-----------+
MariaDB [school]> SHOW VARIABLES LIKE 'log_slow%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| log_slow_rate_limit | 1 | -- ,mariadb
| log_slow_verbosity | | -- (Query_plan,explain)
+---------------------+-------+
MariaDB [school]> SHOW VARIABLES LIKE 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF | -- , ; ,
+-------------------------------+-------+
log_slow_filter
:검색 결과 에 따라 필터 링 profiling
검색 어 를 추적 하 는 데 사용 되 는 상세 한 시간
MariaDB [school]> SHOW VARIABLES LIKE 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling | OFF | -- ,
+---------------+-------+
MariaDB [school]> SET profiling=ON; #
MariaDB [school]> SHOW profiles; #
+----------+------------+------------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+------------------------------------------------------------+
| 1 | 0.00024497 | SELECT * FROM students |
| 2 | 0.00038528 | SELECT stuid,name,age FROM students WHERE stuid = 2 |
+----------+------------+------------------------------------------------------------+
MariaDB [school]> SHOW profile FOR query 2; # SQL
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000035 |
| Opening tables | 0.000003 |
| After opening tables | 0.000006 |
| query end | 0.000003 |
| closing tables | 0.000002 |
| freeing items | 0.000011 |
| updating status | 0.000006 |
| cleaning up | 0.000001 |
+----------------------+----------+
6,2 진 로그제출 한 트 랜 잭 션 으로 인해 데이터 가 바 뀌 거나 잠재 적 으로 데이터 가 바 뀌 는 SQL 문 구 를 기록 하고 로그 파일 의 이 벤트 를'리 셋'하여 데이터 사본 을 생 성 하 며 저장 엔진 형식 에 의존 하지 않 습 니 다.
바 이 너 리 로 그 를 엽 니 다.기본적으로 닫 혔 습 니 다.바 이 너 리 로그 와 데 이 터 를 분리 해서 저장 합 니 다.
기록 바 이 너 리 파일 열기 기능:my.cnf 의[my sqld]에 l
og_bin[=/path/somefile]
을 추가 합 니 다.기본 바 이 너 리 로 그 는 데이터베이스 디 렉 터 리 에 있 습 니 다.
mariadb-bin.000001
바 이 너 리 로그 데이터 파일 입 니 다.mariadb-bin.index
바 이 너 리 로그 인덱스 파일1.바 이 너 리 로 그 를 기록 하 는 세 가지 방법:
MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_format';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| binlog_format | STATEMENT | -- ,
+---------------+-----------+
SET binlog_format='ROW|STATEMENT|MIXED'; --
2.바 이 너 리 로그 의 관련 변수
MariaDB [(none)]> SHOW MASTER|BINARY LOGS; -- mariadb
+--------------------+-----------+
| Log_name | File_size |
+--------------------+-----------+
| mariadb-bin.000002 | 290 |
| mariadb-bin.000003 | 264 |
| mariadb-bin.000004 | 529038 |
| mariadb-bin.000005 | 245 |
+--------------------+-----------+
MariaDB [(none)]> SHOW MASTER STATUS; --
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000005 | 245 | | |
+--------------------+----------+--------------+------------------+
MariaDB [(none)]> SHOW BINLOG EVENTS IN 'mariadb-bin.000004' FROM 1 LIMIT 2,3\G --
MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_log_bin'; -- , ON
MariaDB [(none)]> SHOW VARIABLES LIKE 'log_bin'; -- ; OFF, ,
MariaDB [(none)]> SHOW VARIABLES LIKE 'max_binlog_size';
+-----------------+------------+
| Variable_name | Value |
+-----------------+------------+
| max_binlog_size | 1073741824 | -- , , 1G
+-----------------+------------+
MariaDB [(none)]> SHOW VARIABLES LIKE 'sync_binlog';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sync_binlog | 0 | -- , 0,
+---------------+-------+
MariaDB [(none)]> SHOW VARIABLES LIKE 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 0 | -- 。 0,
+------------------+-------+
3.mysqlbinlog 명령
[root@centos7 mysql]# mysqlbinlog --start-position=528864 --stop-position=529019 mariadb-bin.000004 --base64-output=decode-row -v
# at 528864
#180611 20:59:46 server id 1 end_log_pos 528992 Query thread_id=29 exec_time=0 error_code=0
use `school`/*!*/;
SET TIMESTAMP=1528721986/*!*/;
INSERT students(StuID,Name,Age,Gender) VALUES (26,'Tom',22,'M') # SQL
/*!*/;
:180611 20:59:46
:server id 1
:end_log_pos 528992
:Query
ID:thread_id=29
:exec_time=0
:error_code=0
:
GTID:Global Transaction ID,mysql5.6 mariadb10 :GTID
mysqlbinlog mariadb-bin.000001 > file.sql
명령 을 사용 하여 SQL 파일 로 재 설정 하고mysql -uroot -p < file.sql
명령 을 사용 하면 데 이 터 를 직접 가 져 올 수 있 으 며 백업 복원 기능 을 실현 합 니 다.4.바 이 너 리 로그 관리
MariaDB [(none)]> PURGE BINARY LOGS TO 'mariadb.000002'; -- 02, :02
MariaDB [(none)]> PURGE BINARY LOGS BEFORE '2018-01-23'; -- 2018-01-23
MariaDB [(none)]> PURGE BINARY LOGS BEFORE '2017-03-22 09:25:30';
MariaDB [(none)]> RESET MASTER; -- ,index
MariaDB [(none)]> FLUSH LOGS; --
중계 일지relay log
:메 인 복사 구조 에서 서버 에서 메 인 서버 의 바 이 너 리 로그 에서 읽 은 이 벤트 를 저장 하 는 데 사 용 됩 니 다.총결산
이 글 은 여기까지 입 니 다.당신 에 게 도움 을 줄 수 있 기 를 바 랍 니 다.또한 당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주 기 를 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.