当前位置: 首页 > news >正文

Linux学习之MySQL备份

xtrabackup资源下载

完全备份与恢复

# 1.物理备份与恢复
# 冷备份,需停止数据库服务 适合线下服务器。
[root@mysql50 ~]# systemctl stop mysqld
[root@mysql50 ~]# mkdir /bakdir
[root@mysql50 ~]# cp -r /var/lib/mysql /bakdir/mysql.bak
[root@mysql50 ~]# cd /var/lib/mysql
[root@mysql50 mysql]# tar -zcvf /bakdir/mysql.tar.gz ./*...
[root@mysql50 mysql]# ls /bakdir/
mysql.bak  mysql.tar.gz
# 删除数据
[root@mysql50 mysql]# rm -rf /var/lib/mysql/*
# 恢复数据(也可以使用cp拷贝的备份文件恢复数据)
[root@mysql50 mysql]# tar -xf /bakdir/mysql.tar.gz -C /var/lib/mysql/
[root@mysql50 mysql]# systemctl start mysqld
[root@mysql50 mysql]# mysql -uroot -p
Enter password: 
...mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| studb              |
| sys                |
| tarena             |
| tarena1            |
+--------------------+
9 rows in set (0.00 sec)
# 2.mysqldump备份与恢复
# 热备份,备份和恢复数据库服务必须是运行的
# 备份1张表
[root@mysql50 mysql]# mysqldump -uroot -p123456 tarena salary> /bakdir/tarena_salary.sql;
# 备份多张表
[root@mysql50 mysql]# mysqldump -uroot -p123456 tarena employees departments> /bakdir/tarena_departments_employees.sql;
# 备份1个库
[root@mysql50 mysql]# mysqldump -uroot -p123456 -B tarena >/bakdir/tarena.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
# 备份多个库
[root@mysql50 mysql]# mysqldump -uroot -p123456 -B studb db1 >/bakdir/stu_db1.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
# 备份所有库
[root@mysql50 mysql]# mysqldump -uroot -p123456 -A > /bakdir/allbak.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
# 恢复数据(覆盖恢复数据)
[root@mysql50 mysql]# mysql -uroot -p
Enter password: 
...
mysql> 
mysql> drop database tarena;            # 删除库
Query OK, 6 rows affected (1.83 sec)
mysql> exit
Bye
[root@mysql50 mysql]# mysql -uroot -p123456 < /bakdir/tarena.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@mysql50 mysql]# mysql -uroot -p
Enter password: 
...
mysql> use tarena; # 进库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;      # 看表
+------------------+
| Tables_in_tarena |
+------------------+
| departments      |
| employees        |
| salary           |
| user             |
| user2            |
| wage_grade       |
+------------------+
6 rows in set (0.00 sec)
# 删除表记录
mysql> delete from salary; //删除表记录
Query OK, 8055 rows affected (0.11 sec)
mysql> exit
Bye
# 使用备份文件恢复数据
[root@mysql50 ~]# mysql -uroot -p123456  tarena < /bakdir/tarena_salary.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql> select count(*) from tarena.salary;
+----------+
| count(*) |
+----------+
|     8055 |
+----------+
1 row in set (0.00 sec)
# 分析[Mysqldump 备份和恢复数据时会锁表,锁表期间无法对表做写访问,mysqldump适合备份数据量比较小的数据或在数据库服务器访问量少的时候备份。]# 通过备份脚本定时备份数据库
[root@mysql50 mysql]# vim /root/backsql.sh
#!/bin/bash
mysqldump -uroot -p123456 -B tarena > /bakdir/"tarena_$(date +%F)".sql
[root@mysql50 mysql]# chmod +x /root/backsql.sh 
# 设定计划任务,每天18:00备份数据库,可以根据自己需求来设定时间
[root@mysql50 mysql]# crontab -e
00 18 * * * /root/backsql.sh
分 时 日 月 周

增量备份与恢复

增量备份:备份上次备份后,新产生的数据。
Percona Xtrabackup是一款强大的在线热备份工具,备份过程中不锁库表,适合生产环境。支持完全备份与恢复、增量备份与恢复、差异备份与恢复。

