centos7中MySQL备份还原策略

目录

一、直接拷贝数据库文件

1.1在shangke主机上停止服务并且打包压缩数据库文件

1.2 在shangke主机上把数据库文件传输到localhost主机上(ip为192.168.33.157)

1.3在localhost主机上停止服务,解压数据库文件

1.4 在localhost主机上开启服务

1.5 测试

二、mysqldump 进行备份

2.1 备份恢复单个数据库

2.2  备份恢复单个表

2.3 备份数据结构

2.4 mysqldump+binlog 增量备份

2.4.1 修改配置文件

2.4.2   模拟凌晨2:00 备份

2.4.3  表里继续插入数据

2.4.4  模拟10点,误删表ceshi表

2.4.5 恢复

三、mydumper备份

3.1 mydumper下载安装

3.2 备份

3.3 模拟数据丢失和恢复

四、lvm快照实现

4.1 添加硬盘

4.2 创建一个逻辑卷

4.3  停止服务备份数据库

4.4 挂载逻辑卷到当前mysql的数据目录里

4.5 将刚刚备份的数据解压到数据目录里

4.6 修改数据目录的权限

4.7 开启服务

4.8 加读锁,创建快照,解锁

4.9 将快照挂载到临时目录里

4.10  备份数据

4.11 卸载快照并删除

4.12 查看数据

 4.13 测试

五、xtrabackup 备份数据库

5.1 下载安装xtrabackup。

5.2 创建用户和授权

5.3 完全备份

5.4 增量备份

5.5 恢复数据

5.6 删除数据恢复数据

补充:


 环境:

 

=========================================================================

一、直接拷贝数据库文件

把主机为shangke的数据库文件备份,然后在去localhost主机上恢复。

1.1在shangke主机上停止服务并且打包压缩数据库文件

systemctl stop mysqld
cd /var/lib/mysql
tar czf /opt/all_db.tar.gz *


1.2 在shangke主机上把数据库文件传输到localhost主机上(ip为192.168.33.157)

scp /opt/all_db.tar.gz 192.168.33.157:/opt


1.3在localhost主机上停止服务,解压数据库文件


1.4 在localhost主机上开启服务

 


1.5 测试

在shangke主机上的数据库中数据如下:

在localhost 主机上的数据库中数据如下:

 
=========================================================================

二、mysqldump 进行备份

2.1 备份恢复单个数据库

[root@shangke ~]# mysqldump -uroot -p123456 --default-character-set=utf8 -B lianxi1 > /tmp/lianxi.$(date +%F).sqlmysql> source /tmp/lianxi1.2023-07-22.sql

备份多个库,-B 数据库1 数据库2 ... 


2.2  备份恢复单个表

#备份,lianxi1是数据库名字,ceshi是lianxi1里面的数据表
mysqldump -uroot -p123456 lianxi1 ceshi >/tmp/lianxi1_ceshi.sql#恢复
mysql -uroot -p123456 lianxi1 </tmp/lianxi1_ceshi.sql


2.3 备份数据结构

mysqldump -uroot -p123456 -d lianxi1 >/tmp/lianxi1.sqlmysql -uroot -p123456 lianxi1</tmp/lianxi1.sql


2.4 mysqldump+binlog 增量备份

2.4.1 修改配置文件

前提:开启bin-log
 vim /etc/my.cnf
            
[mysqld]
log_bin=mysql-bin
server_id=158     ----》server_id一般是IP的最后一段
            
重启mysqld:systemctl restart mysqld


2.4.2   模拟凌晨2:00 备份

mysqldump -uroot -p123456 lianxi1 ceshi >/tmp/lianxi1_ceshi.sql


2.4.3  表里继续插入数据

mysql -uroot -p123456 -e "insert into lianxi1.ceshi values('xiaohong'),('xiaohua')"


2.4.4  模拟10点,误删表ceshi表

 mysql -uroot -p123456 -e "drop table lianxi1.ceshi"


2.4.5 恢复

(1)

检查全备后的所有binlog
# ls -lrt /var/lib/mysql/mysql-bin.*

立即刷新并备份出binlog
mysqladmin -uroot -p flush-logs

