Linux中Mysql数据库备份操作

逻辑备份

备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
本质:导出的是SQL语句文件
优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句
缺点:速度较慢,导入时可能会出现格式不兼容的突发情况,无法做增量备份和累计增量备份
提供三种级别的备份,表级,库级和全库级
逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句(DDL DML DCL),适用于中小型数据库,效率相对较低。
数据一致,服务可用。:如何保证数据一致,在备份的时候进行锁表会自动锁表。锁住之后在备份。

常用备份选项

库级备份

全库备份
#mysqldump -p密码 [-A|--all-databases]  >alldb.sql

库级备份
#mysqldump -p密码 [-B|--databases] dbname1 dbname2 >dbname.sql 

表级备份

表级备份
#mysqldump -p密码 dbname tablename1 tablename2 >db_t1_t2.sql

备份表结构
#mysqldump -p密码 dbname tablename -d > tablename_jiegou.sql

导出数据和导入数据

​
导出数据
首先查看安全路径:

mysql> show variables like "secure%";



导出数据到安全路径下
mysql> select * from mysql.user into outfile '/var/lib/mysql-files/user.xlsx'

导入数据
mysql> load data infile '/var/lib/mysql-files/user.xlsx' into table user;

注:修改安全路径的方法

#mkdir /data
#chown mysql.mysql /data
#vim /etc/my.cnf
secure_file_priv=/data/

重启数据库生效
#systemctl restart msyqld

查看安全路径显示:

mysql> show variables like "secure%";

恢复数据

恢复数据库

第一种方法:
    mysql -p密码   < db.sql

第二种方法:
#cat db.sql | mysql -p密码

第三种方法:
    mysql> source  db.sql的绝对路径;

恢复数据表

第一种方法:
    mysql -p密码 dbname  < table.sql

第二种方法:
 #cat db.sql | mysql -p密码 dbname

第三种方法:
    mysql> use dbname
    mysql> source  table.sql的绝对路径;

根据二进制日志文件恢复数据

开启binlog日志功能

创建二进制文件存放位置 例/data
#mkdir /data
修改权限
#chown mysql.mysql /data

编辑mysql配置文件添加以下内容
#vim /etc/my.cnf 

server-id = 1
log-bin = /data/mysql-bin

重启数据库
#systemctl restart msyqld

查看二进制日志:
#mysqlbinlog /data/mysql-bin.00001 --base64-output=decode-rows -vv

恢复数据

找到要恢复的sql语句的起始位置、结束位置
修复语句
#mysqlbinlog --start-position  起始位置 --stop-position 结束位置 /data/mysql-bin.00001 | mysql -p密码 dbname

根据binlog日志的时间点恢复
找到要恢复sql语句的起始时间、结束时间
修复语句
mysqlbinlog --start-datetime='2023-12-26 23:55:54' --stop-datetime='2023-12-26 23:56:541' mylog.000001 | mysql -p密码 dbname

物理备份

物理备份: 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本。

1.完全备份-----完整备份:

每次都将所有数据(不管自第一次备份以来有没有修改过),进行一次完整的复制,备份后会清除文件的存档属性,方便日后增量备份或者差异备份进行版本比较。

特点:占用空间大,备份速度慢,但恢复时一次恢复到位,恢复速度快。

完全备份流程:

mkdir /xtrabackup/full -p

innobackupex --user=root --password='密码' /xtrabackup/full

可以查看一下:
# cd /xtrabackup/full/
# ls
2023-12-26_11-47-49

完全备份恢复流程

1.关闭数据库:
# systemctl stop mysqld
# rm -rf /var/lib/mysql/ *
# rm -rf /var/log/mysqld.log			#可选操作
# rm -rf /var/log/mysql-slow/slow.log  #可选操作

2.恢复之前的验证恢复:
# innobackupex --apply-log /xtrabackup/full/2023-12-26-20_11-47-49

3.确认数据库目录:
恢复之前需要确认配置文件内有数据库目录指定,不然xtrabackup不知道恢复到哪里
# cat /etc/my.cnf
datadir=/var/lib/mysql

4.恢复数据:
# innobackupex --copy-back /xtrabackup/full/2019-08-20_11-47-49

5.修改权限:
# chown mysql.mysql  /var/lib/mysql -R

6.启动数据库:
# systemctl start mysqld

2.增量备份: 每次备份上一次备份到现在产生的新数据

