MySQL数据库的备份-恢复-日志

一、备份

1.1数据备份的重要性

  • 备份的主要目的是灾难恢复。

  • 在生产环境中,数据的安全性至关重要。

  • 任何数据的丢失都可能产生严重的后果。

1.2造成数据丢失的原因

  • 程序错误
  • 人为操作错误
  • 运算错误
  • 磁盘故障
  • 灾难(如火灾、地震)和盗窃

1.3数据库备份的分类

  • 从物理与逻辑的角度,备份可分为物理备份和逻辑备份。
  • 从数据库的备份策略角度,备份可分为完全备份、差异备份和增量备份。

1.3.1数据库备份可以分为

1. 物理备份:
对数据库操作系统的物理文件(如数据文件,日志文件等)的备份

物理备份的方法:

冷备份:是在关闭数据库的时候进行(使用tar)
热备份:数据库处于运行状态,依赖于数据库的日志文件(在数据库中使用:mysqldump备份)
温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作

2.逻辑备份:

逻辑备份是对数据库逻辑组件的备份。

表示为逻辑数据库结构 这种类型的备份适用于可以编辑数据值或表结构。

逻辑备份的方法:

  • 完全备份:每次对数据库进行完整的备份
  • 差异备份:备份自从上次完全备份之后被修改过的文件
  • 增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份

1.3.2从数据库的备份策略角度,备份可分为

1.完全备份

每次都进行完全备份,会导致备份文件占用巨大的空间,并且有大量的重复数据

恢复时,直接把文件导入进去即可

2.差异备份

上次差异备份,都会被备份上一次完全备份之后的数据,可能会出现备份重复数据,导致占用大额外的磁盘空间。恢复时,先恢复完全备份,在导入差异备份数据

3.增长备份

每次增量备份数据都是备份在上一次完全备份或增量备份之后的数据,不会出现备份重复数据,也不会占用额外的磁盘空间恢复时,需要完全恢复,在做增量恢复,按照次序恢复。

1.4常见的备份方法

1.4.1物理冷备(完全备份)

  • 备份时数据库处于关闭状态,直接打包数据库文件
  • 备份速度快,恢复时也是最简单的

1.4.2专用备份工具mydump或mysqlhotcopy

  • mysqldump常用的逻辑备份工具 (导出为sql脚本)

  • mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表

  • 启用二进制日志进行增量备份 (增量备份)

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

二、MySQL完全备份

2.1完全备份介绍

  • 完全备份是对整个数据库、数据库结构和文件结构的备份
  • 保存的是备份完成时刻的数据库
  • 是差异备份与增量备份的基础

2.2完全备份的优缺点

优点:

  • 备份与恢复操作简单方便

缺点:

  • 数据存在大量的重复
  • 占用大量的备份空间
  • 备份与恢复时间长

2.3完全备份的方法

2.3.1物理冷备份与恢复

  1. 关闭MySQL数据库
  2. 使用 tar 命令直接打包数据库文件夹
  3. 直接替换现有MySQL目录即可

2.3.2mysqldump备份与恢复

  1. MySQL自带的备份工具,可方便实现对MySQL的备份
  2. 可以将指定的库、表导出为SQL脚本
  3. 使用命令mysq|导入备份的数据

2.4完全备份的方法与恢复操作

2.4.1mysqldump 备份与恢复

备份:

mysqldump -u root -p[密码] --databases 库名1 [库名2] ... > /备份路径/备份文件名.sql    
 
#导出的就是数据库脚本文件

2.4.2完全备份指定库中的部份表

mysqldump -u root -p[密码] [-d] 库名 [表名1] [表名2] ... > /备份路径/备份文件名.sql
 
#使用 -d 选项,说明只保存数据库的表结构
#不使用 -d 选项,说明表数据也进行备份

2.4.3恢复

使用 source 命令恢复数据

删除表

在MySQL内查看

#恢复数据
mysql> source /data/kgc.sql;

查看

重定向导入备份文件

查看

三、MySQL 增量备份与恢复

3.1增量备份的介绍

3.1.1增量备份产生的原因

  • 使用 mysqldump 进行完全备份存在的问题
    • 备份数据中有重复数据
    • 备份时间与恢复时间过长

3.1.2增量备份是什么

  • 是自上一次备份后增加/变化的文件或者内容

3.1.3增量备份的特点

  • 没有重复数据,备份量不大,时间短
  • 恢复需要上次完全备份及完全备份之后所有的增量备份才 能恢复,而且要对所有增量备份进行逐个反推恢复

