MySQL备份总结

news2024/11/26 6:18:24
  1. 物理备份

通常物理备份是保障数据库备份最有效的方法,优于逻辑备份,且其对数据库本身性能的损耗相较于逻辑备份较低。MySQL的物理备份通常我们使用Percona公司出品的基于 MySQL 的服务器的开源热备份实用程序。其使用方法如下:

#下载
MySQL 8.0   https://www.percona.com/downloads/Percona-XtraBackup-LATEST
MySQL 5.7   https://www.percona.com/downloads/Percona-XtraBackup-2.4
#解压
tar -xvf percona-xtrabackup-2.4.9-Linux-x86_64.tar.gz
cd percona-xtrabackup-2.4.9-Linux-x86_64/bin
cp xtrabackup /usr/bin/
cp innobackupex /usr/bin/
#全量备份
xtrabackup --backup --datadir=/data/mysql_3306 --target dir=/u01/backup/full
#增量备份
xtrabackup --backup --datadir=/data/mysql_3306 --target-dir=/u01/backup/incr --incremental-basedir=/u01/backup/full
#全量恢复
xtrabackup --prepare --apply-log-only --datadir=/data/mysql_3306 --target-dir=/u01/backup/full
#增量恢复 需要先做全量恢复后,才能做增量恢复
xtrabackup --prepare --apply-log-only --datadir=/data/mysql_3306   --target-dir=/u01/backup/full --incremental-dir=/u01/backup/incr
xtrabackup --copy-back datadir=/data/mysql_3306 --target-dir=/u01/backup/full --incremental-dir=/u01/backup/incr
  1. 逻辑备份

mysql的逻辑备份有多种方式,伴随mysql的演进,官方分别出了mysqldump、mysqldumper、mysqlshell等工具。

2.1 Mysqldump
mysqldump是mysql的初代逻辑备份工具,无需单独安装,命令包含在mysql server的bin目录里。

数据备份