找到新插入数据的binlog日志

 (2)用mysqlbinlog  命令查看,进行确认。

#注意5.7版本,insert语句已经加密,默认看不到,查看时加上选项 --base64-output=DECODE-ROWS -vv[root@shangke ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002 --base64-output=DECODE-ROWS -vv

(3)将日志复制到新目录

(4)寻找时间

从binlog日志中找到插入数据的开始时间开始节点,结束时间结束节点

(5)提取记录(基于时间)

[root@shangke back]# mysqlbinlog mysql-bin.000002 --start-datetime="2023-07-22 12:02:17" --stop-datetime="2023-07-22 12:02:49" -r time.sql

 

 注:mysqlbinlog mysql-bin.000002 --start-position=340 --stop-position=490 -r pos1.sql 是基于节点
 

(6)恢复凌晨备份

 (7)恢复增量备份

注意:备份完了一定要检查备份的数据内容,看看是否有数据,如果备份的数据是无效的就很麻烦。

=========================================================================

三、mydumper备份

3.1 mydumper下载安装

下载资源:mydumper-0.14.5-3.el7.x86-64资源-CSDN文库

安装:


3.2 备份


3.3 模拟数据丢失和恢复

=========================================================================

四、lvm快照实现

4.1 添加硬盘


4.2 创建一个逻辑卷


4.3  停止服务备份数据库


4.4 挂载逻辑卷到当前mysql的数据目录里


4.5 将刚刚备份的数据解压到数据目录里

 这时候就会把解压的所有数据保存到/dev/mysql/mysql_data设备上。


4.6 修改数据目录的权限


4.7 开启服务


4.8 加读锁,创建快照,解锁

给数据库加读锁、给mysql的数据库所在的逻辑卷创建快照、解锁数据库这些操作需要在一个会话完成。

 echo "flush tables with read lock; system lvcreate -n lv_mysql_s -L 500M -s /dev/mysql/mysql_data;unlock tables;" |mysql -uroot -p123456

4.9 将快照挂载到临时目录里

mkdir /mnt/mysql && mount /dev/mysql/mysql_data /mnt/mysql

如果没有rsync命令需要下载


4.10  备份数据

mkdir /backup && rsync -av /mnt/mysql/ /back


4.11 卸载快照并删除

umount /mnt/mysql && lvremove /dev/mysql/mysql_data 


4.12 查看数据

 4.13 测试

=========================================================================

五、xtrabackup 备份数据库

5.1 下载安装xtrabackup。

网址:Software Downloads - Percona

安装

yum localinstall percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm -y


5.2 创建用户和授权


5.3 完全备份

innobackupex --user=bkpuser --password=123456 --no-timestamp /db_bak/full_`date +%F`

 

  

--no-timestamp 参数可以不会生成时间戳 

--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。


5.4 增量备份

在以上完全备份的基础上,开始新增加数据。

 备份新增加的数据

 

5.5 恢复数据

5.6 删除数据恢复数据

 

=========================================================================

补充:

1、完全备份、差异备份、增量备份

完全备份、增量备份、差异备份 (从数据收集来分)
完全备份:备份全部数据;
增量备份:仅备份上次完全备份或增量备份以后变化的数据;
差异备份:仅备份上次完全备份以来变化的数据;

如图,白色是完全备份,黄色部分是增量备份, 蓝色部分也是增量备份,黄色+蓝色是差异备份。


2、my.cnf文件

在my.cnf文件中,mysqld部分常用的字段有:

datadir:指定MySQL数据文件的存储路径。
port:指定MySQL服务器监听的端口号。
bind-address:指定MySQL服务器绑定的IP地址。
socket:指定MySQL服务器的套接字文件路径。
character-set-server:指定MySQL服务器的默认字符集。
collation-server:指定MySQL服务器的默认排序规则。
max_connections:指定MySQL服务器允许的最大连接数。
key_buffer_size:指定MySQL服务器使用的索引缓冲区大小。
innodb_buffer_pool_size:指定InnoDB存储引擎使用的缓冲池大小。
query_cache_size:指定查询缓存的大小。
log_error:指定错误日志文件的路径。
slow_query_log:指定是否启用慢查询日志。
log_slow_queries:指定慢查询日志文件的路径。
log_bin:指定是否启用二进制日志。
binlog_format:指定二进制日志的格式。

