mysql的备份和恢复

备份:完全备份 增量备份

完全备份:将整个数据库完整的进行备份

增量备份:在完全备份的基础之上,对后续新增的内容进行备份

备份的需求

1、在生产环境中,数据的安全至关重要,任何数据的都可能产生非常严重的后果

2、数据为什么会丢失,程序操作,运算错我,磁盘故障,不可预期的时间(地震之类),人为操作

冷备份:关机备份,停止mysql服务,然后进行备份

热备份:开机备份,无须关闭mysql服务,进行备份

物理备份:对数据库系统的物理文件(数据文件,日志文件),进行备份

逻辑备份,只是对数据库的逻辑组件进行备份,(表结构),以sql语句的形式,把库,表结构,表数据进行备份保存

(直接在数据库系统中删除全部文件)

物理备份:完全备份,对整个数据库进行完整的打包备份

优点:操作简单

缺点:数据库文件占用量是很大,占用空间太大,备份和恢复的时间很长,且需要暂定数据库服务

打包备份最好是把服务关掉,避免有新的数据进入,被覆盖,也可能会导致恢复失败

冷备份实验

终端
关闭mysql服务

 systemctl stop mysqld.service 
安装xz服务

yum -y install xz
进入mysql目录下

cd /usr/local/mysql/
打包
tar Jcvf /opt/mysql_all_$(date+%F).tar.xz  data
解压刚刚压缩的文件

cd  /opt/

tar Jxvf mysql_all_.tar.xz
删除源文件

恢复数据
把解压过的文件复制到mysql的目录下

表数据没有发生变化,保持原有的数据

远程复制

把终端2 的mysql的data文件删除

通过远程复制,复制终端1的mysql的data文件到终端2

在复制mysql目录下

注意点:在复制到mysql目录下查看data文件的文件所属ll

热备份当中的逻辑备份

mysqldump 这是mysql自带的工具

mysqldump

备份单个库

mysqldump -u root -p123456 --databases 库名 > /opt/文件名.sql

备份多个库

mysqldump -u root -p123456 --databases 库名1 库名2 > /opt/文件名.sql

备份所有库

mysqldump -u root -p123456 --all-databases > /opt/文件名.sql

指定连接mysql之后执行完命令,自动退出

mysql -u root -p123456 -e 'show databases;'

实例

备份单个库

删除这个库

还原 

命令行备份和恢复

创建库
create database xiaobu;
创建表
create table info (
  id int(4) not null primary key,
  name char(5) default null,
  hobby varchar(10) default null
);
对多个库备份
备份
mysqldump -u root -p --databases 库名1 库名2 > /opt文件名.sql
删除
mysql -u root -p -e 'drop database 库名1;'
mysql -u root -p -e 'drop database 库名2;'
恢复多个
mysql -u root -p < /opt/库名.sql

备份所有
mysqldump -uroot -p --all-databases > /opt/	文件名.sql
删除
mysql -u root -p -e 'drop database 库名1;'
mysql -u root -p -e 'drop database 库名2;'
恢复多个
mysql -u root -p < /opt/库名.sql

如何恢复指定库,指定表

单个表备份
mysqldump -u root -p 库名 表名 > /opt/文件名.sql
不进入数据库删除
mysql -u root -p -e 'drop table 库名.表名'
恢复
mysql -u root -p 库名 < /opt/文件名.sql

多个表
mysqldump -u root -p 库名 表名1 表名2  > /opt/文件名.sql
删除
mysql -u root -p -e 'drop table 库名.表名1'
mysql -u root -p -e 'drop table 库名.表名2'
恢复
mysql -u root -p 库名 < /opt/文件名.sql

物理冷备份和物理热备份

特点:简单

数据量,占用的备份空间比较大

mysqldump 这是mysql自带的备份文件的命令

特点:方便,简单,但是只能给予逻辑上的表结构和表数据恢复,物理删除之后再用逻辑恢复会报错

它也可以作为数据迁移,占用大空间,比较物理备份相对来说占的空间要小的多

增量备份

mysqldump 支持增量备份

没有重复数据,备份量小,时间端

mysqldump增量备份恢复表数据期间,表会锁定(优点)

缺点:备份时锁表,必然会影响业务,超过10G,耗时会比较长,导致服务不可用

增量备份的过程

1、mysql提供的二进制日志文件的实现增量备份

二进制文件怎么来?

修改配置文件(vim /etc/my.conf)

log-bin=mysql-bin
​
binlog_format=MIXED 

mysql二进制记录格式有三种

1、STATENET:基于sql语句

纪录修改的sql语句,高并发情况下,纪录sql语句时候的顺序可能会出错,恢复数据时可能会导致丢失和误差,效率比较高

