mysql> show variables like '%log%';

+-----------------------------------------+------------------------------------+

| Variable_name                           | Value                              |

+-----------------------------------------+------------------------------------+

| back_log                                | 50                                 |

= 백로그 설정. 

일반적으로 OS 커널의 소켓 당 백로그 ( somaxconn ) 값보다는 작아야 함.

| binlog_cache_size                       | 32768                              |

= 바이너리 로그(트랜젝션되는) 기록 전 선행 캐쉬값 설정. 

이 수치보다 큰 트랜잭션은 disk ( tmpdir ) 에 임시파일을 쓰게 됌.

= cache_disk_use의 value 가 많아지는 경우, 이 값을 늘리면 좋다. 

| binlog_direct_non_transactional_updates | OFF                                |

= Slave 서버에서 트랜잭션 + 비 트랜잭션의 동시 프로세스가 일어날 경우 문제.

enable 해 주면, cache 등의 과정을 생략하고 무조건 바이너리 로그에 바로 기록.

| binlog_format                           | STATEMENT                          |

= 바이너리 로그 포맷 설정. STATEMENT(쿼리 순차)가 Default.

ROW(데이터 기반), MIXED(다이나믹) 등이 더 있으며

5.7.6이상에서는 ROW 가 Default 이다. 

| expire_logs_days                        | 2                                  |

= 바이너리 로그 보관 기간. default 는 0으로 기간없이 저장함. 

디스크 용량 purge 로 확보하는 것보다, 이 기간을 설정해 두면 좋음.

| general_log                             | OFF                                |

= 실행 쿼리를 기록하는 General_log 설정.

= 쉘 상에서 입력 실행을 받는순간, 실행보다 먼저 기록되는 수준으로

잘못된 쿼리나, 명령어까지 그대로 기록하는 로그임.  

Binary Log 는 쿼리 처리 후 변경된 시점/결과를 기록하는 것으로 쿼리구문이 없음. 주로 특정 시점 복구나, 리플리케이션에 사용함. 용도가 다름. 

| general_log_file                        | /usr/local/mysql/var/Web1.log      |

= General_log 의 파일명 및 경로 설정. my.cnf 에도 지정 가능.

| innodb_flush_log_at_trx_commit          | 1                                  |

= innodb 의 쿼리 로그 실행시 패턴 설정

0 : 쿼리 실행시 실행/취소 여부 상관없이, 1초 간격으로 메모리 버퍼에서 디스크 쓰기 후 flush 실행

( 1보다 빠름. 문제 발생시 0~1초 사이의 log 가 유실될 수 있음 )

1 : 쿼리 실행시, 우선 로그를 버퍼->디스크까지 다 쓰고, 결과/취소가 결정 후 flush.  

( 0 보다, 디스크 입출력 횟수가 증가하지만,  log 손실이 없는 안정적 방법 )

2: 혼합. 로그를 버퍼에 우선 다 밀어넣지만 디스크로 flush 를 하지 않음.

대신 실행/취소 결과 결정 시 1초 간격으로 디스크로 flish 함.

( MySQL 장애 시에도 로그 보존. 단 OS 리부팅 시 0~1초 문제 생길 수 있음 ) 

| innodb_locks_unsafe_for_binlog          | OFF                                |

= innodb 의 검색과 인덱싱에서 next_key_locking 활성화 여부.

| innodb_log_buffer_size                  | 1048576                            |

= 바이트. innodb에서 트랜잭션을 버퍼에 기록하는 용량. 1~8MB 지정 가능.

트랜잭션의 크기보다 이 버퍼가 클 경우, disk기록하지 않고 메모리에서 바로 commit 처리하므로 속도 향상 가능.

| innodb_log_file_size                    | 5242880                            |

= 그룹의 innodb log 파일사이즈이며 최대 4G까지 가능.

이 값이 크면, 플러시 횟수가 줄어, 속도는 향상되지만, 장애 발생시 시점, 처리복구 인덱싱 시간이 오래 걸리는 점을 유의.  

| innodb_log_files_in_group               | 2                                  |

= 그룹 안에서 innodb log 파일 갯수. 디폴트는 logfile0, 1의 2개로 구성. 

| innodb_log_group_home_dir               | ./                                 |

= 로그파일의 위치. 디폴트는 MySQL data 경로.

| innodb_mirrored_log_groups              | 1                                  |

= 보존용 복제 log 의 개수. 보통은 변경하지 않는다. 


| log                                     | OFF                                |

= general , binary 등으로 대체되었으므로, 건드릴 필요 없음.

| log_bin                                 | ON                                 |

= binary log 활성화 유무

| log_bin_trust_function_creators         | OFF                                |

| log_bin_trust_routine_creators          | OFF                                |

| log_error                               | /usr/local/mysql/var/Web1.err      |

| log_output                              | FILE                               |

| log_queries_not_using_indexes           | OFF                                |

| log_slave_updates                       | OFF                                |

| log_slow_queries                        | ON                                 |

| log_warnings                            | 1                                  |

| max_binlog_cache_size                   | 18446744073709547520               |

| max_binlog_size                         | 1073741824                         |

| max_relay_log_size                      | 0                                  |

| relay_log                               |                                    |

| relay_log_index                         |                                    |

| relay_log_info_file                     | relay-log.info                     |

| relay_log_purge                         | ON                                 |

| relay_log_space_limit                   | 0                                  |

| slow_query_log                          | ON                                 |

| slow_query_log_file                     | /usr/local/mysql/var/Web1-slow.log |

| sql_log_bin                             | ON                                 |

| sql_log_off                             | OFF                                |

| sql_log_update                          | ON                                 |

| sync_binlog                             | 0                                  |

+-----------------------------------------+------------------------------------+

38 rows in set (0.00 sec)


환경변수 제어는 set global 로 대부분 실시간 제어가능 합니다

flush privileges; 는 기본으로 달고 살면 좋겠죠. 



'Linux ( Cent OS ) > MySQL' 카테고리의 다른 글

CentOS MySQL Yum Repository  (0) 2019.06.19
[실무 예시] MySQL Table 비우기  (0) 2019.05.13
7. Binary Log 삭제  (0) 2019.05.02
블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,