MySQL 日志
img
错误日志
作用:解决MySQL故障,排错
默认是否开启:开启
路径/名字:$datadir/$hostname.err
[root@db01 data]# mysqladmin variables|grep 'error'
编辑配置文件
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
log_error=/application/mysql/data/$hostname.err
查看方式
mysql> show variables like 'log_error';
一般查询日志
作用:记录mysql所有执行成功的SQL语句信息,可以做审计用,但是我们很少开启。
默认是否开启:关闭
路径/名字:$datadir/$hostname.log
[root@db01 data]# mysqladmin variables |grep 'gen'
general_log OFF
general_log_file /application/mysql-5.6.40/data/db01.log
mysql> show variables like '%gen%';
+------------------+-----------------------------------------+
| Variable_name | Value |
+------------------+-----------------------------------------+
| general_log | OFF |
| general_log_file | /application/mysql-5.6.40/data/db01.log |
+------------------+-----------------------------------------+
vim /etc/my.cnf
general_log=1
慢日志
show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 2 | root | localhost | NULL | Query | 0 | init | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
mysql> show full processlist;
+----+------+-----------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+-----------------------+
| 2 | root | localhost | NULL | Query | 0 | init | show full processlist |
+----+------+-----------+------+---------+------+-------+-----------------------+
作用: 1)是将mysql服务器中影响数据库性能的相关SQL语句记录到日志文件
2)通过对这些特殊的SQL语句分析,改进以达到提高数据库性能的目的
默认是否开启:关闭
路径/名字:$datadir/$hostname-slow.log
[root@db01 ~]# mysqladmin variables |grep 'slow'
slow_query_log OFF
slow_query_log_file /application/mysql-5.6.40/data/db01-slow.log
如何开启:
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
#指定是否开启慢查询日志
slow_query_log = 1
#指定慢日志文件存放位置(默认在data)
slow_query_log_file=/application/mysql/data/slow.log
#设定慢查询的阀值(默认10s)
long_query_time=0.05
#不使用索引的慢查询日志是否记录到日志
log_queries_not_using_indexes
#查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
min_examined_row_limit=100(鸡肋)
模拟慢查询
mysql> use test
mysql> create table city select * from world.city;
mysql> insert into city select * from city;
mysql> show processlist;
+----+------+-----------+------+---------+------+--------------+-------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+--------------+-------------------------------------+
| 2 | root | localhost | NULL | Query | 0 | init | show processlist |
| 5 | root | localhost | test | Query | 9 | Sending data | insert into city select * from city |
+----+------+-----------+------+---------+------+--------------+-------------------------------------+
2 rows in set (0.01 sec)
mysql> kill 5;
Query OK, 0 rows affected (0.00 sec)
[root@db01 ~]# yum localinstall -y percona-toolkit-3.0.11-1.el6.x86_64.rpm
MySQL 备份
1.做备份就是为了恢复
2.第一个是保护公司的数据
3.尽量减少数据的丢失(公司的损失)
备份类型
1.冷备
停服务,做备份
2.温备
(不停服务)在备份的过程中,会锁表,用户无法往表中写入数据
3.热备
(不停服务)在备份过程中,不会锁表,用户随意写数据
备份策略
**1.全量备份**
将所有的数据,做备份
**2.增量备份**
基于上一次数据备份的,新数据备份
**3.差异备份**
基于全备数据的,新数据备份
备份工具
1.逻辑备份
1.mysqlbinlog
2.mysqldump
3.into outfile(导出数据结果)
4.binlog(备份SQL语句,DML,DCL,DDL,DTL)
5.replication(主从复制-延时从库)
2.物理备份
1.cp /application/mysql/data
2.Xtrabackup
### MySQL逻辑备份-mysqldump
mysqldump
-u:指定用户
-p:指定密码
-h:指定主机域
-S:指定socket文件
-P:指定端口
1.全备参数:-A
[root@db02 ~]# mysqldump -A > /tmp/full.sql
2.指定库备份:-B(指定多个库)
[root@db02 ~]# mysqldump -B zls1 > /tmp/zls1.sql
多了一条建库语句,use语句
mysql < /tmp/zls1.sql
3.什么都不加:备份库中的表
[root@db02 ~]# mysqldump zls1 > /tmp/zls1_1.sql
mysql> create database zls1;
mysql> use zls1; source /tmp/zls1_1.sql
mysql zls1 < /tmp/zls1_1.sql
4.备份时,刷新binlog:-F
[root@db01 ~]# mysqldump -A -F > /tmp/full_F.sql
[root@db01 ~]# mysqldump -B mysql zls -F > /tmp/full_F.sql
5.打点备份:--master-data=2
=2是注释
[root@db02 ~]# mysqldump -A --master-data=2 > /tmp/full1.sql
=1 不注释
[root@db02 ~]# mysqldump -A --master-data=1 > /tmp/full1.sql
=0 关闭
[root@db02 ~]# mysqldump -A --master-data=0 > /tmp/full1.sql
6.热备参数:--single-transaction(快照备份)
[root@db02 ~]# mysqldump -A --master-data=2 --single-transaction > /tmp/full2.sql
7.-R(备份函数,存储过程),--triggers
[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction > /tmp/full2.sql
8.压缩备份:gzip
[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction > /tmp/full2.sql
#解压到数据库
zcat /tmp/full_2019-12-10.sql.gz | mysql -uroot -p123
start-position
网友评论