MySQL备份

MySQL的备份方式有哪几种?分别如何实现?

目录

一、数据的备份类型

1、数据的备份类型根据其自身的特性主要分为以下几组:

二、MySQL备份数据的方式

三、常见的备份工具

1、一般情况下, 我们需要备份的数据分为以下几种

2、备份工具

3、备份策略

四、如何实现

1、使用cp进行备份

2、xtrabackup实现完全备份

2.1 安装xtrabackup

2.2 Xtrabackup全量备份与恢复

2.3 Xtrabackup增量备份与恢复

3、使用mysqldump备份数据库


一、数据的备份类型

1、数据的备份类型根据其自身的特性主要分为以下几组:

  • 完全备份:指的是备份整个数据集( 即整个数据库 )

  • 部分备份:指的是备份部分数据集(例如: 只备份一个表)

    • 部分备份又分为以下两种:

    • 增量备份:指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特点: 节约空间、还原麻烦;

    • 差异备份:指的是备份自上一次完全备份以来变化的数据 特点: 浪费空间、还原比增量备份简单;


二、MySQL备份数据的方式

  • 热备份指的是当数据库进行备份时, 数据库的读写操作均不是受影响;
  • 温备份指的是当数据库进行备份时, 数据库的读操作可以执行, 但是不能执行写操作
  • 冷备份指的是当数据库进行备份时, 数据库不能进行读写操作, 即数据库要下线。

MySQL中进行不同方式的备份还要考虑存储引擎是否支持:

热备温备冷备
MyISAM×
InnoDB

我们在考虑完数据在备份时, 数据库的运行状态之后还需要考虑对于MySQL数据库中数据的备份方式:

  • 物理备份:通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果 

  • 逻辑备份:通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度)


三、常见的备份工具

1、一般情况下, 我们需要备份的数据分为以下几种

  • 数据

  • 二进制日志, InnoDB事务日志

  • 代码(存储过程、存储函数、触发器、事件调度器)

  • 服务器配置文件

2、备份工具

常用的几种备份工具

  •  mysqldump: 是一个客户端的逻辑备份工具, 可以生成一个重现创建原始数据库和表的SQL语句, 可以支持所有的存储引擎, 对于InnoDB支持热备;
                              是逻辑备份工具, 适用于所有的存储引擎, 支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备 ;
  • cp, tar 等归档复制工具:物理备份工具, 适用于所有的存储引擎, 冷备、完全备份、部分备份
  • lvm2 snapshot:几乎热备, 借助文件系统管理工具进行备份 
  • mysqlhotcopy:名不副实的的一个工具, 几乎冷备, 仅支持MyISAM存储引擎 
  • xtrabackup:一款非常强大的InnoDB/XtraDB热备工具, 支持完全备份、增量备份, 由percona提供

3、备份策略

  • 直接cp,tar复制数据库文件:适用于数据量较小 ==> 直接复制数据库文件;

  • mysqldump+复制BIN LOGS:适用于数据量还行 ==> 先使用mysqldump对数据库进行完全备份, 然后定期备份BINARY LOG达到增量备份的效果;

  • lvm2快照+复制BIN LOGS:适用于数据量一般, 而又不过分影响业务运行 ==> 使用lvm2的快照对数据文件进行备份, 而后定期备份BINARY LOG达到增量备份的效果;

  • xtrabackup:适用于数据量很大, 而又不过分影响业务运行 ==> 使用xtrabackup进行完全备份后, 定期使用xtrabackup进行增量备份或差异备份;

小结:

备份方法备份速度恢复速度便捷性功能一般用于
cp一般、灵活性低很弱少量数据备份
mysqldump一般、可无视存储引擎的差异一般中小型数据量的备份
lvm2快照一般、支持几乎热备、速度快一般中小型数据量的备份
xtrabackup较快较快实现innodb热备、对存储引擎有要求强大较大规模的备份

四、如何实现

1、使用cp进行备份