在第一次完整备份之后,第二次开始每次都将添加了存档属性的文件进行备份,并且在备份之后再把这些存档属性清除。为什么要清除存档属性呢?这就是为了下一次备份的时候判断是否有文件变化,因为用户在每次备份以后修改这些被清除存档属性的文件,存档属性就会自动加上,相当于用户告诉系统,这些文件有变化,你下一次就备份这些文件,其他没有存档属性的就不需要备份,这就是增量备份的工作机制。

特点:因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢 复,恢复时间长。

3.差异备份:只备份跟完整备份不一样的

在第一次完整备份之后,第二次开始每次都将所有文件与第一次完整备份的文件做比较,把自第一次完整备份以来所有修改过的文件进行备份,且以后每次备份都是和第一次完整备份进行比较(注意是第一次,不是上一次),备份自第一次完整备份以来所有的修改过的文件。因此,差异备份在备份完毕之后不需要清除文件的存档属性,因为这些文件和下一次备份没有什么关系,它仅仅和第一次完整备份的数据进行比较(第一次完整备份之后是清除存档属性的)。

特点:占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后一次的差异版本,恢复速度介于完整备份和增量备份之间。

感谢观看!希望能够帮助到大家!

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

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

相关文章

人工智能_机器学习078_聚类算法_概念介绍_聚类升维_降维_各类聚类算法_有监督机器学习_无监督机器学习---人工智能工作笔记0118

首先看一下什么是聚类,我们可以进入sklearn的官网去看看 可以看到这里,首先classification 这个分类我们学完了,然后就是regression回归我们也学完了对吧,其实我们现实生活中的,大部分问题就是 这两种问题就可以解决了. 然后我们再来看一个: clustering,这个就是聚类对吧.聚类算…

万界星空科技生产管理MES系统中的工时管理

工时管理的重大意义 1.提高生产效率 通过工时管理&#xff0c;企业可以更加精确地掌握研发人员的工时情况&#xff0c;及时调整项目进度和人力安排&#xff0c;提高生产效率。 2.降低人力成本 通过工时管理&#xff0c;企业可以更加精确地核算研发人员的工时费用&#xff0c…

KEPServerEX 6 之【外篇-1】PTC-ThingWorx服务端软件安装 Tomcat10本地安装

本文目标: 安装 Java 和 Apache Tomcat ,为ThingWorx安装做基础。 ----------------------------------------------------------------------- 安装重点 --------------------------------------------------------------------- 1. 安装 Java 11 / JDK 11 添加系…

Seem环境安装

创建虚拟环境 conda create -n seem python3.8 conda activate seem 安装相关依赖&#xff1a;&#xff08;不按照的话会报错&#xff09; sudo apt-get install openmpi-bin libopenmpi-devconda install gcc_linux-64pip install mpi4py 导入环境 export PYTHONPATH$(pwd…

在k8s中使用cert-manager部署gitlab集群

写在前面的话&#xff1a;前面有详细的分享过在k8s集群中部署gitlab&#xff0c;不过当时使用gitlab的访问证书是阿里云上免费的ssl证书&#xff0c;今天特意专门介绍下另外一种基于cert-manager发布自签证书的方式实现部署gitlab到k8s集群中。 往期gitlab部署系列如&#xff1…

文献速递:生成对抗网络医学影像中的应用——3DGAUnet:一种带有基于3D U-Net的生成器的3D生成对抗网络

文献速递&#xff1a;生成对抗网络医学影像中的应用——3DGAUnet&#xff1a;一种带有基于3D U-Net的生成器的3D生成对抗网络 给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献的研究内容包括同模态…

Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍

这里不涉及到源码&#xff0c;只是根据网上的一些文章总结一下&#xff0c;目前不需要细究&#xff0c;只需要知道大概就好&#xff0c;除非你的工作是二次开发ES 一、​Term Index(词项索引)1、FSM&#xff08;Finite State Machine&#xff09;有限状态机2、FSA&#xff08;F…

家政上门服务系统|上门服务系统优化您的生活质量

家政上门服务软件的开发为用户与家政服务供应商之间的互动提供了一个便捷的平台。通过这个软件&#xff0c;用户可以随时随地选择自己所需的服务&#xff0c;比如家庭清洁、保姆、月嫂、老人陪护等。而家政服务供应商则能够接收并响应用户的需求&#xff0c;从而提供一对一的服…

鸿蒙操作系统:从手机到物联网,打造全场景智能体验

