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

mysql备份和恢复

mysql备份和恢复

 

 数据丢失的原因:

程序错误

人为操作错误

运算错误

磁盘故障

灾难(火灾,地震)和盗窃

数据库备份分类

物理备份

数据库此操作系统的物理文件(数据文件,日志文件等)的备份

方法:冷备份(脱机备份):实在数据库关闭时进行

热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件

温备份:数据库在锁定表(不可写入可读)状态下进行备份

逻辑备份

对数据库逻辑组件(库,表等数据库对象以文本导出)的备份

数据库备份分类

从策略备份

 完全备份:每次对数据库进行完整的备份

 

差异备份:备份自上次完全备份后之后被修改过的文件

增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份

备份策略通常是每周一完全备份后面几天增量备份

备份的方法

 物理冷备份

备份时关闭数据库,直接打包数据库文件data目录打包 备份速度快,恢复也最简单

tar -zcf

专用备份工具mysqldump或mysqlhotcopy

mysldump常用的逻辑备份工具

mysqlhotcopy仅拥有备份myisqm和archive表

启用而矜持日志增量备份

进行增量备份,需要刷新二进制日志

第三方工具备份

免费的mysql热备份软件percona Xtrabackup

阿里云dts工具

 

备份

mkdir /backup

tar zcf /backup/mysql_all-$(data + %F).tar.gz /usr/local/mysql/data

恢复

迁移数据

冷备份迁移

systemctl stop mysql

tar zcf /opt/mysql_all-$(data + %Y%m%d).tar.gz /usr/local/mysql/data

.xz压缩包压缩时tar Jcvf

scp mysql_all-$(data + %Y%m%d).tar.gz 192.168.232.17:'pwd'

解压覆盖

mysqldump备份

 mysqldump -uroot -pabc123  --databases kgc mysql > /opt/ky27/kgc.sql

通过--databases指定多个库

mysqldump -uroot -pabc123  --all-databases kgc mysql > /opt/ky27/kgc.sql

--all-databases 指定所有的库

mysqldump -uroot -pabc123   kgc member account > /opt/ky27/kgc.sql

member account为表明

使.sql文件更直观

grep -v "^$" kgc_men_acc.sql |grep -v "^--" |grep   

-v "^/\*"

恢复

法一

 

mysql -uroot -pabc123 -e 'show databases;'-e 执行数据库内命令结束返回

mysql -uroot -pabc123 kgc< kgc_men_acc_t1.sql

 生产环境中可以使用shell脚本定时备份mysqldump命令要用绝对路径去执行或者crontab -e

0 0 * * 1 /usr/local/mysql/bin/myaqldump -u root -pabc123 --all-databases > /opt/ky27/all-databases-$(data +%Y%m%d).sql

法二:恢复

create database kgc #备份时有--databases时不需要

use kgc

source /opt/ky27/kgc.sql

mysql没有提供直接的曾量备份方法

可通过mysql提供的二进制日志间接实现增量备份

mysql二进制日志对备份的意义

 一般恢复,将所有备份的二进制日志内容全部恢复

基于位置恢复数据库某一时间可能存在错误操作也有正确的操作,可以精确的位置跳过错误的操作

基于时间点的恢复:跳过某个发生错误的时间点实现数据恢复

 mysql日志默认保存位置 /usr/local/mysql/data

vim /etc/my.cnf

[mysqld]

##错误日志,用来记录当MySOL启动、停止或运行时发生的错误信息,默认已开启#指定日志的保存位置和文件名log-error=/usr/local/mysql/data/mysql error.log 指定日杂hi的文件路径和文件名

##通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的

general_log=ON

general_log_file=/usr/local/mysql/data/mysgl general.log

#二进制日志(binlog),用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启#也可以 log-bin=mysql-bin也可以用log_bin=mysql-bin

#慢查询日志,用来记录所有执行时间超过long guery time秒的语句,可以找到哪些查询语句执行时间长,以便于优化,默认是关闭的

slow_query_log=ON

slow_query_log file=/usr/local/mysql/data/mysql slow_query.log

long_query_time=5

#设置超过5秒执行的语句被记录,缺省时为10秒

systemctl restart mysqld

mysgl -u root -p

show variables like 'general%';#查看通用查询日志是否开启

show variables like 'log_bin%';#查看二进制日志是否开启

show variables like '%slow%';#查看慢查询日功能是否开启

show variables like 'long_query_time';

#查看慢查询时间设置

生成日志文件重启 mysqladmin -uroot -pabc23 flush-logs

sed -n '$p' mysql-bin.index看最新的日志