basedir : mysql的安装目录和解压目录是两个概念。
这些是常用的字段,根据实际需求可以在my.cnf文件中进行配置


3、如果在my.cnf 中删除log_bin 和server_id  字段之后再添加重启服务发现失败.

可能是因为日志文件冲突:如果在删除log_bin配置项后,MySQL已经生成了一些binlog日志文件,再重新添加log_bin配置项时,可能会导致日志文件冲突。在重新添加log_bin配置项之前,可以尝试删除已生成的binlog日志文件,然后再启动MySQL服务。

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

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

相关文章

JVM-Java虚拟机

JVM——Java虚拟机&#xff0c;是Java实现平台无关性的基石。 基本概念&#xff1a;JVM 是可运行 Java 代码的假想计算机 &#xff0c;包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收&#xff0c;堆 和 一个存储方法域。JVM 是运行在操作系统之上的&#xff0c;它与…

【Docker】基本概念和底层技术

Docker 1 什么是 Docker Docker 是一种容器技术。只要开发者将其应用和依赖包进行打包&#xff0c;放入到一个轻量级的、可移植的容器中&#xff0c;就能发布到任何流行的 linux 机器上。 Docker 的要素&#xff1a; image 镜像&#xff1a;静态的container 容器&#xff1a…

android studio 新建项目没有R文件

android studio 新建项目没有R文件&#xff0c;处理步骤 1&#xff0c;找一个能打开的项目替换根目录下的settings.gradle 2,改app 目录下的build.gradle文件 3&#xff0c;改gradle版本 4&#xff0c;改AndroidManifest.xml 5&#xff0c;改theme 改为&#xff0c;ok.

【Python】数据分析+数据挖掘——变量列的相关操作

前言 在Python和Pandas中&#xff0c;变量列操作指的是对DataFrame中的列进行操作&#xff0c;包括但不限于选择列、重命名列、添加新列、删除列、修改列数据等操作。这些操作可以帮助我们处理数据、分析数据和进行特征工程等。 变量列的相关操作 概述 下面将会列出一些基本…

Jmeter-使用http proxy代理录制脚本

Jmeter-使用http proxy代理录制脚本 第1步&#xff1a;打卡jmeter工具新增1个线程组 第2步&#xff1a;给线程组添加1个HTTP请求默认值 第3步&#xff1a;设置下HTTP请求默认值第4步&#xff1a;在工作台中新增1个----HTTP代理服务器 第5步&#xff1a;设置HTTP代理服务器…

2023华为OD统一考试(B卷)题库清单(持续收录中)以及考点说明

目录 专栏导读2023 B卷 “新加题”&#xff08;100分值&#xff09;2023Q2 100分2023Q2 200分2023Q1 100分2023Q1 200分2022Q4 100分2022Q4 200分牛客练习题 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&…

卷积神经网络识别人脸项目—使用百度飞桨ai计算

卷积神经网络识别人脸项目的详细过程 整个项目需要的准备文件&#xff1a; 下载链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1WEndfi14EhVh-8Vvt62I_w 提取码&#xff1a;7777 链接&#xff1a;https://pan.baidu.com/s/10weqx3r_zbS5gNEq-xGrzg 提取码&#x…

pnpm 与monorepo架构

软链接与硬链接 创建方式&#xff1a; mklink &#xff08;windows&#xff09; 软链接 &#xff1a; a、b指向同一个文件 b相当于一个快捷方式 硬链接&#xff1a; a、b指向同一个内存地址 某一文件修改&#xff0c;其他文件跟这变化 上图所示&#xff1a;安装某依赖&…

分布式光伏电站监控及集中运维管理-安科瑞黄安南

前言&#xff1a;今年以来&#xff0c;在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速&#xff0c;装机容量均大幅度增长&#xff0c;新能源发电已经成为新型电力系统重要的组成部分&#xff0c;同时这也导致新型电力系统比传统的电力系统更为复杂…