# 数据增量备份
# 解压源码(在50,51两台机器上安装)
[root@mysql50 ~]# tar xf percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal.tar.gz 
# 安装依赖
[root@mysql50 ~]# yum install -y perl-DBD-MySQL
# 移动并改名
[root@host50 ~ ]# mv percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal /usr/local/percona
//把命令添加到系统环境变量
[root@host50 ~ ]# vim /etc/bashrc
export PATH=/usr/local/percona/bin:$PATH  添加在文件末尾
:wq
[root@host50 ~ ]# source  /etc/bashrc
//查看帮助信息
[root@host50 ~ ]# man xtrabackup (按q 退出)
#对数据做增量备份前,必须先有一次备份,也就是首次备份,通常是备份所有数据;比如每周周日完全备份,接下来进行增量备份。# ---周日完全备份
[root@mysql50 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/fullbak --datadir=/var/lib/mysql
...
xtrabackup: Transaction log of lsn (23970132) to (23970152) was copied.
230913 14:37:47 completed OK!
# ---开始增量备份
[root@mysql50 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/new2 --incremental-basedir=/fullbak --datadir=/var/lib/mysql
# ----在50服务器上创建一个数据库并创建一个表
mysql> create database first;
Query OK, 1 row affected (0.09 sec)mysql> use first;
Database changed
mysql> create table s1(id int,name varchar(30));
Query OK, 0 rows affected (0.78 sec)# 数据增量恢复
1.准备恢复数据
2.合并数据
3.清空数据库目录
4.拷贝数据
5.修改数据库目录所有者/组为mysql
6.重启数据库服务
# 将50服务器上备份的数据拷贝到51服务器
[root@mysql51 ~]# scp -r 192.168.88.50:/fullbak /root/
[root@mysql51 ~]# scp -r 192.168.88.50:/new2 /root/
# 准备恢复数据
[root@mysql51 ~]# xtrabackup --prepare --apply-log-only --target-dir=/root/fullbak
# 合并数据,如果有多个增量,同理,将所有增量数据依次进行合并,都合并至完全备份目录
[root@mysql51 ~]# xtrabackup --prepare --apply-log-only --target-dir=/root/fullbak --incremental-dir=/root/new2/
# 清空数据库目录
[root@mysql51 ~]# rm -rf /var/lib/mysql/*
# 拷贝数据
[root@mysql51 ~]# xtrabackup --copy-back --target-dir=/root/fullbak
# 修改数据库目录所有者/组
[root@mysql51 ~]# chown -R mysql.mysql /var/lib/mysql
# 重启数据库
[root@mysql51 ~]# systemctl start mysqld
# 连接数据库查看信息,能查看到first数据库
[root@mysql51 ~]# mysql -uroot -p123456
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| first              |
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| studb              |
| sys                |
| tarena             |
| tarena1            |
+--------------------+
10 rows in set (0.00 sec)

差异备份与恢复

差异备份:备份完全备份后,新产生的数据。

# 对数据做差异备份前,必须先有一次备份,也就是首次备份,通常是备份所有数据;比如每周周一完全备份,周二到周日差异备份。
# 完全备份数据
[root@mysql50 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --datadir=/var/lib/mysql --target-dir=/allbak
# 添加增量数据
[root@mysql50 ~]# mysql -uroot -p
Enter password: mysql> create database second;
Query OK, 1 row affected (0.49 sec)mysql> use second;
Database changed
mysql> create table a1(id int,name char(10));
Query OK, 0 rows affected (1.09 sec)
# 差异备份和增量备份类似,只是每次备份是基于完全备份的
[root@mysql50 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --datadir=/var/lib/mysql --target-dir=/dir2 --incremental-basedir=/allbak
# 在second库的a1表中插入数据
mysql> insert into a1 values(1,'a'),(2,'b');
# 再次差异备份
[root@mysql50 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --datadir=/var/lib/mysql --target-dir=/dir3 --incremental-basedir=/allbak# 差异恢复
1.准备恢复数据
2.合并数据
3.清空数据库目录
4.拷贝数据
5.修改数据库目录所有者/组用户为mysql
6.重启数据库服务
# MySQL51 拷贝 MySQL50 的备份文件到 本机的根目录下,拷贝时只需要拷贝完全备份和最后一次差异备份的目录即可
[root@mysql51 ~]# scp -r 192.168.88.50:/allbak /root/
[root@mysql51 ~]# scp -r 192.168.88.50:/dir3 /root/
# 准备恢复数据
[root@mysql51 ~]# xtrabackup --prepare --apply-log-only --target-dir=/root/allbak
# 合并数据
[root@mysql51 ~]# xtrabackup --prepare --apply-log-only --target-dir=/root/allbak --incremental-dir=/root/dir3
# 清空数据库目录
[root@mysql51 ~]# rm -rf /var/lib/mysql/*
# 拷贝数据
[root@mysql51 ~]# xtrabackup --copy-back --target-dir=/root/allbak
# 修改数据库目录所有者/组
[root@mysql51 ~]# chown -R mysql.mysql /var/lib/mysql
# 启动数据库服务器
[root@mysql51 ~]# systemctl start mysqld
# 连接服务查看数据
[root@mysql51 ~]# mysql -uroot -p
Enter password: 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| first              |
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| second             |
| studb              |
| sys                |
| tarena             |
| tarena1            |
+--------------------+
11 rows in set (0.01 sec)mysql> select * from second.a1;
+------+------+
| id   | name |
+------+------+
|    1 | a    |
|    2 | b    |
+------+------+
2 rows in set (0.00 sec)

相关文章:

Linux学习之MySQL备份

xtrabackup资源下载 完全备份与恢复 # 1.物理备份与恢复 # 冷备份&#xff0c;需停止数据库服务 适合线下服务器。 [rootmysql50 ~]# systemctl stop mysqld [rootmysql50 ~]# mkdir /bakdir [rootmysql50 ~]# cp -r /var/lib/mysql /bakdir/mysql.bak [rootmysql50 ~]# cd /…...

时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化

时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化 目录 时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 北方苍鹰优化算法NGO优化VMD&#xff0c;对其分解层数&#xff0c;惩罚因子数做优化…...

分类预测 | Matlab实现RBF-Adaboost多特征分类预测

分类预测 | Matlab实现RBF-Adaboost多特征分类预测 目录 分类预测 | Matlab实现RBF-Adaboost多特征分类预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于RBF-Adaboost数据分类预测&#xff08;Matlab完整程序和数据&#xff09; 2.多特征输入…...

【Java代码规范】阿里编码规约 VS CheckStyle

全文速览&#xff1a; 1、关于代码编码质量2、如何小成本有效管理企业内的编码规范 2.1 阿里编码规约IDE插件2.2 CheckStyle IDE插件 3、如何在代码提交中检验规范 3.1 阿里编码规约配置git precommit check3.2 CheckStyle配置git precommit check3.3 实践 1、关于代码编码质…...

iPhone苹果15手机圆点怎么设置让屏幕上显示出来圆形图标?

iPhone苹果15手机圆点怎么设置让屏幕上显示出来圆形图标&#xff1f; 1、在iPhone苹果手机上找到「设置」并点击打开&#xff1b; 2、在苹果iPhone设置内找到「辅助功能」并点击打开&#xff1b; 3、在苹果iPhone手机辅助功能内的动作交互内找到「触控」并点击打开&#xff1b…...

kibana报错内存溢出问题解决

一、背景&#xff1a; kibana内存溢出&#xff0c;进程被kill掉&#xff0c;导致前端页面访问不到。 报错内容 二、报错原因&#xff1a; 发现是前端 js 报的内存 oom 异常&#xff0c;通过网上资料发现node.js 的默认内存大小为1.4G Node 中通过 JavaScript 使用内存时只能…...

【C语法】1124循环结构

#include <stdio.h> int main(){ //输入一个数。倒叙输出各个位上的数。 //123456 6 5 4 3 2 1 // 1输出个位上的数 %10 // 2将这个数去掉个位上的数。 / 10 // 3当这个数最后变成0时结束 int a 0; printf("请输入一个正整数&#xff1a;"); scanf…...

在PHP8中向数组添加元素-PHP8知识详解

在php8中向数组添加元素有多种方法&#xff0c;在这里主要讲解几个常用的方法&#xff1a;使用方括号[]添加元素、使用array_unshift()函数&#xff0c;向数组的头部添加元素、使用array_push()函数&#xff0c;向数组的尾部添加元素、使用array_splice()函数添加元素。 1、使用…...

Drupal __ 8.5.0 __ XSS文件上传 __CVE-2019-6341

Drupal __ 8.5.0 __ XSS文件上传 __CVE-2019-6341 说明内容漏洞编号CVE-2019-6341漏洞名称Drupal XSS漏洞漏洞评级中危影响范围在7.65之前的Drupal 7版本中&#xff1b; 8.6.13之前的Drupal 8.6版本; 8.5.14之前的Drupal 8.5版本。漏洞描述Drupal诞生于2000年&#xff0c;是一…...

Pycharm中配置Celery启动

Pycharm中配置Celery启动 前置条件 目录结构 ----FerDemo --------celery_demo ------------tasks.py tasks.py文件代码 import sys import time from celery import Celeryapp Celery(demo,backendredis://:password127.0.0.1/0,brokerredis://:password127.0.0.1/1,broker…...

Jmeter —— 常用的几种断言方法(基本用法)

在使用JMeter进行性能测试或者接口自动化测试工作中&#xff0c;经常会用到的一个功能&#xff0c;就是断言&#xff0c;断言相当于检查点&#xff0c;它是用来判断系统返回的响应结果是否正确&#xff0c;以此帮我们判断测试是否通过&#xff0c;本文 主要介绍几种常用的断言&…...

mybatis bean属性识别丢失【NoSuchPropertyException】

背景 发现线上报错日志 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression Cause: org.apache.ibatis.ognl.NoSuchPropertyException: 参考 https://github.com/mybatis/mybatis-…...

点云从入门到精通技术详解100篇-基于补全点云与图像像素级融合的障碍物识别

目录 前言 感知融合技术研究现状及问题 感知融合技术概述 特征级融合研究现状...

商品分类显示scroll-view布局实现

快捷键 view{菜单数据$}*40 回车后即可快速生成 <view class="cates"> <!-- 搜索开始 --><SearchBar></SearchBar> <!-- 搜索结束 --> <view class="cates_container"> <!-- 左侧菜单 开始 --> <scroll-vie…...

基本的SELECT语句——“MySQL数据库”

各位CSDN的uu们好呀&#xff0c;好久没有更新小雅兰的MySQL数据库专栏啦&#xff0c;接下来一段时间&#xff0c;小雅兰都会更新MySQL数据库的知识&#xff0c;下面&#xff0c;让我们进入今天的主题吧——基本的SELECT语句&#xff01;&#xff01;&#xff01; SQL概述 SQL语…...

DedeCMS5.7远程文件包含漏洞分析

看一段php代码 <?php foreach(Array(_GET,_POST,_COOKIE) as $_request){foreach($$_request as $_k > $_v) ${$_k} $_v; }echo a:.$a;echo b:.$b;这段代码可以实现创建变量并赋值的操作&#xff0c;而且参数都是可控的。 如果之前已经有了相应参数&#xff0c;那就会…...

GpsAndMap模块开源,欢迎测评

背景 之前的文章有提到&#xff0c;最近在使用folium的过程中&#xff0c;深感对于一个非专业人员来说&#xff0c;GPS坐标以及其所隐含的GPS坐标系&#xff0c;以及不同GPS坐标系之间的相互转换关系&#xff0c;不是一个十分清晰的概念&#xff0c;往往造成在使用GPS坐标在fo…...

DHT11 温湿度传感器

目录 1.DHT11 温湿度传感器概述 2.检测DHT11温湿度传感器模块是否存在 3.通过编写代码读取温湿度数据​编辑 4.将读取到的温湿度数据通过串口上传 1.DHT11 温湿度传感器概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;应用领域&am…...

vue3 自定义Hooks

文章目录 前言一、Hooks是什么&#xff1f;二、图片转换Base641.Hooks2.使用 三、监听元素宽高&#xff08;自定义指令Hooks&#xff09;1.Hooks2.使用 总结 前言 本文主要记录了vue3学习中自定义Hooks和vue2中Mixins的使用与案例。 一、Hooks是什么&#xff1f; Hooks用来处…...

计算机组成与设计硬件软件接口学习1

计算机的算术运算 子字并行 &#xff08;大致浏览&#xff09;pdf 170页左右 浮点加法不满足结合律&#xff1a; 适用于整型数据类型的并行执行策略并不适用于浮点数据类型 &#xff0c;原因如上↑ 处理器 流水线 流水线是一种能使多条指令重叠执行的实现技术 流水线技术通…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...