tail -1 mysql-bin.inde

 二进制日志(binlog)有三种不同的记录格式:statement(基于sql语句),row(基于行),mixed(混合模式),默认格式时statement

sql语句高并发情况下易出现错误row准确行高

update member set address='beijing';

查看二进制日志以row输出的方法mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000003

vim /etc/my.cnf

[mysql]

binlog_format=MINED

重启服务

增量备份

完全备份后增量备份前先刷新mysqladmin -uroot -pabc123 flush-logs

cat  mysql-bin.index | tail -2 | head -1 |awk -F/ '{print $2}' #获取昨天二进制的日志文件

 #!/bin/bash

/usr/local/

完全备份和增量备份备份脚本

/usr/local/mysql/bin/mysqladmin -uroot -pabc123

mv 命令 移动旧binlog 到备份目录,按照时间格式保存

 

data -d "-1 day" +%Y%m%d

完全恢复

mysql -uroot -pabc123 < ky27_ky227_20230508.sql

增量恢复

mysqlbinlog --no-defaults mysql-binlog-20230507 | mysql -uroot -pabc123

mysqlbinlog --no-defaults mysql-binlog-20230508 | mysql -uroot -pabc123

位置恢复(时间点恢复)

at 269 即为位置

 

mysqlbinlog --no-defaults --start-position'632' /root/ky27/ | mysql -uroot

 -pabc123

mysqlbinlog --no-defaults --start-position'269' --stop-position='748' /root/ky27/ | mysql -uroot

 -pabc123

时间点恢复

时间如图

 mysqlbinlog --no-defaults --start-datatime'2023-05-08 17:17:08'  /root/ky27/ | mysql -uroot

 -pabc123

 如果恢复某条sql语句之前的所有数据,就stop在这个语句的前的位置节点或时间点

如果恢复某条sql语句之前的所有数据,就start在这个语句位置之后的位置节点

相关文章:

mysql备份和恢复

mysql备份和恢复 数据丢失的原因&#xff1a; 程序错误 人为操作错误 运算错误 磁盘故障 灾难&#xff08;火灾&#xff0c;地震&#xff09;和盗窃 数据库备份分类 物理备份 数据库此操作系统的物理文件&#xff08;数据文件&#xff0c;日志文件等&#xff09;的备份 …...

新闻月刊 | GBASE 4月市场动态一览

产品动态 4月&#xff0c;GBASE南大通用大规模分布式并行数据库GBase 8a MPP Cluster中标人保财险“2022年基础软件产品及服务采购”项目。这是自2019年GBASE与人保财险达成合作以来支持建设的第三期项目。项目上线后&#xff0c;将极大满足人保财险大数据中心及研发中心的增量…...

Java --- springboot2数据响应与内容协商

目录 一、数据响应与内容协商 1.1、响应json 1.1.1、返回值解析器 1.1.2、springMVC支持的返回值类型 1.1.3、HttpMessageConverter原理 1.2、内容协商 1.2.1、引入依赖 1.2.2、 postman分别测试返回json和xml 1.2.3、开启浏览器参数方式内容协商功能 1.3、自定义 Message…...

“中特估”乘风破浪!后续机遇在哪?

5月第一个交易日&#xff0c;“中特估”继续乘风破浪&#xff0c;A股银行板块集体大涨。 随着新一轮国企改革正在推进&#xff0c;中特估体系也在积极构建之中。在市场缺乏增量资金背景下&#xff0c;市场选股范式已经转向数字经济AI、央国企价值重估的两条主线&#xff0c;此…...

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令&#xff0c;生成公钥-私钥对。 $ ssh-keygen$ l…...

功率放大器在Lamb波信号波包模型验证研究中的应用

实验名称&#xff1a;窄带激励条件下的兰姆波时域信号参数估计研究 研究方向&#xff1a;Lamb波 测试目的&#xff1a; 基于Lamb波的二阶频散理论&#xff0c;提出了时域信号的波包模型&#xff0c;为全文奠定理论基础。模型考虑两种情况&#xff1a;初始激励以单模态传播和…...

Apache Hadoop

一、Apache Hadoop入门 1.1、Hadoop介绍 狭义上&#xff1a;hadoop指的是Apache一款java开源软件&#xff0c;是一个大数据分析处理平台。 Hadoop HDFS&#xff1a;分布式文件系统。 解决了海量数据存储问题。 Hadoop Distributed File System (HDFS™)Hadoop MapReduce&…...

PHP+vue大学生心理健康评价和分析系统8w3ff