3.1.4增量备份的过程

  • MySQL没有提供直接的增量备份方法
  • 可通过MySQL提供的二进制日志间接实现增量备份

MySQL二进制日志对备份的意义:

  • 二进制日志保存了所有更新或者可能更新数据库的操作
  • 二进制日志在启动MySQL服务器后开始记录,并在文件达到 max_binlog_size 所设置的大小或者接收到 flush logs 命令后重新创建新的日志文件
  • 只需定时执行 flush logs 方法重新创建新的日志,生成二进制文件序列,并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份

3.2增量备份的方式

  • 一般恢复

    • 将所有备份的二进制日志内容全部恢复
  • 基于位置恢复

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

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

四、MySQL日志管理

  • MySQL 的日志默认保存位置为 /usr/local/mysql/data 
  • MySQL 的日志配置文件为 /etc/my.cnf

4.1日志的分类

4.1.1错误日志

用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启

vim /etc/my.cnf
log-error=/home/mysql/mysql_error.log   ##指定日志的保存位置

4.1.2通用查询日志

用来记录mysql的所有连接和语句,默认是关闭的

vim /etc/my.cnf
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log   

4.1.3二进制日志

用来记录所有当MySQL启动、停止或运行时发送的错误信息,默认是关闭的

vim /etc/my.cnf
log-bin=mysql-bin                

log_bin=mysql-bin
 #使用相对路径,则文件存储在默认目录/usr/local/mysql/data/中

4.1.4慢查询日志

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

vim /etc/my.cnf
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5       ##慢查询时间,设置超过5秒执行的语句被记录    

4.2查看日志状态

4.2.1查看通用查询日志是否开启

show variables like 'general%';        

4.2.2查看二进制文件是否开启

4.2.3查看慢查询日志是否开启

show variables like '%slow%';    

4.2.4查看慢查询时间设置

show variables like 'long_query_time';

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Altium Designer专业PCB设计软件下载安装 Altium Designer安装包下载获取

在电子设计的广袤领域中,PCB设计无疑占据着重要的地位。而Altium Designer作为一款业界领先的电子设计自动化软件,其提供的先进布局工具,无疑为设计师们打开了一扇通往高效、精确设计的大门。 在PCB设计的核心环节——布局中,Alti…

【苍穹外卖】Day1遇到的问题

1、lombok版本不兼容问题 java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module 0x3278991b) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.comp…

文心一言 VS 讯飞星火 VS chatgpt (295)-- 算法导论21.4 4题

四、利用练习 21.4-2 ,请给出一个简单的证明,证明在一个不相交集合森林上使用按秩合并策略而不使用路径压缩策略的运行时间为 O(m lgn) 。21.4-2 的内容是:“证明:每个结点的秩最多为 ⌊lgn⌋ 。”。如果要写代码,请用…

CenterOS7安装java

CenterOS7安装java #进入安装目录 cd /usr/local/soft/java#wget下载java8 #直接进入官网选择相应的版本进行下载,然后把下载链接复制下来就可以下载了 #不时间的下载链接不一样 wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c9…

Java的编程之旅46——List集合

1.List集合的特殊方法 List接口是Collection接口的子接口&#xff0c;提供了一系列操作元素的方法。 常见的List集合实现类有ArrayList和LinkedList。ArrayList我们在前面已经介绍过了&#xff0c;这一章中着重介绍一下List集合的特有方法。 List<String> list new Arr…

第3章.中央服务器的物联网模式--规则引擎

规则引擎 规则引擎本质上是物联网事件和需要与这些事件相关联的动作之间的映射。在物联网环境中&#xff0c;事件通常使用传感器生成&#xff0c;所需的动作由执行器采取。本书中用于该图案的符号如下图所示&#xff1a; 图3.6–“规则引擎”模式的符号 一个有趣的类比是将规则…

Linux 摄像头编号固化

一、前言 在工业领域&#xff0c;一台设备会有很多个摄像头&#xff0c;可以使用命令&#xff1a;ll /dev/video* 进行查看&#xff1b; 在代码中&#xff0c;如果需要使用摄像头&#xff0c;那么都是需要具体到哪个摄像头编号的&#xff0c;例如 open("/dev/video4"…

数据库数据插入全解析:语法与示例