mysqldump -u用户名 -p密码 [OPTIONS] database [tables]
mysqldump -u用户名 -p密码 [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump -u用户名 -p密码 [OPTIONS] --all-databases   [OPTIONS]

常用参数

-u  用户名
-p  密码
-h  hostname 信息
-d(--no-data)  	     只导出表结构
-A(--all-databases)   备份所有的数据库信息
-B(--databases)      备份多个数据库信息(-B  db1    db2  db3 ...)
-Y(--all-tablespaces) 备份所有的表空间信息
-y(--no-tablespaces)  不备份表空间信息
-t(--no-create-info)   不添加 create table 语句 (默认为 开启状态)
-n(--no-create-db)    不添加 create database 语句
--add-drop-table       每次创建表之前先删除存在的表(默认为开启状态)
--skip-add-drop-table  删除 drop table 的语句

2.2. Mydumper
mydumper的多线程开源逻辑备份工具,myloader是与mydumper工具备份配合使用的多线程备份恢复工具,可以直接以mydumper输出文件为输入,恢复备份数据。

并行性。并行备份,并行恢复,可以提升备份恢复速度。
备份文件易于管理。备份出来的文件基于表为单位,一个sql文件记录一个表的信息。
一致性。维护所有线程的快照,提供准确的主日志和从日志位置
可管理性。支持PCRE(perl语音的正则表达式),用于指定数据库和表的包含/排除

常用参数
mydumper选项
在这里插入图片描述
myloader选项
在这里插入图片描述

#备份biz_test_xxx,包含trigger(G)、routines(R)、events(E),使用8线程(t)导出,输出目录/backup
mydumper -h   192.168.10.11 -P 3306 -u root -p 123456 -B biz_test_xxx -G -R -E -t 8 -o   /backup
#备份数据库biz_test_xxx中的表test01,test02
mydumper -h 192.168.10.11 -P 3306 -u root -p 123456 -B biz_test_xxx -T test01,test02 -o /backup
#从备份目录/backup/biz_test_xxx恢复数据到biz_test_xxx
myloader -h 192.168.10.11 -P 3306 -u root -p 123456 -B biz_test_xxx -d /backup/biz_test_xxx
#从备份目录/backup/biz_test_xxx恢复数据表到biz_test_xxx
myloader -h 192.168.10.11 -P 3306 -u root -p 123456 -B biz_test_xxx -o test01,test02 -d /backup/table

2.3. Mysql shell

MySQL Shell 是Oracle官方发布的一个高级客户端和代码编辑器,是第二代MySQL客户端,内置了很多实用工具。相较于mysqldump、mydumper对大数据量的备份恢复友好,且效率高。
对于备份过程中有较多临时表生成、删除的业务,备份成功率更高。
自由度高,并行度可自己控制。大文件导入,可以拆分导入。

常用参数

checkForServerUpgrade:检测目标实例能否升级到指定版本
dumpInstance:备份实例
dumpSchemas:备份指定库
dumpTables:备份指定表
loadDump:恢复通过上面三个工具生成的备份
exportTable:将指定表导出到文本文件中。只支持单表,效果同 SELECT INTO OUTFILE 一样
importTable:将指定文本的数据导入到表中

详细均可通过help来查看

mysqlsh -- util –help
mysqlsh -- util dump-schemas –help
mysqlsh -- util load-dump –help
#备份
mysqlsh -udumper -pxxxx -h172.18.0.1 -P3306 -- util dump-schemas biz_test_log --compatibility=strip_definers --excludeTables=biz_test_log.t_log_app,biz_test_log.t_log_app_l  --outputUrl=/var/backup
#恢复
mysqlsh -uroot -pxxxx -h172.18.0.1 -P3306 -- util load-dump /var/backup/biz_test_log --resetProgress   --deferTableIndexes=all --ignoreExistingObjects=true --schema=biz_test_log

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

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

相关文章

python毕设选题 - flink大数据淘宝用户行为数据实时分析与可视化

文章目录 0 前言1、环境准备1.1 flink 下载相关 jar 包1.2 生成 kafka 数据1.3 开发前的三个小 tip 2、flink-sql 客户端编写运行 sql2.1 创建 kafka 数据源表2.2 指标统计:每小时成交量2.2.1 创建 es 结果表, 存放每小时的成交量2.2.2 执行 sql &#x…

IOC解决程序耦合

1.什么是IOC IOC (Inverse of Control)即控制反转:由ioc容器来创建依赖对象,程序只需要从IOC容器获取创建好的对象。 我们在获取对象时,都是采用new的方式。是主动的。 我们获取对象时,同时跟工厂要,有工厂为我们查找…

大数据Doris(五十):数据导出的其他导出案例参考

文章目录 数据导出的其他导出案例参考 一、​​​​​

乘号在键盘上怎么打?速来学习这4个方法!

“我在用电脑编辑文档时,需要输入一些数学公式,现在我不知道乘号怎么打,有朋友可以教教我吗?” 乘号是数学中常用的符号,用于表示两个数的相乘关系。很多用户在使用电脑办公时可能需要输入乘号。但是却发现键盘上没有明…

sql如何获取字段是数组中的数字【搬代码】

我们可以看到表中字段是一个数组怎么获取其中的数据呢? SELECT sim->>$[0] FROM fin_xxx如果使用左外链接,如下,其他连接时一样的 SELECT a.* FROM fin_aaaa a LEFT JOIN fin_xxx b ON b.sim_r->>$[0]a.corr WHERE b.tid20210 …

【React系列】Redux(一)管理状态

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 在React的开发过程中,Redux对于我们是非常重要的。 但是对于很多人来说,初次接触redux会感觉r…

Leetcode_day01_88合并两个有序数组

Leetcode_day01_88合并两个有序数组 题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺…

锂电池寿命预测 | Matlab基于LSTM长短期记忆神经网络的锂电池寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于LSTM长短期记忆神经网络的锂电池寿命预测 程序设计 完整程序和数据获取方式:私信博主回复Matlab基于LSTM长短期记忆神经网络的锂电池寿命预测。 参考资料 [1] http://t.csdn…

【已解决】若依系统前端打包后,部署在nginx上,点击菜单错误:@/views/system/role/index

​ 上面错误,是因为/views/system/role/index动态路由按需加载时候,错误导致。 解决办法: 如果您的前端项目访问时候,需要带有项目名称的话,参考凯哥上一篇文章:【已解决】若依前后端分离版本&#xff0…

《MySQL系列-InnoDB引擎05》MySQL索引与算法

文章目录 第五章 索引与算法1 InnoDB存储引擎索引概述2 数据结构与算法2.1 二分查找法2.2 二分查找树和平衡二叉树 3 B树3.1 B树的插入操作3.2 B树的删除操作 4 B树索引4.1 聚集索引4.2 辅助索引4.3 B树索引的分裂 5 Cardinality值5.1 什么是Cardinality5.2 InnoDB存储引擎的Ca…

树与二叉树笔记整理

摘自小红书 ## 树与二叉树 ## 排序总结

Zookeeper(持续更新)

VIP-01 Zookeeper特性与节点数据类型详解 文章目录 VIP-01 Zookeeper特性与节点数据类型详解正文1. 什么是Zookeeper?2. Zookeeper 核心概念2.1、 文件系统数据结构2.2、监听通知机制2.3、Zookeeper 经典的应用场景3.2. 使用命令行操作zookeeper 正文 什么是Zookee…

VMware Workstation虚拟机CentOS 7.9 配置固定ip的步骤

VMware Workstation虚拟机CentOS7.9配置固定ip的步骤 编辑虚拟机 打开VMware Workstation。 选择要配置的虚拟机,但不要启动它。 点击“编辑虚拟机设置”(Edit virtual machine settings)。 选择“网络适配器”(Network Adapter&…

JAVA基础学习笔记-day13-数据结构与集合源1

JAVA基础学习笔记-day13-数据结构与集合源1 1. 数据结构剖析1.1 研究对象一:数据间逻辑关系1.2 研究对象二:数据的存储结构(或物理结构)1.3 研究对象三:运算结构1.4 小结 2. 一维数组2.1 数组的特点 3. 链表3.1 链表的…

c++牛客总结

一、c/c语言基础 1、基础 1、指针和引用的区别 指针是一个新的变量,指向另一个变量的地址,我们可以通过这个地址来修改该另一个变量; 引用是一个别名,对引用的操作就是对变量本身进行操作;指针可以有多级 引用只有一…

【React系列】Redux(二)中间件

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 中间件的使用 1.1. 组件中异步请求 在之前简单的案例中,redux中保存的counter是一个本地定义的数据…

docker (portainer 安装nginx)

汉化版步骤可以参考:写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/135258056 一、创建容器 二、配置端口,以及容器卷挂载 挂载目录配置:(下方截图的目录如下,docker 改为 mydocker,用docker作为根…

pytest安装失败,报错Could not find a version that satisfies the requirement pytest

问题 安装pytest失败,尝试使用的命令有 pip install pytest pip3 install pytest pip install -U pytest pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple但是都会报同样的错: 解决方案 发现可能是挂了梯子的原因,关掉…

Git保姆级安装教程

Git保姆级安装教程 一、去哪下载二、安装2.1 具体安装步骤2.2 设置全局用户签名 一、去哪下载 1、官网(有最新版本):https://git-for-windows.github.io/ 2、本人学习时安装的版本,链接:https://pan.baidu.com/s/1uAo…

【完整流程】实现STM32+ESP8266+MQTT+阿里云+APP——【第二节-编写STM32程序初步实现ESP8266上云发布订阅消息】

🌟博主领域:嵌入式领域&人工智能&软件开发 前言:本节实现,硬件连接STM32与ESP8266,编写STM32程序通过at命令方式实现STM32ESP8266与阿里云物联网平台发布订阅消息,本节最终实现初步的发布订阅消息…