本整个大学生心理健康管理系统是按照整体需求来实现各个功能的&#xff0c;它可以通过心理健康测评来检测大学生的心理健康&#xff0c;并且给予预警&#xff0c;还可以预约医生来解决问题。并且&#xff0c;管理员可以查看用户信息&#xff0c;发布一些关于心理健康的文章。该…...

【图像分割】【深度学习】SAM官方Pytorch代码-Mask decoder模块MaskDeco网络解析

【图像分割】【深度学习】SAM官方Pytorch代码-Mask decoder模块MaskDeco网络解析 Segment Anything&#xff1a;建立了迄今为止最大的分割数据集&#xff0c;在1100万张图像上有超过1亿个掩码&#xff0c;模型的设计和训练是灵活的&#xff0c;其重要的特点是Zero-shot(零样本迁…...

A Restful API

SpringBoot 定义Restful API 定义POJOOrderBuyer 定义RestfulControllerGet API for queryPost API for addPut API for updateDelete API for delete 定义AjaxResponse Patavariable RequestParm RequestBodyRequestHeader 定义POJO Order import java.util.Date; import ja…...

从零开始学习JSP,让你全面掌握Web开发技能

JSP&#xff08;Java Server Pages&#xff09;&#xff0c;是一种动态网页技术&#xff0c;它允许开发者使用Java代码和HTML标签来创建网页。在这篇文章中&#xff0c;我们将详细介绍JSP的基本概念、语法和应用。 一、JSP的基本概念 1.1 JSP的含义 JSP是一种网页技术&#…...

java基于知识库的中医药问询系统

本系统主要包含了等系统用户管理、中医药常识管理、科室信息管理、知识库管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 管理员的登录模块&#xff1a;管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块&#xff1a;用户登录本系统&#xff0c;对个…...

【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。

一、什么是ARP ARP&#xff08;地址解析协议&#xff09;英文全称“Address Resolution Protocol”&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此确…...

自动驾驶行业观察之2023上海车展-----车企发展趋势(2)

自主品牌发展 比亚迪&#xff1a;展示3款新车&#xff0c;均于2023年年内上市 比亚迪在本次展会上推出了3款新车&#xff1a;宋L概念车&#xff08;王朝系列&#xff09;、驱逐舰07&#xff08;海洋系列&#xff09;、海鸥&#xff08;海洋系列&#xff09;。 • 宋L&#x…...

通知所有员工所需的时间

题目描述 公司里有 n 名员工&#xff0c;每个员工的 ID 都是独一无二的&#xff0c;编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。 在 manager 数组中&#xff0c;每个员工都有一个直属负责人&#xff0c;其中 manager[i] 是第 i 名员工的直属负责人。对于总负责…...

Docker:bash: vim: command not found

进入docker容器 docker exec -it [容器ID] /bin/bash docker exec -it e56e7bbe85ad /bin/bash 在使用 Docker 容器时&#xff0c;有时候里边没有安装vim&#xff0c;敲vim命令时提示说&#xff1a;vim: command not found&#xff0c;这个时候就需要安装vim&#xff0c;可是…...

排序算法之选择排序

选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法&#xff0c;其基本思路是在未排序的数据序列中找到最小元素&#xff0c;将其放在已排序的数据序列的末尾。重复该过程&#xff0c;直到整个序列排序完成。 具体实现过程如下&#xff1a; 首先&#x…...

5_服务编排_docker-compose

服务编排之Docker Compose 微服务架构的应用系统中一般包含若干个微服务&#xff0c;每个微服务一般都会部署多个实例&#xff0c;如果每个微服务都要手动启停&#xff0c;维护的工作量会很大。 要从Dockerfile build image 或者去dockerhub拉取image 要创建多个container 要…...

Java基本数据类型以及包装类型的常量池技术

Java 中的基本数据类型 Java 中有 8 种基本数据类型&#xff0c;分别为&#xff1a; 6 种数字类型&#xff1a; 4 种整数型&#xff1a;byte、short、int、long2 种浮点型&#xff1a;float、double 1 种字符类型&#xff1a;char1 种布尔型&#xff1a;boolean。 这 8 种基本…...

P1054 [NOIP2005 提高组] 等价表达式

题目描述 明明进了中学之后&#xff0c;学到了代数表达式。有一天&#xff0c;他碰到一个很麻烦的选择题。这个题目的题干中首先给出了一个代数表达式&#xff0c;然后列出了若干选项&#xff0c;每个选项也是一个代数表达式&#xff0c;题目的要求是判断选项中哪些代数表达式…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...