目录 一、基础数据插入 &#x1f38a;基本语法 &#x1f384;示例 二、使用 SET 进行数据插入 &#x1f697;基本语法 &#x1f3a2; 示例 三、插入查询结果 &#x1f953;基本语法 &#x1f95e;示例 四、插入并获取自增ID &#x1f68d;示例&#xff08;MySQL&…

昇思25天学习打卡营第13天 | SSD目标检测

模型简介 SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上&#xff0c;SSD对于输入尺寸300x300的网络&#xff0c;达到74.3%mAP(mean Average Precision)以及59FPS&#x…

为什么进口主食冻干那么高贵?必入榜主食冻干总结分享

新手养猫人常常会有这样的疑问&#xff1a;为何进口主食冻干价格如此昂贵&#xff0c;但仍有大量养猫达人对其推崇备至&#xff1f;与国产主食冻干相比&#xff0c;进口产品的价格高出3-4倍之多&#xff0c;那么这高昂的价格背后&#xff0c;进口主食冻干是否真的值得推荐&…

智慧消防视频监控烟火识别方案,筑牢安全防线

一、方案背景 在现代化城市中&#xff0c;各类小型场所&#xff08;简称“九小场所”&#xff09;如小餐馆、小商店、小网吧等遍布大街小巷&#xff0c;为市民生活提供了极大的便利。然而&#xff0c;由于这些场所往往规模较小、人员流动性大、消防安全意识相对薄弱&#xff0…

GPU相关的一些截图(备查,待整理)

GPU相关的一些截图 这里记录一些与GPU相关的截图,方便查阅

信息安全驱动汽车行业快速向数字化转型

开发一款安全性良好的软件是困难的&#xff0c;它需要专业知识的积累以及对常见编程缺陷和规则的了解&#xff0c;例如检查输入范围、管理内存分配和回收、寻址字符串格式、避免悬空指针等等。通常情况下&#xff0c;编写安全代码与开发人员编写“流畅”代码的自然愿望形成了对…

MPI hello world SSH 免密互联

目标&#xff1a; 我们想实现2台主机免密互联&#xff0c;将MPI Hello World跑起来 假设hostname是node01,node02,&#xff08;Linux shell窗口一般是UserNameHostName&#xff0c;node1和node2一定要和HostName一样&#xff09; hostname是/etc/hosts中的配置&#xff0c;如下…

Ubuntu18.04安装AutoWare.ai(完整版)

目录 目录 一、安装Opencv 1.1 下载安装包Opencv官网 1.2 安装opencv_contrib 二、安装Eigen库 1. 解压文件 2. 安装Eigen 3. 配置路径&#xff1a; 三、安装Ros和rosdepc 四、安装Autoware.ai-1.14.0 4.1 安装依赖 4.2 下载Autoware.ai 1.在home路径下打开终端输…

智源十大行业高质量数据集开放申请,经验证可显著提升模型行业能力!

近日&#xff0c;智源研究院非开源、高质量行业预训练数据集开放申请。该数据集覆盖医疗、教育、文学、金融、旅游、法律、体育、汽车、新闻、农业十大行业&#xff0c;总量达597GB。 智源研究院对较难获取的非开源高质量数据、合作伙伴贡献的数据、有行业特征的开源数据进行了…

【vmbox centos7 网络配置】【centos7 glances 安装】【centos7 安装MySQL5.7】

文章目录 vmbox centos7 网络配置centos7 修改镜像地址centos7 安装 glancesCentOS 7 上安装 MySQL 5.7 并进行基本的安全配置使用 firewalld 开放 3306 端口 可以远程连接mysql vmbox centos7 网络配置 目前 能组建集群 虚拟机网络互通&#xff0c;虚拟机能访问外网 创建一个…

鸿蒙:1.入门

概述 简介 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为公司发布的一款智能终端系统&#xff0c;是基于微内核的面向全场景的分布式操作系统。它致力于提供更加安全、高效、低延迟、低功耗的操作体验&#xff0c;可通过技术手段对应用程序和设备进行智能协同&#xf…

软件性能测试有哪几种测试方法?专业性能测试报告出具

软件性能测试是指对软件系统在特定负载条件下的性能进行评估和验证的过程&#xff0c;目的是确保软件在正常使用的情况下能够满足用户的要求&#xff0c;并在稳定的性能水平下运行&#xff0c;在软件开发过程中起到了至关重要的作用&#xff0c;可以确保软件产品的质量和可靠性…

经典卷积神经网络 LeNet

一、实例图片 #我们传入的是28*28&#xff0c;所以加了padding net nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Flat…