MYSQL备份和恢复

数据库的备份和恢复:

备份:完全备份 增量备份

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

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

备份的需求:

  1. 在生产环境中,数据的安全至关重要,任何数据的丢失都可能产生非常严重的后果。
  2. 数据为什么会丢失,程序操作,运算错误,磁盘故障,不可预期的时间(地震之类),人为操作。

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

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

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

逻辑备份:只是对数据库的逻辑组件(表结构)进行备份。以sql语句的形式,把库,表结构,表数据进行备份保存。(直接在数据库系统中删除全部文件,逻辑备份无法恢复)

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

优点:操作简单

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

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

实验:

物理备份

先在外部创建两个表

内部先停止mysql服务

所有的数据都在/usr/local/mysql/data目录下

安装高压缩的压缩工具xz

yum -y install xz

开始打包

tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data

解压包到当前目录

 tar Jxvf mysql_all_2023-11-06.tar.xz

删除data

数据迁移:

先备份

远程复制另一台服务器的数据

保留权限复制并重启

赋权

热备份当中的逻辑备份。

这是mysql自带的工具:

mysqldump

只能在命令行执行

备份库

mysqldump -u root -p123456 --databases kgc > /opt/kgc.sql

备份多个库

mysqldump -u root -p123456 --databases kgc kgc1 > /opt/kgc1.sql

备份所有库

mysqldump -u root -p123456 --all-databases > /opt/kgc3.sql

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

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

逻辑备份实验:

备份

mysqldump -u root -p --databases kgc1 > /opt/kgc.sql

逻辑删除和查询

物理删除会炸裂

逻辑删除和恢复表

先备份表

删除表

恢复表

(也可以恢复到其他库)

删除和恢复多个表

备份

删除

恢复

物理冷备份和热备份

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

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

特点:方便,简单。但是只能基于逻辑上的表结构和表数据恢复。物理删除之后再用逻辑恢复会报错。他也可以作为数据迁移。占用大空间,比较物理备份相对来说占的空间要小的多。

增量备份:

Mysqldumo支持增量备份。

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

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

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

增量备份过程:

mysql提供的二进制日志间接的实现增量备份

修改配置文件:

vim /etc/my.cnf

mysql二进制日志记录格式有三种:

  1. STATMNET:基于sql语句

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

  1. ROW:基于行

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

3.MIXED:既可以根据sql语句,也可以根据行

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

查看备份的二进制文件内容

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

刷新

 mysqladmin -u root -p flush-logs

恢复        

基于位置点来进行恢复:

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker安装Redis哨兵

目录 Redis哨兵 一、哨兵模式的主要概念和组件 二、哨兵模式的工作流程 三、哨兵配置流程 1、创建Redis哨兵配置文件 2、启动哨兵 3、命令解读 4、 查看哨兵是否正常启动 5、测试主机宕机 四、哨兵运行流程 五、哨兵选举算法 六、哨兵使用建议 Redis哨兵 Redis哨兵…

josef约瑟 时间继电器 DS-23/C AC220V 10S柜内板前接线

系列型号: DS-21时间继电器 ;DS-22时间继电器; DS-23时间继电器;DS-24时间继电器; DS-21C时间继电器;DS-22C时间继电器; DS-23C时间继电器; DS-25时间继电器;DS-26…

python/c++ Leetcode题解——746. 使用最小花费爬楼梯

目录 方法一:动态规划 复杂度分析 方法一:动态规划 假设数组 cost 的长度为 n,则 n 个阶梯分别对应下标 0 到 n−1,楼层顶部对应下标 n,问题等价于计算达到下标 n 的最小花费。可以通过动态规划求解。 创建长度为 n…

孩子都能学会的FPGA:第三十三课——用FPGA实现一个通用的SPI主机接收模块

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

如何从 iPhone 上恢复已删除的照片教程分享

您是否错误地删除了 iPhone 上的错误照片?或者您可能已将手机恢复出厂设置,但现在所有照片都消失了?如果您现在遇到这样的情况,我们可以为您提供解决方案。 在本文中,我们将向您展示七种数据恢复方法,可以…

论文解读 | NeurIPS2023:「解释一切」图像概念解释器

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 讲者简介 孙奥: 香港科技大学软件安全实验室在读博士,研究兴趣为可解释性人工智能和可信机器学习,主要是从Post-hoc,逻辑和概念的角度分析神经网络的机理 Title 「…

服务器安全的威胁和防范

