MySQL日志
日志类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:
日志文件 | 记入文件中的信息类型 |
---|---|
错误日志 | 记录启动、运行或停止时出现的问题。 |
查询日志 | 记录建立的客户端连接和执行的语句。 |
二进制日志 | 记录所有更改数据的语句。主要用于复制和即时点恢复。 |
慢日志 | 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。 |
事务日志 | 记录InnoDB等支持事务的存储引擎执行事务时产生的日志。 |
二进制日志:如何删除?
不能使用rm-f删除文件,有可能会导致下次重启数据库服务器时崩溃,应使用
1、备份类型
热备份、温备份、冷备份 (根据服务器状态):
热备份:读、写不受影响;
温备份:仅可以执行读操作;
冷备份:离线备份;读、写操作均中止;
物理备份与逻辑备份 (从对象来分):
物理备份:复制数据文件;
逻辑备份:将数据导出至文本文件中;
完全备份、增量备份、差异备份 (从数据收集来分):
完全备份:备份全部数据;
增量备份:仅备份上次完全备份或增量备份以后变化的数据;
差异备份:仅备份上次完全备份以来变化的数据;
备份案例:
素材准备:
mysql> create database school;
Query OK, 1 row affected (0.01 sec)
mysql> use school
Database changed
mysql> CREATE TABLE `Student` (
-> `Sno` int(10) NOT NULL COMMENT '学号', `Sname` varchar(16) NOT NULL COMMENT '姓名',
-> `Ssex` char(2) NOT NULL COMMENT '性别', `Sage` tinyint(2) NOT NULL DEFAULT '0' COMMENT '学生年龄',
-> `Sdept` varchar(16) DEFAULT 'NULL' COMMENT '学生所在系别', PRIMARY KEY (`Sno`)
-> ) ;
Query OK, 0 rows affected, 2 warnings (0.09 sec)
mysql> INSERT INTO `Student` VALUES (1, '陆亚', '男', 24, '计算机网络'),(2, 'tom', '男', 26, '英语'),(3, '张阳', '男', 21, '物流管理'), (4, 'alex', '女', 22, '电子商务');
Query OK, 4 rows affected (0.02 sec)
Records: 4 Duplicates: 0 Warnings: 0
完全备份:
root@localhost mysqlbak\]# mysqldump --opt -B school \> school.sql 插入数据: INSERT INTO Student values(0005,'xumubin','男',29,'中文专业'),(0006,'wangzhao','男',21,'导弹专业'); 模拟数据损坏: mysql\> drop database school; Query OK, 1 row affected (0.03 sec) 刷新并保存日志: mysql\> flush logs; Query OK, 0 rows affected (0.02 sec)
Mysql8.0版本的bin_log默认开启,查看的两种方式:


为了避免数据损坏,将binlog文件拷贝出来
root@openEuler-1 \~\]# cp /var/lib/mysql/binlog.000001 /Mysql-files # 查看二进制日志使用mysqlbinlog #注意5.7版本,insert语句已经加密,默认看不到,查看时加上选项 --base64-output=DECODE-ROWS -vv \[root@openEuler-1 Mysql-files\]# mysqlbinlog binlog.000001 --base64-output=DECODE-ROWS -vv #完全备份 \[root@openEuler-1 Mysql-files\]# mysqlbinlog Mysql-files/binlog.000001 #增量被封 mysql\> source /root/Mysql-files/time1.sql #位置点恢复 \[root@openEuler-1 Mysql-files\]mysqlbinlog binlog.000001 --start-position=1392 --stop-position=1591 -r pos1.sql