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备份和恢复 数据丢失的原因: 程序错误 人为操作错误 运算错误 磁盘故障 灾难(火灾,地震)和盗窃 数据库备份分类 物理备份 数据库此操作系统的物理文件(数据文件,日志文件等)的备份 …...
新闻月刊 | GBASE 4月市场动态一览
产品动态 4月,GBASE南大通用大规模分布式并行数据库GBase 8a MPP Cluster中标人保财险“2022年基础软件产品及服务采购”项目。这是自2019年GBASE与人保财险达成合作以来支持建设的第三期项目。项目上线后,将极大满足人保财险大数据中心及研发中心的增量…...
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月第一个交易日,“中特估”继续乘风破浪,A股银行板块集体大涨。 随着新一轮国企改革正在推进,中特估体系也在积极构建之中。在市场缺乏增量资金背景下,市场选股范式已经转向数字经济AI、央国企价值重估的两条主线,此…...
OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3
《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令,生成公钥-私钥对。 $ ssh-keygen$ l…...
功率放大器在Lamb波信号波包模型验证研究中的应用
实验名称:窄带激励条件下的兰姆波时域信号参数估计研究 研究方向:Lamb波 测试目的: 基于Lamb波的二阶频散理论,提出了时域信号的波包模型,为全文奠定理论基础。模型考虑两种情况:初始激励以单模态传播和…...
Apache Hadoop
一、Apache Hadoop入门 1.1、Hadoop介绍 狭义上:hadoop指的是Apache一款java开源软件,是一个大数据分析处理平台。 Hadoop HDFS:分布式文件系统。 解决了海量数据存储问题。 Hadoop Distributed File System (HDFS™)Hadoop MapReduce&…...
PHP+vue大学生心理健康评价和分析系统8w3ff
本整个大学生心理健康管理系统是按照整体需求来实现各个功能的,它可以通过心理健康测评来检测大学生的心理健康,并且给予预警,还可以预约医生来解决问题。并且,管理员可以查看用户信息,发布一些关于心理健康的文章。该…...
【图像分割】【深度学习】SAM官方Pytorch代码-Mask decoder模块MaskDeco网络解析
【图像分割】【深度学习】SAM官方Pytorch代码-Mask decoder模块MaskDeco网络解析 Segment Anything:建立了迄今为止最大的分割数据集,在1100万张图像上有超过1亿个掩码,模型的设计和训练是灵活的,其重要的特点是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(Java Server Pages),是一种动态网页技术,它允许开发者使用Java代码和HTML标签来创建网页。在这篇文章中,我们将详细介绍JSP的基本概念、语法和应用。 一、JSP的基本概念 1.1 JSP的含义 JSP是一种网页技术&#…...
java基于知识库的中医药问询系统
本系统主要包含了等系统用户管理、中医药常识管理、科室信息管理、知识库管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块:用户登录本系统,对个…...
【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。
一、什么是ARP ARP(地址解析协议)英文全称“Address Resolution Protocol”,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确…...
自动驾驶行业观察之2023上海车展-----车企发展趋势(2)
自主品牌发展 比亚迪:展示3款新车,均于2023年年内上市 比亚迪在本次展会上推出了3款新车:宋L概念车(王朝系列)、驱逐舰07(海洋系列)、海鸥(海洋系列)。 • 宋L&#x…...
通知所有员工所需的时间
题目描述 公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。 在 manager 数组中,每个员工都有一个直属负责人,其中 manager[i] 是第 i 名员工的直属负责人。对于总负责…...
Docker:bash: vim: command not found
进入docker容器 docker exec -it [容器ID] /bin/bash docker exec -it e56e7bbe85ad /bin/bash 在使用 Docker 容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是…...
排序算法之选择排序
选择排序(Selection Sort)是一种简单直观的排序算法,其基本思路是在未排序的数据序列中找到最小元素,将其放在已排序的数据序列的末尾。重复该过程,直到整个序列排序完成。 具体实现过程如下: 首先&#x…...
5_服务编排_docker-compose
服务编排之Docker Compose 微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。 要从Dockerfile build image 或者去dockerhub拉取image 要创建多个container 要…...
Java基本数据类型以及包装类型的常量池技术
Java 中的基本数据类型 Java 中有 8 种基本数据类型,分别为: 6 种数字类型: 4 种整数型:byte、short、int、long2 种浮点型:float、double 1 种字符类型:char1 种布尔型:boolean。 这 8 种基本…...
P1054 [NOIP2005 提高组] 等价表达式
题目描述 明明进了中学之后,学到了代数表达式。有一天,他碰到一个很麻烦的选择题。这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的要求是判断选项中哪些代数表达式…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