由于服务器发挥着至关重要的作用,因此存储在服务器上的机密数据和信息非常具有价值。做好服务器安全至关重要。 常见的服务器安全隐患包括: 1.恶意的攻击:遭受CC攻击和DDoS攻击,导致游戏或是网站打不开,严重影响业务…

【智能算法】11种混沌映射算法+2种智能算法示范【鲸鱼WOA、灰狼GWO算法】

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 混沌映射算法是我们在智能算法改进中常用到的方法,本程序充分考虑改进算法应用的便捷性,集成了11种混合映射算法,包括Singer、tent、Logistic、Cubic、chebyshev、Piecewise…

华为面试题,连续出了三年!

写在前面 据说,这是一道被华为 2021、2022 和 2023 都出过的题目 🤣 华为是「卷」的发明者,但不是「内卷」发明者,毕竟只有华为是实打实的给加班费。 这么卷的公司,怎么也不更新一下题库。 难道没人做出来就不用考虑换…

2023-12-17 AIGC-AnimateDiff详细安装和使用教程

AnimateDiff专用模型下载 AnimateDiff有其自身专门的运动模型mm_sd_v15_v2.ckpt 和 专属的镜头运动lora,需要放置在对应的位置。 stablediffusion位置: 运动模型放在stable-diffusion-webui\extensions\sd-webui-animatediff\model里面 运动lora放在stable-diffusion-web…

Quartus 18.1软件及支持包安装教程

安装前最好关闭电脑的杀毒软件和防火墙 安装包可以到Quartus官网下载需要的版本,注意选择操作系统 Quartus官网:FPGA 设计软件 - 英特尔 Quartus Prime (intel.cn) 下载解压后以管理员的身份运行 QuartusSetup-18.1.0.625.exe文件,版本不同…

中国剩余定理CRT

文章目录 作用证明AcWing 204. 表达整数的奇怪方式CODE 作用 用于求模数两两互质的线性同余方程组,若不互质则不存在解。 《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二&am…

【漏洞复现】CVE-2023-6848 kodbox远程命令执行

漏洞描述 kodbox 是一个网络文件管理器。它也是一个网页代码编辑器,允许您直接在网页浏览器中开发网站。您可以在基于 Linux、Windows 或 Mac 的平台上在线或本地运行 kodbox。唯一的要求是要有 PHP 5及以上。 kalcaddle kodbox 中发现漏洞,最高版本为 1.48。它已被宣布为关…

【Java】SpringBoot中实现Redis Stream队列

SpringBoot实现Redis Stream队列 前言 简单实现一下在SpringBoot中操作Redis Stream队列的方式,监听队列中的消息进行消费。 jdk:1.8 springboot-version:2.6.3 redis:5.0.1(5版本以上才有Stream队列)…

C++实现简单的猜数字小游戏

猜数字 小游戏介绍:猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了,还是小了,相等表示猜到了。如果猜到&…

网络(九)三层路由、DHCP以及VRRP协议介绍

目录 一、三层路由 1. 定义 2. 交换原理 3. 操作演示 3.1 图示 3.2 LSW1新建vlan10、20、30,分别对应123接口均为access类型,接口4为trunkl类型,允许所有vlan通过 3.3 LSW2新建vlan10、20、30,配置接口1为trunk类型&…

报数游戏C语言

分析:掌握数字移动的规律,以及判断,我们可以用一个二维数组来记录每一个人说的数字,就像第一张图片一样,西安向右边移动,再向左下移动,再向左边移动,在向右边移动,在可以用一个数组来…

微服务保护--线程隔离(舱壁模式)

一、线程隔离的实现方式 线程隔离有两种方式实现: 线程池隔离 信号量隔离(Sentinel默认采用) 如图: 线程池隔离:给每个服务调用业务分配一个线程池,利用线程池本身实现隔离效果 信号量隔离&#xff1a…

数据分析(一)(附带实例和源码)

一、主要目的: 主要利用Python包,如Numpy、Pandas和Scipy等常用分析工具并结合常用的统计量来进行数据的描述,把数据的特征和内在结构展现出来。熟悉在Python开发环境中支持数据分析的可用模块以及其中的方法,基于一定的样例数据…

前端视角看 Docker : 基础命令全面指南

引言 Docker是一种开源的容器化平台,它允许开发者将应用程序和其依赖打包在一个轻量级的、可移植的容器中。这使得应用程序在不同的环境中部署变得简单且高效。本文将介绍Docker的一些基础命令和概念,帮助初学者快速上手。 1. Docker简介 Docker使用…