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; 

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

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

相关文章

CATIA环境编辑器用不了时创建项目快捷方式

CATIA环境编辑器用不了时创建项目快捷方式 一、参考适用情况示例二、 解决步骤(一) 先正确放置winb_64部署包(二) 添加环境文件(三) 修改加入的环境文件(四) 复制本机CATIA快捷方式后重命名(五) 修改快捷方式目标的值 一、参考适用情况示例 二、 解决步骤 (一) 先正确放置winb…

LeetCode-20-有效的括号

1.我的暴力解法 class Solution {public boolean isValid(String s) {Stack<Character> stknew Stack<Character>();int i0;//奇数直接不可能是匹配的if(s.length()%2!0)return false;for (;i<s.length();i){if(s.charAt(i)(){stk.push(();}else if(s.charAt(i…

【Spring】@Component组件

大前提&#xff1a; 添加了相关的约束文件以及注解支持 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:…

20231106-前端学习加载和视频球特效

加载效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>加载效果</title><!-- 最新…

虚拟数字人引领企业创新浪潮

在人工智能和计算机图形学快速发展的今天&#xff0c;虚拟数字人正逐渐成为企业形象展示的新趋势。作为一种融合了多种技术的数字化形象&#xff0c;虚拟数字人具有逼真的外观、情感表达和思维逻辑&#xff0c;能够与人类进行自然、流畅的互动&#xff0c;为企业提供全天候、个…

uniApp获取当前位置经纬度

以下是使用uni.getLocation获取当前位置的示例代码&#xff1a; 调用uni.getLocation方法获取当前位置信息 uni.getLocation({type: wgs84, // 坐标类型&#xff0c;默认为wgs84&#xff0c;可选的值为gcj02和bd09llsuccess: res > {// 获取成功&#xff0c;经度和纬度在r…

本地电脑部署piwigo如何公网访问,轻松分享照片?

通过cpolar分享本地电脑上有趣的照片&#xff1a;部署piwigo网页 文章目录 通过cpolar分享本地电脑上有趣的照片&#xff1a;部署piwigo网页前言1.Piwigo2. 使用phpstudy网页运行3. 创建网站4. 开始安装Piwogo5. 设定一条内网穿透数据隧道6. 与piwigo网站绑定7. 在创建隧道界面…

Java 设计模式——外观模式

目录 1.概述2.结构3.实现3.1.子系统类3.2.外观类3.3.测试 4.优缺点5.使用场景6.源码解析 1.概述 &#xff08;1&#xff09;有些人可能炒过股票&#xff0c;但其实大部分人都不太懂&#xff0c;这种没有足够了解证券知识的情况下做股票是很容易亏钱的&#xff0c;刚开始炒股肯…

网工内推 | 售后工程师,IP认证优先,最高15薪,年底有分红

01 威发系统&#xff08;中国&#xff09;有限公司 招聘岗位&#xff1a;售后工程师 职责描述&#xff1a; 1、负责各种规模的项目售后安装、调试和维护工作&#xff1b; 2、解决工程和维护中的一般技术问题&#xff0c;支持、协助处理其他相关的技术问题&#xff1b; 3、与…

使用Android Jetpack Compose渲染效果打造酷炫的动画效果

如何在Android Jetpack Compose中使用渲染效果打造令人惊艳的视觉体验 学习示例&#xff1a;如何使用渲染效果来改变UI界面 引言 Jetpack Compose提供了各种工具和组件来构建引人入胜的UI&#xff0c;而在Compose中较为鲜为人知的一个宝藏是RenderEffect。 在这篇博文中&a…

Linux文件系统的功能规划

对于运行的进程来说&#xff0c;内存就像一个纸箱子&#xff0c;仅仅是一个暂存数据的地方&#xff0c;而且空间有限。如果我们想要进程结束之后&#xff0c;数据依然能够保存下来&#xff0c;就不能只保存在内存里&#xff0c;而是应该保存在外部存储中。就像图书馆这种地方&a…

操作系统引论(二)

操作系统发展动力及技术基础 推动操作系统的发展和资源利用率的提高是相关联的。 让输入输出相对独立&#xff0c;通道技术&#xff0c;通道相当于简单的处理器&#xff0c;通过输入输出指令&#xff0c;控制外设完成输入输出。 输入和输出过程不是由主机控制的&#xff0c;是…

flink的AggregateFunction,merge方法作用范围

背景 AggregateFunction接口是我们经常用的窗口聚合函数&#xff0c;其中有一个merge方法&#xff0c;我们一般情况下也是实现了的&#xff0c;但是你知道吗&#xff0c;其实这个方法只有在你使用会话窗口需要进行窗口合并的时候才需要实现 AggregateFunction.merge方法调用时…

大数据技术之集群数据迁移

文章目录 数据治理之集群迁移数据 数据治理之集群迁移数据 准备两套集群&#xff0c;我这使用apache集群和CDH集群。 启动集群 启动完毕后&#xff0c;将apache集群中&#xff0c;hive库里dwd,dws,ads三个库的数据迁移到CDH集群 在apache集群里hosts加上CDH Namenode对应域名并…

bff层解决了什么痛点

bff层 -- 服务于前端的后端 什么是bff&#xff1f; Backend For Frontend&#xff08;服务于前端的后端&#xff09;&#xff0c;也就是服务器设计API的时候会考虑前端的使用&#xff0c;并在服务端直接进行业务逻辑的处理&#xff0c;又称为用户体验适配器。BFF只是一种逻辑…

【hcie-cloud】【2】华为云Stack解决方案介绍、缩略语整理 【下】

文章目录 华为文档获取方式、云计算发展背景、坚实基座华为云Stack&#xff0c;政企只能升级首选智能数据湖仓一体&#xff0c;让业务洞见更准&#xff0c;价值兑现更快MRS&#xff1a;一个架构可构建三种数据湖&#xff0c;业务场景更丰富离线数据湖&#xff1a;提供云原生、湖…

服务器感染了.locked勒索病毒,如何确保数据文件完整恢复?

引言&#xff1a; 网络安全威胁的不断演变使得恶意软件如.locked勒索病毒成为当今数字时代的一大挑战。.locked勒索病毒能够加密您的文件&#xff0c;然后要求支付赎金以解锁它们。本文将深入探讨.locked勒索病毒的特点&#xff0c;以及如何应对感染&#xff0c;以及预防这种类…

3款免费又好用的 Docker 可视化管理工具

前言 Docker提供了命令行工具&#xff08;Docker CLI&#xff09;来管理Docker容器、镜像、网络和数据卷等Docker组件。我们也可以使用可视化管理工具来更方便地查看和管理Docker容器、镜像、网络和数据卷等Docker组件。今天我们来介绍3款免费且好用的 Docker 可视化管理工具。…

网络安全深入学习第八课——反向代理(工具:frp)

文章目录 一、实验环境二、实验要求三、开始模拟1、攻击机配置frp文件2、攻击拿下跳板机&#xff0c;并且上传frpc.ini、frpc.exe、frpc_full.ini文件3、把frps.ini、、frps.exe、frps_full.ini文件放到VPS主机上4、VPS机开启frp5、跳板机开启frp6、验证 一、实验环境 攻击机&…

云尘 命令执行系列

第一题 system <?php include "flag.php";if (isset($_POST[cmd])) {system($_POST[cmd]); }show_source(__FILE__);代码如上 system($_POST[cmd]); POST请求发送一个名为 cmd 的参数&#xff0c;然后将该参数的值传递给系统命令执行函数 system()&#xff0c…