2、ROW:基于行

精确纪录每一行的数据,准确率高,但是恢复的时效率低

3、MIXED :既可以根据SQL语句,也可以根据行

在正常情况下使用STATEENT,一旦发生高并发,会智能自动切换到row行

重启服务

查看备份的二进制文件(必须在data目录下查看)

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001

mysqladmin -u root -p flush-logs 刷新日志文件(打印断点)

就会生成一个日志文件00002

删除表里的内容(删除之前要断点)

如何恢复

mysqlbinsql --no-defaults mysql-bin.000003 | mysql -u root -p

  1. 增量备份,位置节点和时间点,注意一下断点

基于位置节点

从某一个点开始,恢复到最后

mysqlbinlog --no-defaults --start-position='位置点' 文件名 | mysql -u root -p

从开头,一直恢复到某个位置

mysqlbinlog --no-defaults --stop-position='位置点' 文件名 | mysql -u root -p

从指定点---指定结束点

mysqlbinlog --no-defaults --start-position='位置点' --stop-position='位置点' 文件名 | mysql -u root -p

从某一个点开始,恢复到最后

从开头,一直恢复到某个位置

从指定点---指定结束点

基于时间点

1、从某个时间点开始 恢复到最后

mysqlbinlog --no-defaults --start-datetime='时间点' 文件 | mysql -u root -p

2、从开头,到指定的结尾时间点

mysqlbinlog --no-defaults --stop-datetime='时间点' 文件 | mysql -u root -p

3、指定时间范围

mysqlbinlog --no-defaults --start-datetime='时间点'  --stop-datetime='时间点' 文件 | mysql -u root -p

从某个时间点开始 恢复到最后

从开头,到指定的结尾时间点

指定时间范围

总结

在生产中,通过binlog进行增量恢复是非常好用的方法

我们只要需要对binlog文件进行备份,随时可以进行备份和恢复

附加题

写个脚本,每个月的20号,对数据库打一个断点

断点之后进行自动进行增量备份

如何纪录日志文件的错误日志

log-error=/usr/local/mysql/data/mysql_error.log

general_log=ON

general_log_file=/usr/local/mysql/data/mysql_general.log

slow_query_log=ON

slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log

long_query_time=5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/121489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP保存时自动删除末尾的空格,phpstorm自动删除空白字符串

最近有个活儿&#xff0c;修改一个财务软件。 修改后给客户验收的过程中&#xff0c;客户反应有一个txt表格导出功能不能用了。之前是好的。 这次是新增&#xff0c;老的这个功能碰都没碰过&#xff0c;怎么能有问题呢&#xff1f;我心里OS 下班后我立马用系统导出TXT&#…

如何实现Debian工控电脑USB接口安全管控

Debian 作为工控电脑操作系统具有稳定性、安全性、自定义性和丰富的软件包等优势&#xff0c;适用于要求高度可靠性和安全性的工控应用。 Debian 作为工控电脑操作系统在工业控制领域有很大优势&#xff0c;包括&#xff1a; 稳定性&#xff1a;Debian 的发布版以其稳定性而闻…

ThinkPHP框架 开源 虚拟资源分享付费下载PHP网站源码

源码测评&#xff1a;非常不错的资源分享网站&#xff0c;仿的是之前的码农网&#xff0c;这个网站也是在码农网的源码基础上修改而来&#xff0c;这个是用ThinkPHP仿的&#xff0c;还不错&#xff0c;测试的时候发现后台上传图片报错&#xff0c;其他暂时没有发现。 转载自…

Leetcode刷题【hot100】盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 示例…

OpenAI 工程师平均薪酬 92.5 万美元;SpaceX 明年将每两天发射一次丨 RTE 开发者日报 Vol.81

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【爬虫与反爬虫】从技术手段与原理深度分析

文章目录 1. 爬虫的基本概念1.1. 什么是爬虫1.2. 爬虫的价值1.3. 爬虫的分类 3. 爬虫技术原理与实现4. 反爬虫基本概念4.1. 什么是反爬虫4.2. 反爬虫的目的4.3. 反什么样的爬虫 5. 由浅到深的反爬虫技术手段5.1. 主动常见型反爬虫5.1.1. 基于爬虫行为5.1.2. 基于身份识别 6. 被…

Banana Pi BPI-M6(Raspberry Pi 5 替代品)初始设置及固件烧录

Banana Pi BPI-M6&#xff1a;初始设置和镜像烧录 Banana Pi BPI-M6 的首次测试 在上一篇文章中&#xff0c;我比较了Banana Pi BPI-M6和Raspberry Pi 5的硬件特性。两者都拥有出色的硬件技术&#xff0c;在性能方面应该不会有太大的问题。 今天我想测试一下 Banana Pi。作为…

