前言看完本文,删库跑路!? 再也不可能发生了!一定要养成风险操作备份数据的习惯,避免恢复数据浪费时间 。
本文内容:
- binlog 的作用
- MySQLdump 和 mysqlbinlog 做数据备份和数据恢复 。
- XtraBackup 全量备份和增量备份
文章插图
binlog 作用及配置Mysql 的
binlog
(二进制日志) 是 Server
层的,不管你的存储引擎是什么都可以使用 binlog
。binlog
记录的是数据库 DML
和 DDL
修改的数据内容,也可以用于数据的备份与恢复 。一般我们会用binlog
也用于主从复制,从库请求主库的 binlog
写入到自己的中继日志,然后将中继日志转换为 sql
,然后将 sql 执行在从库执行 。-- 查看是否开启 binlogSHOW VARIABLES LIKE '%log_bin%'mysql> SHOW VARIABLES LIKE '%log_bin%';+---------------------------------+-----------------------------+| Variable_name| Value|+---------------------------------+-----------------------------+| log_bin| ON|| log_bin_basename| /var/lib/mysql/binlog|| log_bin_index| /var/lib/mysql/binlog.index || log_bin_trust_function_creators | OFF|| log_bin_use_v1_row_events| OFF|| sql_log_bin| ON|+---------------------------------+-----------------------------+
开启二进制日志配置log_bin
配置是否启用 binlog
。Mysql 8.0
默认开启 binlog
。log_bin_index
配置的是 binlog
日志文件的索引信息 。这个配置最好配置了之后不要修改 。log_bin_basename
配置的是 binlog
日志的基础路径名称 。server_id
这个也需要配置,在一个集群中这个数字不能重复 。sql_log_bin
配置当前会话 DML 和 DDL 语句是否记录 。[root@centos-7 mysql]# pwd/var/lib/mysql[root@centos-7 mysql]# ll | grep binlog-rw-r-----. 1 mysql mysql16162 11月 21 15:58 binlog.000013-rw-r-----. 1 mysql mysql179 11月 21 15:58 binlog.000014-rw-r-----. 1 mysql mysql3765 11月 22 14:42 binlog.000015-rw-r-----. 1 mysql mysql1700 11月 23 23:40 binlog.000016-rw-r-----. 1 mysql mysql64 11月 22 14:42 binlog.index[root@centos-7 mysql]#
binlog 日志格式-- 查看当前 binlog 文件存储什么数据SHOW VARIABLES LIKE '%binlog_format%';
binlog
日志格式有以下三种STATEMENT记录的是 sql 语句 。
ROW
Mysql 8.0
默认采用这个格式 。记录每行的修改 。相较于 STATEMENT
它可能记录的内容会更多,但是主从复制时更安全 。比如全表更新
update test set a=1;
STATEMENT
只会记录这个 sql
,而 ROW
会记录所有数据的修改 。MIXED当需要时,Mysql 将日志格式从
STATEMENT
切换为 ROW
。比如说更新语句可能记录为逻辑 sql (
STATEMENT
),而插入语句记录为(ROW
) 格式 。binlog 日志格式验证创建一张表,插入 10 w 数据
DROP TABLE IF EXISTS `account`;CREATE TABLE `account` (`id` int NOT NULL AUTO_INCREMENT,`username` varchar(255) DEFAULT NULL,`age` int DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=100000 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;DROP PROCEDURE if EXISTS insertData;CREATE PROCEDURE insertData ( )BEGINDECLARE i INT DEFAULT 1;WHILE i < 10000 DOSET i = i + 1;INSERT INTO account ( username, age )VALUES( '测试', 12 );END WHILE;END;CALL insertData ( );
binlog_format
在ROW
模式下记录的是每行数据的修改
mysql> SHOW BINLOG EVENTS IN 'binlog.000018' limit 10;+---------------+-------+----------------+-----------+-------------+--------------------------------------+| Log_name| Pos| Event_type| Server_id | End_log_pos | Info|+---------------+-------+----------------+-----------+-------------+--------------------------------------+| binlog.000018 |4 | Format_desc|1 |125 | Server ver: 8.0.21, Binlog ver: 4|| binlog.000018 |125 | Previous_gtids |1 |156 ||| binlog.000018 |156 | Anonymous_Gtid |1 |236 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' || binlog.000018 |236 | Query|1 |322 | BEGIN|| binlog.000018 |322 | Table_map|1 |386 | table_id: 99 (ceshi2.account)|| binlog.000018 |386 | Update_rows|1 |8600 | table_id: 99|| binlog.000018 |8600 | Update_rows|1 |16814 | table_id: 99|| binlog.000018 | 16814 | Update_rows|1 |25028 | table_id: 99|| binlog.000018 | 25028 | Update_rows|1 |33242 | table_id: 99|| binlog.000018 | 33242 | Update_rows|1 |41456 | table_id: 99|+---------------+-------+----------------+-----------+-------------+--------------------------------------+
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 才买的茶有霉味怎么办,买茶的时候如何区分干仓与湿仓
- MySQL的 join 操作弱爆了?
- 白沙溪茶的功效与作用,花砖茶的由来与特征
- 蛮砖古茶山及口感特点,蛮砖古茶山资料简介与普洱茶特点
- 百合茶的功效和作用,百合花茶的功效作用与泡法
- 六大类茶与菜肴的配搭,配搭功效不样的的花草茶
- 学葫芦丝的方式与技巧
- 巴马藤茶的功效与作用,藤婆茶的功效与作用有哪些
- 白河歌风茶简介,茶与对联是中国文化中极为出彩的喻世或抒情
- 化妆|“会化妆”与“不会化妆”的女人,看眉毛和口红就知道:差别太大