MySQL的备份与还原

MySQL的备份与还原

1、MySQL的备份说明

热备:

  • 在数据库正在运行下进行备份,备份期间,数据库读写均可以正常进行;

温备:

  • 数据库可用性弱于热备,备份期间,数据库只能进行读操作,不能进行写操作。

冷备:

  • 在备份期间,应用的读写操作不可进行。

2、基于mysqldump命令进行数据备份

#备份一个库
[root@Node1 ~]# mysqldump -uroot -p'123456' --databases LJW > /root/LJW.sql#这一行不是报错,而是警告,说你的密码暴露在命令行上
mysqldump: [Warning] Using a password on the command line interface can be insecure.#备份多个库
[root@Node1 ~]# mysqldump -uroot -p'123456' --databases LJW WEB > /root/LJW-WEB.sql#备份所有的数据库
[root@Node1 ~]# mysqldump -uroot -p'123456' --all-databases> /root/all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.#单独备份一个表格-->备份WEB.t1表格
[root@Node1 ~]# mysqldump -uroot -p'123456'  WEB t1 > /root/t1.sql

数据还原操作

  • 登陆mysql
  • 使用命令source 接上系统路径
#登陆mysql-->进行删除操作
[root@Node1 ~]# mysql -uroot -p'123456'#查看一下有什么数据库
mysql> show databases;#删除LJW和WEB数据库
mysql> drop database LJW;
mysql> drop database WEB;
Query OK, 1 row affected (0.01 sec)#现在已经没有了LJW和WEB库;那么进行还原
mysql> source /root/LJW-WEB.sql#再次查看发现完全没有问题
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| LCQ                |
| LJW                |
| WEB                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.01 sec)
  • 也可以通过mysql的命令来进行还原操作
    • 必须存在库,只用还原库中的表格结构以及数据,如果数据库被删掉就无法自动创建出来
#登陆mysql-->进行删除操作
[root@Node1 ~]# mysql -uroot -p'123456'#查看一下有什么数据库
mysql> show databases;#删除LJW和WEB数据库
mysql> drop database LJW;
mysql> drop database WEB;
Query OK, 1 row affected (0.01 sec)#使用mysql进行还原
[root@Node1 ~]# mysql -uroot -p'123456' < /root/LJW-WEB.sql#进入数据库查看
[root@Node1 ~]# mysql -uroot -p'123456' < /root/LJW-WEB.sql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| LCQ                |
| LJW                |
| WEB                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

3、数据还原–>通过binlog的方式进行

  • 这里需要注意一个点,需要提前知道binlog号
  • 配置文件中也需要注意查看是否有bin-log的配置
  • binlog是默认开启的,日志的操作信息在/var/lib/mysql/目录下
#登陆一个mysql
[root@Node1 ~]# mysql -uroot -p'123456'#刷新一个binlog
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)#然后再次查看一下binlog号
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      157 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)#创建一下表格
mysql> use LJW;
mysql> create table liangjiawei(id varchar(10),sex varchar(3),name varchar(20)); 
Query OK, 0 rows affected (0.00 sec)#再次刷新一下binlog日志
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)#查看一下binlog号
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |      157 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)#把004的binlog号归档
[root@Node1 ~]# mysqlbinlog --no-defaults --base64-output=decode-rows -v /var/lib/mysql/mysql-bin.000004#然后进行删除数据
[root@Node1 ~]# mysql -uroot -p'123456'
..........
mysql> drop table LJW.liangjiawei;
Query OK, 0 rows affected (0.01 sec)#然后查看是否删除了
mysql> use LJW;
mysql> show tables;
+---------------+
| Tables_in_LJW |
+---------------+
| t1            |
+---------------+
1 row in set (0.00 sec)#然后进行还原操作
[root@Node1 ~]# mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000004 | mysql -uroot -p123456

4、Xtrabackup备份工具

Xtrabackup是Percona团队开发的用于MySQL数据库物理热备份的开源备份工具,

特点:

  • 备份速度快、
  • 支持备份数据压缩、
  • 自动校验备份数据、
  • 支持流式输出、
  • 备份过程中几乎不影响业务等特点
  • 是目前各个云厂商普遍使用的MySQL备份工具。

下载地址:

  • https://www.percona.com/downloads

具体操作如下:

