mysql简单备份和恢复
版本:mysql8.0
官方文档 :MySQL :: MySQL 8.0 Reference Manual :: 7 Backup and Recovery
1.物理备份恢复
物理备份是以数据文件形式备份。这种方式效率高点,适合大型数据库备份。物理备份可冷备可热备。
使用mysqlbackup 命令进行物理备份,非常遗憾 mysqlbackup命令只在mysql企业版才有。
还可以使用第三方软件xtrabackup进行物理热备
我的mysql版本是8.0.35
XtraBackup 2.4 与较新版本的 MySQL 5.7 兼容
XtraBackup 8.0.34 允许备份MySQL 8.0.35 和 MySQL 8.0.35 及更高版本。
1.0 准备工作
创建一个有备份相关权限的mysql用户 ,用于XtraBackup备份
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
mysql> GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
mysql> GRANT SELECT ON performance_schema.keyring_component_status TO 'bkpuser'@'localhost';
mysql> GRANT SELECT ON performance_schema.replication_group_members TO 'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;
查看用户权限
SHOW GRANTS FOR 'bkpuser'@'localhost';
1.1 Percona XtraBackup安装
使用yum安装
1.安装Percona yum仓库
sudo yum install \ https://repo.percona.com/yum/percona-release-latest.\ noarch.rpm
2.启动仓库
sudo percona-release enable-only tools release
3.安装 Percona XtraBackup
sudo yum install percona-xtrabackup-80
4.安装压缩算法
sudo yum install zstd
1.2 完整备份
xtrabackup --defaults-file=/etc/my8.cnf --backup --target-dir=/data/backups/ --user=bkpuser --password=123456
xtrabackup默认会读取mysql配置文件/etc/my.cnf,但是我服务器中有多个mysql,我想要指定备份mysql就需要参数--defaults-file=指定配置文件
1.3 增量备份
在 /data/backups/完全备份的基础上进行增量备份
xtrabackup --defaults-file=/etc/my8.cnf --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/ --user=bkpuser --password=123456
在 /data/backups/inc1/增量备份的基础上进行增量备份
xtrabackup --defaults-file=/etc/my8.cnf --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1/ --user=bkpuser --password=123456
1.4 压缩备份和解压
压缩
xtrabackup --defaults-file=/etc/my8.cnf --backup --compress --compress-threads=4 --compress-zstd-level=1 --target-dir=/data/backups2/ --user=bkpuser --password=123456
--compress:Zstandard (ZSTD)算法进行压缩
--compress-threads=4:使用四个线程进行压缩
--compress-zstd-level=1:指定压缩级别,默认1
解压
xtrabackup --decompress --target-dir=/data/backups4/
--decompress:解压
默认解压不会删除压缩文件,他会把压缩文件和解压好的文件放在一起
可以使用--remove-original选项解压后删除压缩文件
1.5 备份恢复
在恢复之前一定要先准备备份(Prepare backup)
1.5.1 准备备份
关于Prepare backup的说明可以参考「XtraBackup」- 备份数据的“预备”(Prepare)操作 @20210220_xtrabackup --prepare-CSDN博客
XtraBackup 复制 InnoDB 数据文件,导致数据内部不一致;然后,该阶段对文件执行崩溃恢复,以再次创建一致、可用的数据库 。
1.5.1.1 准备完整备份
xtrabackup --prepare --target-dir=/data/backups/
1.5.1.1 准备增量备份
/data/backups8/base 基础备份
/data/backups8/inc1 base为基础进行的增量备份
/data/backups8/inc2 inc2为基础进行的增量备份
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base
xtrabackup --prepare --apply-log-only --target-dir=/data/backups8/base --incremental-dir=/data/backups8/inc1
xtrabackup --prepare --target-dir=/data/backups/base --incremental-dir=/data/backups/inc2
--apply-log-only:防止回滚,增量恢复一定要加上这个选项,最后一个准备备份不用加这个选项
执行完准备备份后,增量备份文件都整合到基础备份中了,恢复时直接把基础备份复制到数据目录中进行恢复。
1.5.2 还原备份
1.关闭数据库
2.清空原数据库的数据目录
3.把备份目录复制到数据目录
xtrabackup --defaults-file=/etc/my8.cnf --copy-back --target-dir=/data/backups8/base
或者使用 rsync 或 cp 来恢复文件
3.修改数据目录的归属权
chown mysql8:mysql8 /opt/mysql/mysql8/data -R
4.启动数据库
2.逻辑备份恢复
逻辑备份是把数据转成SQL格式文件备份。这种方式转换需要耗时,效率较低,适合小中型数据库。优点是灵活,可以备份指定数据库、指定表等。移植性也好,恢复时不用一定要和备份时的mysql版本一样。逻辑备份只能热备。
2.1 使用mysqldump进行备份
2.1.1 以 SQL 格式转储数据
备份所以数据库
mysqldump --all-databases > dump.sql
备份指定数据库
mysqldump --databases db1 db2 db3 > dump.sql
备份单个数据库
方式一: 输出包含 create database 和 use 语句。
mysqldump --databases test > dump.sql
方式二:没有 --databases,输出不包含 create database 和 use 语句,在恢复时需要主动 create database 和 use 数据库。
mysqldump test > dump.sql
2.1.2 以 SQL 格式恢复数据
使用 --databases的数据备份文件数据恢复
方法一:
mysql < dump.sql
方法二:
mysql> source dump.sql
如果没有使用 --databases的数据备份文件数据恢复
方法一:
先创建数据库
mysqladmin create db1
再加载转储文件
mysql db1 < dump.sql
方法二:
mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql
2.1.3 以分隔文本格式转储数据
备份test数据库到 /opt/mysql/mysql8/下
mysqldump -uroot -p -P 3308 -S /tmp/mysql3.sock --tab=/opt/mysql/mysql8 test
注意:如果出现错误
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement when executing 'SELECT INTO OUTFILE'
需要在my.cnf配置文件下[mysqld]下添加secure-file-priv = /opt/mysql/mysql8表示这个位置可以放分隔文本格式转储数据文件,记得还要用chonw更换这个目录的用户所属权成mysql用户
这个命令将生成两个文件
这个命令还有很多其他选项指定数据存储文本的格式
mysqldump -uroot -p -P 3308 -S /tmp/mysql3.sock --tab=/opt/mysql/mysql8 --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by=0x0d0a test
生成数据文本
"2","cxk"
"1","hwz"
--fields-terminated-by=str
用于分隔列值的字符串 (默认值: tab)
--fields-enclosed-by=char
将列值括起来的字符(默认值: 无字符)
--fields-optionally-enclosed-by=char
要将非数字列括起来的字符值 (默认值:无字符)
--fields-escaped-by=char
用于转义特殊字符的字符(默认值: 否) 转义)
--lines-terminated-by=str
行终止字符串 (默认值: 换行符)
2.1.4 以分隔文本格式数据恢复
方法一:
mysql db1 < t1.sql
mysqlimport db1 t1.txt
方法二:
mysql> USE db1;
mysql> LOAD DATA INFILE 't1.txt' INTO TABLE t1;
相关文章:
mysql简单备份和恢复
版本:mysql8.0 官方文档 :MySQL :: MySQL 8.0 Reference Manual :: 7 Backup and Recovery 1.物理备份恢复 物理备份是以数据文件形式备份。这种方式效率高点,适合大型数据库备份。物理备份可冷备可热备。 使用mysqlbackup 命令进行物理备…...
JMeter介绍
1. JMeter是什么? 是Apache组织开发基于Java的接口测试工具,性能测试工具 2.JMeter的优缺点 优点: 开源,免费 跨平台 支持多协议 轻量级别 缺点: 不支持IP欺骗 不可验证页面UI 3.JMeter可以用来做什么? …...
flink job同时使用BroadcastProcessFunction和KeyedBroadcastProcessFunction例子
背景: 广播状态可以用于规则表或者配置表的实时更新,本文就是用一个欺诈检测的flink作业作为例子看一下BroadcastProcessFunction和KeyedBroadcastProcessFunction的使用 BroadcastProcessFunction和KeyedBroadcastProcessFunction的使用 1.首先看主流…...
数据中心系统解决方案
设计思路 系统设计过程中充分考虑各个子系统的信息共享要求,对各子系统进行结构化和标准化设计,通过系统间的各种联动方式将其整合成一个有机的整体,使之成为一套整体的、全方位的数据中心大楼综合管理系统,达到人防、物防和技防…...
服务器开设新账户,创建账号并设置密码
实验室又进新同学了,服务器开设新账号搞起来 1、创建用户: 在root权限下,输入命令useradd -m 用户名,如下 sudo useradd -m yonghuming 2、设置密码: 输入命令passwd 用户名 回车,接着输入密码操作&…...
【C++】关于构造函数后面冒号“:“的故事------初始化列表(超详细解析,小白一看就懂)
目录 一、前言 二、 初始化的概念区分 三、初始化列表 (重点) 💦初始化列表的概念理解 💦初始化列表的注意事项 四、共勉 一、前言 在之前的博客学习中,我们已经学习了【C】的六大默认成员函数 ,想必大…...
【Shell 系列教程】shell基本运算符(四)
文章目录 往期回顾关系运算符布尔运算符逻辑运算符字符串运算符文件测试运算符其他检查符: 往期回顾 【Shell 系列教程】shell介绍(一)【Shell 系列教程】shell变量(二)【Shell 系列教程】shell数组(三&am…...
MongoDB安装及开发系例全教程
一、系列文章目录 一、MongoDB安装教程—官方原版 二、MongoDB 使用教程(配置、管理、监控)_linux mongodb 监控 三、MongoDB 基于角色的访问控制 四、MongoDB用户管理 五、MongoDB基础知识详解 六、MongoDB—Indexs 七、MongoDB事务详解 八、MongoDB分片教程 九、Mo…...
ffmpeg命令帮助文档
一:帮助文档的命令格式 ffmpeg -h帮助的基本信息ffmpeg -h long帮助的高级信息ffmpeg -h full帮助的全部信息 ffmpeg的命令使用方式:ffmpeg [options] [[infile options] -i infile] [[outfile options] outfile] 二:将帮助文档输出到文件 …...
回归预测 | Matlab实现SO-CNN-SVM蛇群算法优化卷积神经网络-支持向量机的多输入单输出回归预测
Matlab实现SO-CNN-SVM蛇群算法优化卷积神经网络-支持向量机的多输入单输出回归预测 目录 Matlab实现SO-CNN-SVM蛇群算法优化卷积神经网络-支持向量机的多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.SO-CNN-SVM蛇群算法优化卷积神经网络-支持向量…...
【原创】java+swing+mysql校园共享单车管理系统设计与实现
摘要: 校园共享单车作为一种绿色、便捷的出行方式,在校园内得到了广泛的应用。然而,随着单车数量的增加,管理难度也不断加大。如何提高单车的利用率和管理效率,成为校园共享单车发展面临的重要问题。本文针对这一问题…...
(自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
(自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载 带后台系统PbootCMS内核开发的网站模板,该模板适用于新闻博客网站、自媒体运营网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可&#…...
SystemC入门完整编写示例:全加器测试平台
导读: 本文将完整演示基于systemC编写一个全加器的测试平台。具体内容包括:激励平台,监控平台,待测单元的编写,波形文件读取。 1,main函数模块 搭建一个测试平台主要由:Driver, Monitor, DUT(design under …...
动手学深度学习:2.线性回归pytorch实现
动手学深度学习:2.线性回归pytorch实现 1.手动构造数据集2.小批量读取数据集3.定义模型和损失函数4.初始化模型参数5.小批量随机梯度下降优化算法6.训练完整代码Q&A 1.手动构造数据集 import torch from torch.utils import data from d2l import torch as d2l…...
重要的linux指令
系统管理命令 切换用户 su 用户名管理员身份运行 sudo 命令实时显示进程信息(linux下任务管理器) top查看进程信息(ps) ps -efps -ef | grep 进程名 ps -aux | grep 进程名参数说明e 显示所有进程f 全格式a 显示所有程序u 以用户为主的格式来显示程序状况x 显示无控制终端…...
delphi7安装并使用皮肤控件
1、下载控件 我已经上传到云盘,存储位置 2、下载后并解压。 3、打开dephi7,File-Open,打开路径D:\LC\Desktop\vclskin2_XiaZaiBa\d7, 然后将 D:\LC\Desktop\vclskin2_XiaZaiBa\d7文件夹中所有后缀.dcu的文件复制粘贴到delphi安装路…...
安徽省黄山景区免9天门票为哪般?
今日浑浑噩噩地睡了大半天,强撑起身子写网文......可是,题材不好选,本“人民体验官”只得推广人民日报官方微博文化产品《这两个月“黄山每周三免门票”》。 图:来源“人民体验官”推广平台 因年事渐高,又有未愈的呼吸…...
MFC 窗体插入图片
1.制作BMP图像1.bmp 放到res文件夹下,资源视图界面导入res文件夹下的1.bmp 2.添加控件 控件类型修改为Bitmap 图像,选择IDB_BITMAP1 3.效果...
关于中间件技术
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。中间件可以: 1、负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。 2、提供应用的负载均衡和高可用性、安全机制与管…...
机器学习中的嵌入:释放表征的威力
简介 机器学习通过使计算机能够从数据学习和做出预测来彻底改变了人工智能领域。机器学习的一个关键方面是数据的表示,因为表示形式的选择极大地影响了算法的性能和有效性。嵌入已成为机器学习中的一种强大技术,提供了一种捕获和编码数据点之间复杂关系的…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
