mysql 使用binlog恢复数据

转换binlog二进制文件:

mysqlbinlog --no-defaults --database=zjtestdb --base64-output=decode-rows -v --start-datetime="2021-03-04 16:00:00" --stop-datetime="2021-03-04 16:20:00" /home/software/mysql-8.0.23/data/binlog.000011    > /home/software/mysql-8.0.23/data/aa.txt

命令解释:

将binlog.000011文件中日期为2021-03-04 16:00:00到2021-03-04 16:20:00的内容转换为aa.txt文本文件。主要用于确定数据的恢复区间。

--database:指定数据库。

--base64-output:将文件进行base64解码,得到的文件可以看到sql语句。

--start-datetime:开始时间。

--stop-datetime:结束时间。

--start-position:开始节点。

--stop-position:结束节点。

mysqlbinlog恢复数据:

mysqlbinlog --start-position=3540 --stop-position=4037 /home/software/mysql-8.0.23/data/binlog.000011 | mysql -uroot -p;

命令解释:

将binlog.000011中编号为3540~4037的内容执行一遍。如果删除了表中的一条记录,可以找到它插入时的binlog日志将记录恢复。

binlog.000011文件内容:

mysql日志文件:

1.binlog日志

二进制日志,记录用户的数据变更操作。日志里记录了操作的sql语句。能够用来恢复数据,完成数据库的主从复制。

2.redo日志

重做日志,记录了事务提交后的数据。当事务提交后,变更的数据从内存持久化到磁盘时发生异常(数据库宕机等),可以使用重做日志将变更后的数据持久化。

3.undo日志

回滚日志,记录了事务提交前的数据。当事务发生回滚时,使用undo日志将数据恢复到变更前。

4.error日志

记录数据库服务执行过程中的error,warn等信息。

数据备份:

对指定的表备份:mysqldump -u root -p 数据库名 表名 > mytb.sql

mytb.sql将包含建表语句和插入语句。

mysql基本命令:

mysql的默认用户是root,首次登录无需密码,直接输入mysql可以进入。登入后需改root密码,使用mysql -u root -p登录。

(oracle默认用户是oracle,使用sqlplus / as sysdba可登录)

进入mysql: mysql -u root -p

启动mysql::service mysql start

关闭mysql:service mysql stop

mysql的架构体系:

mysql主从复制:

mysql的索引原理:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值