lujiguo115 发表于 2018-10-6 10:41:37

mysql的服务日志与备份命令

  mysqlbinlog:
  用于解析binlog日志。在data目录下面,mysql.index是mysqlbinlog的索引文件。binlog的作用是记录mysql内部的增删改。不对select做记录。
  选项:
  1.-d dbname:用于拆库,把指定库的二进制日志分割出来
  2.--start-position;--stop-position      mysqldump mysql-bin.000006 --start-position=486 --stop-position=1156 > test.sql
  master-data=
  当为2时,会将master_log_pos那行注释掉,当为1时,会将master_log_pos那行不注释。
  等于1的作用,当做主从同步的时候,使用--master-data=1,master_log_pos那行不注释,将全备倒入到从库执行时,master_log_pos会告诉应该从主库的什么地方开始进行恢复。
  mysql数据库中的日志文件
  错误日志(error log):记录mysql服务进程mysqld在启动和关闭或运行过程中遇到的错误日志
  查询日志:
  普通查询日志(query log):记录客户端连接信息和执行sql语句信息
  慢查询日志(slow query log):记录执行时间超出指定值的sql语句或者是执行没有索引的sql语句(优化慢查询sql语句是DBA要做的)
  二进制日志(binary log):记录数据被修改的相关信息:
  错误日志:在data数据目录下以err结尾的
  二进制日志:bin-log
  普通查询日志和慢查询日志一般不打开,日志文件太大了
  对于普通日志:
mysql> show variables like '%log%';
  使用set将其打开:
mysql> set global general_log = ON;  
Query OK, 0 rows affected (0.01 sec)
  然后随便创建或者查询几个表,都会在localhost.log这个文件中记录

  慢查询:(在/etc/my.cnf配置)

[*]  #查询时间超过1秒的sql语句会被记录
[*]  long_query_time=1
[*]
[*]  #记录没有使用索引的查询
[*]  log_queries_not_using_indexes=1
[*]  #记录慢查询日志的文件地址
[*]  slow-query-log-file=/usr/local/mysql/localhost-slow.log
  binlog日志有3种模式。


页: [1]
查看完整版本: mysql的服务日志与备份命令