MySQL备份总结

  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.hqwc.cn/news/321625.html

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

相关文章

LangChain与昇腾

LangChain这个词今年已经听烂了,今天基于昇腾的角度总结一下: Why LangChain ? 场景:构建一个LLM应用 在构建一个新项目时,可能会遇到许多API接口、数据格式和工具。要去研究每一个工具、接口很麻烦。 假设要构建一…

高效工具汇总,让学习和办公飞起来

目录 1、寻找论文,效率很高2、学习各类编程的地方 1、寻找论文,效率很高 AMiner,由清华大学计算机科学与技术系的唐杰教授团队开发的一个显著的学术搜索和挖掘系统。系统提供了一整套功能以协助学术研究,包括研究人员档案、专家搜…

Docker入门教程(详解)

Docker容器化 一 入门 1. 引言 (1)单机部署 场景: 将多个应用部署一台服务器上。 问题 每个应用软件,都会消耗物理资源,共用计算机资源,彼此之间会形成竞争关系。 (2)多机部署 …

关于jdk11新特性流操作的研究

以官方文档为参考, 见下图 使用图床上传的图片地址 有次操作是因为图中有较重要的信息, 使用最不损失画质的方法做参考 使用csdn的图片 关于流操作之中断操作的官方内容 流操作分为中间操作和终端操作,并组合成流管道。流管道由源(例如集合、数组、生…

2023年终总结,被裁员

在一个睡意朦胧的早上,我被闹钟惊醒,原来今天已经是2024年1月1日了,2023年平平无奇的结束了,唯一让我感触波深的事情是我在二月份的裁员名单里面。2024加油!!! 工作上的总结 回顾2023&#xf…

MySQL MHA高可用

目录 简述 什么是MHA MHA的组成 MHA Node(数据节点) MHA Manager(管理节点) MHA原理 MHA的特点 搭建Mysql MHA 1.修改 Master、Slave1、Slave2 节点的主机名 2.修改 Master、Slave1、Slave2 节点的 Mysql主配置文件/etc…

Cesium自定义电子围栏特效材质

1.new Cesium.Viewer中添加 requestWebgl1: true, 2. 编写材质,主要分三步 (1)定义MaterialProperty (2)设置材质 (3)添加材质 //定义材质对象及变量 function DynamicWallMaterialPropert…

OpenHarmony—开发环境搭建

背景 因为没有实体的开发硬件,且不想破坏原有的Linux环境,所以这里基于 Docker QEMU 搭建开发环境 宿主机Linux系统命令行方式DockerQEMU 6.2 Docker环境准备 安装Docker 在Ubuntu中,可以使用下面的命令来安装Docker: sudo …

“华为杯”杭州电子科技大学2023新生编程大赛---树

题目链接 Problem Description 给定一棵包含 n 个节点的带边权的树,树是一个无环的无向联通图。定义 xordist(u,v) 为节点 u 到 v 的简单路径上所有边权值的异或和。 有 q 次询问,每次给出 l r x,求 ∑rilxordist(i,x) 的值。 Input 测试…

vuepress2 打包后刷新页面侧边栏丢失问题

问题:打包后刷新页面时侧边栏丢失问题 原因:node版本问题 文档中写着依赖环境 Node.js v18.16.0 我当时的版本是 16.19.0 我应该算是遇到了两个问题 【刷新后侧边栏消失】【刷新后页面内容加载错误】 我看了控制台,侧边栏不出现的原因&a…

我的隐私计算学习——联邦学习(1)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。 六、联邦学习 笔记分享 | 组队学习密码学 —— 密码学在联邦学习中的应用 ​ 根据前文已经知道,隐私计算与联邦学习的结合是当前的一个热点,联邦学习原本…

Spring——Spring IOC(2)

1.Spring中的工厂类 1.1 ApplicationContext ApplicationContext的实现类,如下图: ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件FileSystemXmlApplicationContext:加载本地磁盘下 Spring 的配置文件 1.2 B…