Zabbix“专家坐诊”第210期问答汇总

问题一 Q&#xff1a;zabbix触发器条件基于历史趋势的函数有示例吗&#xff1f;还有这些基于历史趋势的函数&#xff0c;具体是读取历史表还是趋势表&#xff1f; A&#xff1a;读历史表&#xff0c;示例可以看看官网的。 https://www.bookstack.cn/read/zabbix-5.0-zh/37cf0…

Qt实现自定义多选下拉列表

目录 前言1、 功能描述2、代码实现总结 前言 本文记录了一种通过继承 QComboBox 实现下拉列表多选功能的方法。效果如下图所示&#xff1a; 1、 功能描述 普通的下拉列表只支持选择一个选项&#xff0c;在软件开发过程中&#xff0c;经常会遇到下拉列表支持选择多个选项的需…

网络原理---拿捏网络层:IP协议

文章目录 IP协议4位版本4位首部长度、选项8位服务类型&#xff08;TOS&#xff09;16位总长度16位标识、3位标志、13位片偏移8位生存时间&#xff08;TTL&#xff09;8位协议16位首部校验和32位源IP地址、32位目的IP地址解决IP地址不够用的问题动态分配IP地址NAT机制&#xff0…

RPA处理重复工作,助力高效资金管理

在瞬息万变的市场竞争中&#xff0c;众多企业开展多元化经营以获取最大的经济效益。然而&#xff0c;企业的多元化经营程度越高&#xff0c;协调活动可能造成的决策延误也越多&#xff0c;其资金管理往往将面临更大的考验。随着新技术的发展&#xff0c;更多具备多元产业的企业…

关于卷积神经网络的填充(padding)

认识填充 &#xff08;padding&#xff09; 随着卷积层数的加深&#xff0c;输出进一步缩小&#xff0c;那么最终会导致输出很快就只剩下1∗1的数组&#xff0c;这也就没办法继续计算了&#xff0c;所以提出了填充的方法来方便网络的进一步加深。 其实填充的原因有两点&#xf…

亚马逊云科技Zero ETL集成全面可用,可运行近乎实时的分析和机器学习

亚马逊云科技数据库、数据分析和机器学习全球副总裁Swami Sivasubramanian曾指出&#xff1a;“数据是应用、流程和商业决策的核心。”如今&#xff0c;客户常用的数据传输模式是建立从Amazon Aurora到Amazon Redshift的数据管道。这些解决方案能够帮助客户获得新的见解&#x…

“2024杭州国际物联网展览会”定于4月份在杭州国际博览中心召开

随着科技的飞速发展&#xff0c;物联网已经成为当今社会的一个重要组成部分。物联网技术正在逐渐渗透到各个领域&#xff0c;为人们的生活带来更多的便利和智慧。物联网的发展趋势将受到技术、应用、安全等多方面的影响和推动。未来&#xff0c;物联网将更加智能化、自主化和安…

使用Docker部署开源分布式任务调度系统DolphinScheduler

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 使用Docker部署开源分布式任务调度系统DolphinScheduler 文章目录 使用Docker部署开源分布式任务…

Bun 1.0.7 版本发布,实现多个 Node.js 兼容改进

导读Bun 是一个集打包工具、转译器和包管理器于一体的 JavaScript 运行时&#xff0c;由 Jarred Sumner 发布了 1.0.7 版本。本次更新实现了对 Node.js 运行时的多项兼容性改进&#xff0c;并修复了近 60 个 bug。 根据发布说明&#xff0c;本版本对 “bun install” 命令进行…

【机器学习】六、概率图模型

今天我们对概率图模型&#xff08;Probabilistic Graphical Model&#xff0c;PGM&#xff09;做一个总结。 模型表示 概率图模型&#xff0c;是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型。 它提出的背景是为了更好研究复杂联合概率分布的数据特征&#x…

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址&#xff0c;并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…

在Linux中搭建Mosquitto MQTT协议消息服务端并结合内网穿透工具实现公网访问

文章目录 前言1. Linux 搭建 Mosquitto2. Linux 安装Cpolar3. 创建MQTT服务公网连接地址4. 客户端远程连接MQTT服务5. 代码调用MQTT服务6. 固定连接TCP公网地址7. 固定地址连接测试 前言 Mosquitto是一个开源的消息代理&#xff0c;它实现了MQTT协议版本3.1和3.1.1。它可以在不…

GZ038 物联网应用开发赛题第1套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 (第1套卷) 工位号:______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具,操作安全规范; 2、竞赛过程中如有异议,可向现场考评人员反映,不得扰乱赛场秩序; 3、遵守赛场纪律,尊重考评人员…