#准备好xtrabackup的软件包
[root@Node1 ~]# ls percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm 
percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm#直接rpm安装
[root@Node1 ~]# rpm -ivh --nodeps --force percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm #查看是否安装成功
[root@Node1 ~]# echo $?
0#检查一下是否成功安装
[root@Node1 ~]# xtrabackup -v
2023-08-24T10:50:37.739035+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --datadir=/var/lib/mysql 
xtrabackup version 8.0.33-28 based on MySQL server 8.0.33 Linux (x86_64) (revision id: b3a3c3dd)#创建一个data目录
[root@Node1 ~]# mkdir /data#对数据进行备份
[root@Node1 ~]# xtrabackup --user=root --password=root --backup --target-dir=/data/mysql_backup
#查看执行是否成功
[root@Node1 ~]# echo $?
0
[root@Node1 ~]# ls /data/mysql_backup/
backup-my.cnf   mysql               xtrabackup_binlog_info
binlog.000002   mysql.ibd           xtrabackup_checkpoints
binlog.index    performance_schema  xtrabackup_info
ib_buffer_pool  sys                 xtrabackup_logfile
ibdata1         undo_001            xtrabackup_tablespaces
LJW             undo_002# 还原先停mysql服务
[root@Node1 ~]# systemctl stop mysqld#然后直接删除mysql的数据-->来点狠点的
[root@Node1 ~]# cd  /var/lib/mysql/
[root@Node1 mysql]# 
[root@Node1 mysql]# rm -rf  LJW#然后尝试恢复数据
[root@Node1 mysql]# xtrabackup --prerepare --target-dir=/data/mysql_backup
[root@Node1 mysql]# xtrabackup --copy-back --target-dir=/data/mysql_backup/#修改/data/mysql所属权限,修改/etc/my.cnf配置中的datadir路径
chown -R mysql:mysql /data/mysql
sed -i "s#datadir=/var/lib/mysql#datadir=/data/mysql#g" /etc/my.cnf
[root@yue home]# grep datadir    /etc/my.cnf
datadir=/data/mysql# 启动mysql服务,验证
systemctl start mysqld

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

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

相关文章

hcip——BGP实验

要求 1.搭建toop 2.地址规划 路由器AS接口地址R11 loop0:1.1.1.1 24 loop1 : 192.168.1.1 24 g0/0/0 12.0.0.1 24 R22 64512 g0/0/0: 12.0.0.2 24 g/0/01: 172.16.0.2 19 g0/0/2: 172.16.96.2 19 R32 64512g0/0/0: 172.16.0.3 19 g0/0/1:1…

版本兼容问题——C++ 字符串库(std::basic_string::stoi)

