Mysql的备份还原

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-filesmysqlbinlog binlog.000001 --start-position=1392 --stop-position=1591 -r pos1.sql

相关推荐
虎头金猫13 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站15 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏16 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅16 小时前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren17 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼17 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘17 小时前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥18 小时前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝18 小时前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
Lsetea18 小时前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链