【C++】多态(举例+详解,超级详细)

本篇文章会对C中的多态进行详解。希望本篇文章会对你有所帮助。 文章目录 一、多态的定义及实现 1、1 多态的概念 1、2 多态的构成条件 1、2、1 虚函数 1、2、2 虚函数的重写 1、2、3 析构函数构成重写特例原因 1、3 多态的实例练习 1、3、1 例1 1、3、2 例2 1、3、3 例3 1、4…

linux安装conda

linux安装conda 卸载conda 在主目录下&#xff0c;使用普通权限安装&#xff1a; ./Anaconda3-2023.03-1-Linux-x86_64.shanaconda的目录是ENTER

python_day13

reduceByKey算子&#xff0c;聚合 列表中存放二元元组&#xff0c;元组中第一个为key&#xff0c;此算子按key聚合&#xff0c;传入计算逻辑 from pyspark import SparkConf, SparkContext import osos.environ["PYSPARK_PYTHON"] "D:/dev/python/python3.10…

【分布式】1、CAP 理论 | 一致性、可用性、分区容忍性

文章目录 一、CAP 理论1.1 Consistency 一致性1.2 Availbility 可用性1.3 Partition Tolerance 分区容忍性1.4 CAP 应用1.4.1 CP1.4.2 AP 二、CAP 实践2.1 ACID2.2 BASE 一、CAP 理论 是 2002 年证明的定理&#xff0c;原文&#xff0c;内容如下&#xff1a; In a distributed…

喜报|英码科技联合广师大荣获“智芯杯”AI芯片应用创新创业大赛两大奖项

7月15日&#xff0c;由中国仪器仪表学会主办的全国首届“智芯杯”AI芯片应用创新创业大赛总决赛暨颁奖典礼圆满结束&#xff0c;英码科技联合广东技术师范大学设计开发的“AI视觉&#xff0c;让工厂建设更智慧”和“基于AI的智慧校园无感考勤系统”创新项目均荣获三等奖。 ​ 自…

springcloudAlibaba之nacos集群部署和nginx负载均衡

1.环境准备 nacos server安装包&#xff1a;https://github.com/alibaba/nacos nginx安装包&#xff1a;https://nginx.org/en/download.html 2、nacos配置 将下载好的nacos-server的压缩包解压好以后&#xff0c;复制出N份&#xff08;这里取决于你集群的数量&#xff09;&…

设计模式之模板方法模式

例子&#xff1a;登陆&#xff08;普通用户&#xff0c;工作人员&#xff09; 没有使用设计模式实现用户登陆 package com.tao.YanMoDesignPattern.template.notPattern;/*** Author Mi_Tao* Date 2023/7/22* Description* Version 1.0**/ public class LoginModel {private …

Grafana中table的使用技巧

将多个指标数据显示在同一个Table中&#xff0c;需要用到Transform功能&#xff0c;利用Transform功能可以将数据进行处理只显示想要的数据&#xff1a;

【VTK】VTK 让小球动起来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 文章目录 版本环境A.uiA.hA.cppRef. 本文主要目的是在 Qt 界面中&#xff0c;显示出来使用 VTK 构建的小球&#xff0c;并让小球能够动起来。同时为了方便对比…

探秘ArrayList源码:Java动态数组的背后实现

探秘ArrayList源码&#xff1a;Java动态数组的背后实现 一、成员变量二、构造器1、默认构造器2、带初始容量参数构造器3、指定collection元素参数构造器 三、add()方法扩容机制四、场景分析1、对于ensureExplicitCapacity&#xff08;&#xff09;方法1.1 add 进第 1 个元素到 …

Inno Setup打包winform、wpf程序可判断VC++和.net环境

Inno Setup打包winform、wpf程序可判断VC和.net环境 1、下载Inno Setup2、新建打包文件、开始打包1、新建打包文件2、填写 应用名称、版本号、公司名称、公司官网3、选择安装路径 Custom是指定默认路径、Program Files folder是默认C盘根目录4、选择程序启动exe文件 以及Addfol…