软件开发过程中经常会存在版本更迭问题,对于如何做好版本之间的兼容性,相信也是八仙过海,各有神通。 那么,当我们确定了一个版本,怎么比较版本之间的差异呢? 且看如下代码: int CompareVersion(const std::string& strCurVersion, const std::string& strHis…

Linux systemctl命令详解

systemctl是Linux中用于管理系统服务&#xff08;例如防火墙等&#xff09;的命令行工具。它是一个功能强大的工具&#xff0c;可以启动、停止、重启、查看状态、启用或禁用系统服务&#xff0c;以及管理系统的单元&#xff08;units&#xff09;和套接字&#xff08;sockets&a…

chrome扩展控制popup页面动态切换

文章目录 1、通过控制元素的显示隐藏达到popup页面切换的效果2、通过监听页面重新加载完成不同popup的切换3、直接修改popup页面location.href&#xff0c;无需刷新页面 1、通过控制元素的显示隐藏达到popup页面切换的效果 下面在mv2版本的API下完成 实际上通过控制页面元素实…

【密码学】五、序列密码

序列密码 1、概述1.1序列密码的分类1.1.1同步序列密码1.1.2自同步序列密码 2、序列密码的组成2.1密钥序列生成器KG2.2有限状态自动机 3、LFSR 1、概述 采用一个短的种子密钥来控制某种算法获得长的密钥序列的办法&#xff0c;用以提供加解密&#xff0c;这个种子密钥的长度较短…

Qt 5. QSerialPort串口收发

1. 代码 //ex2.cpp #include "ex2.h" #include "ui_ex2.h" #include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPortInfo>int static cnt 0;Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2) {ui->setupUi…

写Acknowledgement的时候,latex日志出现警告

用latex写论文的时候&#xff0c;\section{Conclusion}下面添加 \backmatter \bmhead{Acknowledgments}时报错&#xff1a;错误log&#xff1a; \bmhead Package hyperref Warning: Difference (4) between bookmark levels is greater than one, level....错误原因&#xff…

【深度学习】InST,Inversion-Based Style Transfer with Diffusion Models,论文,风格迁移,实战

代码&#xff1a;https://github.com/zyxElsa/InST 论文&#xff1a;https://arxiv.org/abs/2211.13203 文章目录 AbstractIntroductionRelated WorkImage style transferText-to-image synthesisInversion of diffusion models MethodOverview ExperimentsComparison with Sty…

Java版企业电子招标采购系统源代码Spring Boot + 二次开发 + 前后端分离 构建企业电子招采平台之立项流程图

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及审…

android 如何分析应用的内存(十四)——jdb命令行

android 如何分析应用的内存&#xff08;十四&#xff09; 前面的系列文章介绍了android应用如何分析native内存。 接下来就是android应用如何分析java内存。同native一样&#xff0c;我们也希望能够看到 ART的堆和栈的情况&#xff0c;以及锁的情况&#xff0c;方法的本地变…

【驱动开发day8作业】

作业1&#xff1a; 应用层代码 #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include <sys/ioctl.h>int main(int…

代码随想录算法训练营day51

文章目录 Day51 最佳买卖股票时机含冷冻期题目思路代码 买卖股票的最佳时机含手续费题目思路代码 Day51 最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 题目 给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天…

Docker安装es以及ik分词器

1、拉取镜像 docker pull elasticsearch:7.10.12、下载对应版本的ik分词、并将它们解压到ik文件夹下&#xff0c;如图 https://github.com/medcl/elasticsearch-analysis-ik/releases 3、在服务器上创建文件夹 mkdir /usr/elklog/elk/es mkdir /usr/elklog/elk/es/data mkdi…

Web3教程| 如何发现并追踪“聪明钱”?

在加密领域&#xff0c;聪明钱&#xff08;Smart Money&#xff09;是指拥有专业知识、对市场有深入了解以及具有信息优势的专业投资机构或个人投资者。 聪明钱一直以来都是加密市场中的关注焦点&#xff0c;因为这些实体通常可以获得普通交易者不易获得的信息和资源&#xff0…

【Web开发指南】如何用MyEclipse进行JavaScript开发?

由于MyEclipse中有高级语法高亮显示、智能内容辅助和准确验证等特性&#xff0c;进行JavaScript编码不再是一项繁琐的任务。 MyEclipse v2023.1.2离线版下载 JavaScript项目 在MyEclipse 2021及以后的版本中&#xff0c;大多数JavaScript支持都是开箱即用的JavaScript源代码…

ChatGPT:人工智能交互的新时代

ChatGPT的背景和发展&#xff1a; ChatGPT是OpenAI公司在GPT-3基础上的进一步升级。GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种基于Transformer架构的深度学习模型&#xff0c;它能够处理自然语言&#xff0c;实现自动对话、写作等任务。而ChatGPT在…

【运维】hive 终端突然不能使用:Hive Schema version does not match metastore‘s schema version

文章目录 一. 问题描述二. 常规排查1. 元数据库2. hive-site.xml相关meta连接信息检查 三. 正解 一. 问题描述 进入hive终端&#xff0c;执行如下命令报错&#xff1a; hive> show tables; FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: …

Entity Framework(EF)查询

一、In 查询 var list = dbContext.Users.Where(u => new int[] {1, 2, 3, 5,

冒泡排序算法

冒泡排序 算法说明与代码实现&#xff1a; 简单分析&#xff0c;外循环次数为数据len(arr)-1次&#xff0c;内循环为len(arr)-外循环次数 下面是使用Go语言实现冒泡排序算法的示例&#xff1a; package mainimport "fmt"func bubbleSort(arr []int) {n : len(arr…

【JavaEE】简单了解JVM

目录 一、JVM中的内存区域划分 二、JVM的类加载机制 1、类加载的触发时机 2、双亲委派模型 1.1、向上委派 1.2、向下委派 三、JVM中的垃圾回收机制&#xff08;GC&#xff09; 1、确认垃圾 1.1、引用计数&#xff08;Java实际上没有使用这个方案&#xff0c;但是Pytho…