随着科技的不断发展&#xff0c;人们对于操作系统的需求也在不断升级。鸿蒙操作系统&#xff0c;作为华为推出的新一代智能终端操作系统&#xff0c;凭借其强大的分布式能力、流畅的用户体验以及丰富的应用生态&#xff0c;正逐渐成为人们关注的焦点。 一、鸿蒙操作系统概述 …

Zookeeper在分布式命名服务中的实践

Java学习面试指南&#xff1a;https://javaxiaobear.cn 命名服务是为系统中的资源提供标识能力。ZooKeeper的命名服务主要是利用ZooKeeper节点的树形分层结构和子节点的顺序维护能力&#xff0c;来为分布式系统中的资源命名。 哪些应用场景需要用到分布式命名服务呢&#xff1…

什么是工厂方法模式,工厂方法模式解决了什么问题?

工厂方法模式是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但将实际的实例化过程延迟到子类中。这样&#xff0c;客户端代码在不同的子类中实例化具体对象&#xff0c;而不是直接实例化具体类。工厂方法模式允许一个类的实例化延迟到其子类&…

[Angular] 笔记 9:list/detail 页面以及@Output

1. Output input 好比重力&#xff0c;向下传递数据&#xff0c;list 传给 detail&#xff0c;smart 组件传给 dumb 组件&#xff0c;父组件传给子组件。input 顾名思义&#xff0c;输入数据给组件。 output 与之相反&#xff0c;好比火箭&#xff0c;向上传递数据或事件。ou…

5.微服务代码模型

1.微服务代码模型 代码分层 在微服务代码模型里&#xff0c;我们分别定义了用户接口层、并分别为它们建立了interfaces、application、domain和infrastructure四个一级代码目录&#xff1b; interfaces(用户接口层): 它主要存放用户接口层与前端应用交互、数据转换和交互相关…

一起玩儿物联网人工智能小车(ESP32)——16. 用ESP32的GPIO控制智能小车运动起来(MicroPython)

摘要&#xff1a;本文介绍用MicroPython实现ESP32的GPIO控制智能小车朝各个方向运动 前边的Mixly开发之后&#xff0c;对应生成的代码是C语言的。可能很多人都觉得C语言很难学&#xff0c;现在学Python的人很多&#xff0c;觉得学起来更容易一些。其实&#xff0c;语言本身的难…

探索前端开发趋势:2023年的新兴技术与发展方向

随着科技的不断发展&#xff0c;前端开发领域也在不断演进。本文将详细介绍2023年前端开发的新兴技术和发展趋势&#xff0c;为开发者们指明前端技术的发展方向和面临的挑战。从WebAssembly、PWA到低代码开发&#xff0c;激动人心的全新前景等你探索。 随着科技的快速发展&…

计算机图形图像技术复习资料

一、考试题型 1、简述题&#xff08;10分4题&#xff0c;共40分&#xff09; 2、计算题&#xff08;共10分&#xff09; 3、编程题&#xff08;共30分&#xff09; 4、问答题&#xff08;共20分&#xff09; 二、复习提纲 1、简答题 &#xff08;1&#xff09;第1章的基本…

平面灯阵中寻找最大正方形边界 - 华为机试真题题解

分值: 300分 题解: Java / Python / C++ 题目描述 现在有一个二维数组来模拟一个平面灯阵,平面灯阵中每个位置灯处于点亮或熄灭,分别对应数组每个元素取值只能为1或0,现在需要找一个正方形边界,其每条边上的灯都是点亮(对应数组中元素的值为1)的,且该正方形面积最大。 …

【hcie-cloud】【12】华为云Stack故障处理【故障处理通用处理原则、常见华为云Stack故障处理(计算域故障场景)】【上】

文章目录 前言故障处理通用处理原则故障处理流程故障信息收集及故障范围、类型识别ManageOne运维面收集告警信息AutoOps工具故障场景信息收集AutoOps工具自动化采集HCS信息 (1)AutoOps工具自动化采集HCS信息 (2)故障初期定位方向故障恢复例行维护讨论: 哪一环比较重要&#xff…

Android studio 花式按键

一、activity_main.xml代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.a…

Xmake v2.8.6 发布,新的打包插件:XPack

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量&#xff0c;没有任何依赖&#xff0c;因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建&#xff0c;相比 makefile/CMakeLists.txt&#xff0c;配置语法更加简洁直观&#xff0c;对新手非常友好&#x…
最新文章