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…

【密码学】五、序列密码

序列密码 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…

【深度学习】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…

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源代码…

【运维】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: …

冒泡排序算法

冒泡排序 算法说明与代码实现&#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…

【HttpRunnerManager】搭建接口自动化测试平台实战

目录 一、需要准备的知识点 二、我搭建的环境 三、搭建过程 四、访问链接 五、两个问题点 【整整200集】超超超详细的Python接口自动化测试进阶教程&#xff0c;真实模拟企业项目实战&#xff01;&#xff01; 一、需要准备的知识点 1. linux: 安装 python3、nginx 安装和…

emWin - BMP图片显示

BmpCvt.exe 用途 利用BMP图片&#xff0c;进行GUI显示&#xff1b;ICON等图标都是小BMP图片&#xff0c;核心是将BMP图片&#xff0c;转成emWin支持的方式&#xff0c;最终显示到TFT屏上 使用BmpCvt.exe工具&#xff0c;将各个图片转成相应的C文件. emWin有关的工具&#xff…

测试|Selenium介绍及环境搭建

测试|Selenium介绍及环境搭建 1.Selenium是什么 Selenium是用来做web网站 UI自动化的测试工具/测试框架。 我们这里说的Selenium是Selenium2.0&#xff0c;它由Selenium IDE&#xff0c;Webdriver, Selenium Grid组成。 Selenium IDE是用于Selenium测试的完成集成开发环境&…

云计算——云计算关键技术

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 前言 一.云计算关键技术 1.虚拟化技术 2.分布式数据存储技术 &#xff08;1&…

天下风云出我辈,AI准独角兽实在智能获评“十大数字经济风云企业

时值盛夏&#xff0c;各地全力拼经济的氛围同样热火朝天。在浙江省经济强区余杭区这片创业热土上&#xff0c;人工智能助力数字经济建设正焕发出蓬勃生机。 7月28日&#xff0c;经专家评审、公开投票&#xff0c;由中共杭州市余杭区委组织部&#xff08;区委两新工委&#xff…

如何解决制造业数字化改造的障碍?

制造业的数字化转型可能是一个复杂且具有挑战性的过程&#xff0c;但解决以下障碍有助于为成功实施铺平道路&#xff1a; 抵制变革&#xff1a;数字化转型中最常见的挑战之一是员工的抵制&#xff0c;尤其是那些习惯传统方法的员工。为了克服这一问题&#xff0c;组织需要培养一…

JDBC-笔记

JDBC 1. JDBC介绍 JDBC&#xff08;Java Database Connectivity&#xff09;是一种用于连接和操作数据库的 Java API。 通过Java操作数据库的流程 第一步&#xff1a;编写Java代码 第二步&#xff1a;Java代码将SQL发送到MySQL服务端 第三步&#xff1a;MySQL服务端接收到SQ…