1)查看数据库的信息

show databases;
select * from testdb.t_user;

2) 向数据库施加读锁

FLUSH TABLES WITH READ LOCK; #向所有表施加读锁

3) 备份数据文件

mkdir /backup #创建文件夹存放备份数据库文件
cp -a /var/lib/mysql/* /backup #保留权限的拷贝源数据文件
ls /backup #查看目录下的文件

4) 模拟数据丢失并恢复

#删除数据库的所有文件
rm -rf /var/lib/mysql/* 

#重启MySQL, 如果是编译安装的应该不能启动, 如果rpm安装则会重新初始化数据库
service mysqld restart

#连接到MySQL进行查看, 发现数据丢失了!
SHOW DATABASES;

#恢复数据
cp -a /backup/* /var/lib/mysql/ #将备份的数据文件拷贝回去

service mysqld restart #重启MySQL

5) 数据成功恢复

2、xtrabackup实现完全备份

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:

  • 备份过程快速、可靠;
  • 备份过程不会打断正在执行的事务;
  • 能够基于压缩等功能节约磁盘空间和流量;
  • 自动实现备份检验;
  • 还原速度快;

我们这里使用xtrabackup的前端配置工具innobackupex来实现对数据库的完全备份

2.1 安装xtrabackup

​
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar

tar xf Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar

yum install percona-xtrabackup-24-2.4.9-1.el6.x86\_64.rpm -y

innobackupex -v

2.2 Xtrabackup全量备份与恢复

a. 全量备份

innobackupex --defaults-file=/etc/my.cnf --user=root --password="123456" --backup /extrabackup

b. 恢复数据

(1) 删除数据库 testdb;

(2) 全备恢复

--apply-log://应用 BACKUP-DIR 中的 xtrabackup_logfile 事务日志文件。一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处于不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件使得数据文件处于一致性状态。

innobackupex --apply-log /extrabackup/2023-05-25_10-13-31/

#恢复数据之前需要保证数据目录是空的状态

systemctl stop mysqld
rm -rf /var/lib/mysql/*
chown -R mysql:mysql /var/lib/mysql
1027 chmod -R 777 /var/lib/mysql

#恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /extrabackup/2023-05-25_10-13-31/

数据成功恢复:

2.3 Xtrabackup增量备份与恢复

a. 增量备份

需要注意的是,增量备份仅能应用于InooDB或XtraDB表,对于MyISAM表,增量与全备相同。

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --incremental /backup/ --incremental-basedir=/extrabackup/2023-05-25_10-13-31

参数说明:
#--incremental /backup/ 指定增量备份文件备份的目录

#--incremental-basedir 指定上一次全备或增量备份的目录

#删除一条数据来测试增量恢复:

  

b. 恢复数据

#将增量备份1、增量备份2…合并到完整备份
innobackupex --apply-log --redo-only /extrabackup/2023-05-25_10-13-31/
innobackupex --apply-log --redo-only /extrabackup/2023-05-25_10-13-31/ --incremental-dir=/backup/2023-05-25_11-12-19/

#恢复数据之前需要保证数据目录是空的状态

systemctl stop mysqld
rm -rf /var/lib/mysql/*

# 恢复数据
innobackupex --defaults-file=/etc/my.cnf --copy-back /extrabackup/2023-05-25_10-13-31/

# 开启MySQL服务
chown -R mysql:mysql /var/lib/mysql
chmod -R 777 /var/lib/mysql
systemctl start mysqld

数据成功恢复:

3、使用mysqldump备份数据库

1)备份命令

a. 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql

b. 导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩:

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz

c. 备份实例上所有的数据库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql

d. 备份同个库多个表

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql

e. 同时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

2)  恢复数据

mysql -u username -P [dbname] < filename.sql

 

 

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

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

相关文章

SpringBoot—常用注解

目录 一、注解(annotations)列表 二、注解(annotations)详解 三、JPA注解 四、springMVC相关注解 五、全局异常处理 一、注解(annotations)列表 SpringBootApplication&#xff1a; 包含了ComponentScan、Configuration和EnableAutoConfiguration注解。其中ComponentScan…

【大学物理实验】基本测量

50分度的游标卡尺&#xff0c;最小分度为&#xff1a; A. 0.1mm B. 0.2mm C. 0.5mm D. 0.02mm 正确答案&#xff1a; D 保存游标卡尺和螺旋测微器是&#xff0c;下面说法正确的是&#xff1a; A. 游标卡尺测量位置应闭合&#xff0c;螺旋测微器小砧和螺杆间隙也应闭合 B. 游标…

Matlab论文插图绘制模板第94期—带置信区间的折线散点图

在之前的文章中&#xff0c;分享了很多Matlab带置信区间的折线图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下带置信区间的折线散点图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友…

SSD202 Linux开发日志记录

一、挂载U盘 SDK默认自动加载USB存储模块&#xff0c;但没有自动挂载&#xff0c;插上U盘后识别sda mount /dev/sda /mnt/即可在/mnt查看U盘文件 二、make & make menuconfig提示失败 打开新终端后输入 declare -x ARCH"arm" declare -x CROSS_COMPILE"…

机器学习中四类进化算法的详解(遗传算法、差分进化算法、协同进化算法、分布估计算法)

1、遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09; GA算法原理 首先我们来介绍进化算法的先驱遗传算法&#xff0c;遗传算法&#xff08;Genetic Algorithm&#xff0c;简称GA&#xff09;是一种最基本的进化算法&#xff0c;它是模拟达尔文生物进化理论的…

企业级WordPress开发 – 创建企业级网站的优秀提示

目录 “企业级”是什么意思&#xff1f; 使用WordPress创建企业级网站有什么好处&#xff1f; 使用 WordPress 进行企业开发的主要好处 WordPress 可扩展、灵活且价格合理 WordPress 提供响应式 Web 开发 WordPress 提供了巨大的可扩展性 不断更新使 WordPress 万无一…

Nodejs模块化

介绍 将一个复杂的程序文件按照一定规则拆分成多个文件。 拆分出的每个文件就是一个模块&#xff0c;模块的内容数据是私有的&#xff0c;不过模块可以暴露内部数据使得其他模块使用。 模块化好处&#xff1a;防止命名冲突、高复用性、高维护性。 模块化的使用 初体验 两…

云计算基础——云计算与移动互联网、物联网

8.1 云计算与移动互联网 8.1.1 移动互联网的发展概况 移动互联网的发展概况 移动互联网是指以宽带IP为技术核心&#xff0c;可同时提供语音、数据、多媒体等业务服务的开什么是移动互联网?放式基础电信网络&#xff0c;从用户行为角度来看&#xff0c;移动互联网广义上是指用…

Linux下的用户分类与su/sudo 命令,Linux下的文件类型/用户文件权限身份/文件权限属性/权限与文件权限/ls-l文件属性详解

Tips 下载就是把我们的文件拷贝到系统的某个特定路径之下&#xff0c;普通用户是不允许你往系统里面去拷的。 Linux下的用户分类 root用户&#xff0c;管理员级别的用户身份&#xff0c;他的话基本上不受权限的约束。普通用户&#xff0c;普通用户的添加与每个普通用户密码的…

8.防火墙-SNAT和DNAT

文章目录 SNAT-内网客户访问外网服务原理操作实验 DNAT-外网客户访问内网服务原理操作实验 tcpdump SNAT-内网客户访问外网服务 原理 由内网到外网&#xff1a;从内网发到外网的数据包的源IP由私网IP转换成公网IP 由外网到内网&#xff1a;从外网发到内网的数据包的目的IP由公…

学系统集成项目管理工程师(中项)系列24a_信息系统集成专业技术知识(上)

1. 信息系统的生命周期 1.1. 【19下选10】 1.2. 立项 1.2.1. 形成《需求规格说明书》并确定立项 1.2.1.1. 【21上选11】 1.3. 开发 1.3.1. 【22下选10】 1.3.2. 以立项阶段所做的需求分析为基础&#xff0c;进行总体规划。之后&#xff0c;通过系统分析、系统设计、系统…

若依框架在未登录的情况下访问swagger3.0页面,出现弹窗的解决方法

若依框架在未登录的情况下访问swagger3.0页面&#xff0c;出现弹窗的解决方法 效果展示&#xff1a; 解决方法&#xff1a;在ShiorConfig.java类中找到shiroFilterFactoryBean方法&#xff0c;然后在filterChainDefinitionMap里面put你要过滤的地址&#xff0c;如下&#xff…

【机器学习】集成学习(理论)

集成学习&#xff08;理论&#xff09; 目录 一、何为集成学习二、集成学习最简单的模型&#xff1a;投票策略三、弱学习器的组合算法&#xff1a;自助聚合&#xff08;Bagging模型&#xff09;1、数据划分方法&#xff1a;自助法&#xff08;Bootstrap Method&#xff09;2、B…

浅谈人工智能

人工智能的概念和现状 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是指通过计算机程序和算法来模拟人类智能&#xff0c;包括学习、推理、感知、语言理解、图像识别等方面。自20世纪50年代以来&#xff0c;人工智能领域的研究取得了巨大的进展…

C语言递归算法实现经典例题

一.递归 1.什么是递归 递归是一种编程技术&#xff0c;它通过在函数内部反复调用自身来解决问题。当一个程序调用自己时&#xff0c;这就称为递归调用。递归可以有助于简化某些算法的实现和理解。在递归过程中&#xff0c;每个调用都会将一些数据保存在栈上&#xff0c;直到递…

《Java并发编程实战》课程笔记(一)

并发领域的全景图 并发编程的三个核心问题 并发编程可以总结为三个核心问题&#xff1a;分工、同步、互斥。 分工指的是如何高效地拆解任务并分配给线程&#xff1b; Java SDK 并发包里的 Executor、Fork/Join、Future 本质上都是⼀种分工方法。除此之外&#xff0c;并发编程…

rsync远程同步

rsync介绍 rsync简介 rsync&#xff08;Remote Sync&#xff0c;远程同步&#xff09; 是一个开源的快速备份工具&#xff0c;可以在不同主机之间镜像同步整个目录树&#xff0c;支持增量备份&#xff0c;并保持链接和权限&#xff0c;且采用优化的同步算法&#xff0c;传输前…

阿里拆了中台,中台还有未来吗?

hi&#xff0c;我是熵减&#xff0c;见字如面。 近日&#xff0c;阿里在继年初3月份的16N的战略变革的基础上&#xff0c;对持续建设和运营8年的中台的调整终于落地了。 阿里对中台的这一举措&#xff0c;引发了外界对于中台战略是否还有意义的大量质疑和讨论。 甚至有人将中台…

ov2640子设备视频操作详细分析

ov2640子设备视频操作详细分析 文章目录 ov2640子设备视频操作详细分析ov2640_subdev_video_ops视频操作ov2640_s_stream开始流ov2640_g_fmt 获取格式ov2640_s_fmt设置格式ov2640_try_fmt尝试格式ov2640_cropcap裁剪能力ov2640_g_crop获取裁剪ov2640_enum_fmt枚举格式ov2640_g_…

六级备考26天|CET-6|仔细阅读|考研英语2023年英语(一)|8:20~10:00

text1 4/5 text2 3/5 text3 2/5 text4 3/5 12/20 目录 text 1 1. 重点词汇 2. 原文 3. 题目 text 1 1. 重点词汇 sympathise / ˈsɪmpəθaɪz / vi.同情&#xff1b;吊唁&#xff1b;共鸣 &#xff08;等于 sympathize&#xff09; ener…