读高性能MySQL(第4版)笔记15_备份与恢复(下)

news2024/11/23 13:21:12

1. 二进制日志

1.1. 服务器的二进制日志是需要备份的最重要元素之一

1.2. 对于基于时间点的恢复是必需的,并且通常比数据要小,所以更容易被进行频繁的备份

1.3. 如果有某个时间点的数据备份和所有从那时以后的二进制日志,就可以重放从上次全备份以来的二进制日志并“向前回滚”所有的变更

1.4. 如果你不能承受丢失超过30分钟数据的代价,至少要每30分钟就备份一次

1.5. 需要制定日志的过期策略以防止磁盘被二进制日志写满

1.6. 日志增长的大小取决于工作负载和日志格式(基于行的日志会产生更大的日志记录)

1.7. 保留日志对于设置复制、分析服务器负载、审计和从上次全备份中按时间点进行恢复,都很有帮助

1.8. 使用binlog_expire_logs_seconds变量来通知MySQL定期清理日志,而不应该手动地去删除这些文件

1.9. MySQL服务器通过查看修改时间而不是内容来决定要清除哪些文件

2. 工具

2.1. MySQL Enterprise Backup

2.1.1. MySQL官方的备份工具

2.2. Percona XtraBackup

2.2.1. 开源并且免费的

2.2.2. 支持类似流、增量、压缩和多线程(并行)备份操作

2.2.3. 降低在高负载系统上进行备份的影响

2.2.4. 当使用Percona XtraBackup进行备份时,它会记录日志序列号(LSN),并使用该序列号对备份文件执行崩溃恢复

2.3. mydumper

2.3.1. 一个多线程(并发)的MySQL备份和恢复工具集

2.4. mysqldump

3. 备份数据

3.1. 应该最大化地利用网络、磁盘和CPU的能力以尽可能快地完成备份

3.2. 主要的问题

3.2.1. 将库表结构和数据存储在一起

3.2.2. 巨大的SQL语句

3.2.2.1. 服务器解析和执行SQL语句的工作量非常大,所以加载数据时会非常慢

3.2.3. 单个巨大的文件

3.2.4. 逻辑备份的成本很高

3.2.4.1. 在生产环境使用逻辑备份可能很难满足要求
3.2.4.2. 如果使用逻辑备份,强烈建议考虑使用mydumper,以避免单线程备份的一些问题,并实际测试使用该工具备份对数据库的影响

3.3. 文件系统快照

3.3.1. 一种非常好的在线备份方法

3.3.2. FreeBSD的文件系统、ZFS文件系统、GNU/Linux的逻辑卷管理(LVM)

3.3.3. 创建快照是减少必须持有锁的时间的一个简单方法;释放锁后,必须将文件复制到备份中

3.3.4. 使用文件系统快照,有些时候甚至无须任何锁定,就可以创建InnoDB的备份快照

3.3.5. 文件系统快照不是取得数据瞬间副本的唯一方法

3.3.5.1. 另外一个选择是RAID分裂

3.3.6. 快照不仅仅用于备份,还有很多其他用途

4. 恢复数据

4.1. 步骤

4.1.1. 停止MySQL服务器

4.1.2. 记录服务器的配置和文件权限

4.1.3. 将数据从备份中移到MySQL数据目录

4.1.4. 改变配置

4.1.5. 改变文件权限

4.1.6. 以限制访问模式重启服务器,等待其完成启动

4.1.7. 载入逻辑备份文件

4.1.8. 检查和重放二进制日志

4.1.9. 检测已经还原的数据

4.1.10. ⑩以完全权限重启服务器

4.2. 恢复逻辑备份

4.2.1. 如果恢复的是逻辑备份而不是裸文件备份,则与使用操作系统将文件简单地复制到适当位置的方式不同,需要使用MySQL服务器本身来将数据加载到表中

4.2.2. 一个值得倡导的规则是,恢复过程越难越复杂,也就越需要逻辑备份的保护

4.2.3. 应付某些无法使用裸文件备份的场景,准备好逻辑备份总是值得推荐的

4.3. 从快照中恢复

4.3.1. 恢复裸文件备份往往非常直接

4.3.2. 如果使用InnoDB的file-per-table特性(innodb_file_per_table),InnoDB会将每个表的数据和索引存储于一个.ibd文件中

4.3.3. 最大的限制是,只能在当初备份的服务器上还原单个表

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

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

相关文章

MySQL数据库入门到精通8--进阶篇( MySQL管理)

7. MySQL管理 7.1 系统数据库 Mysql数据库安装完成后,自带了一下四个数据库,具体作用如下: 7.2 常用工具 7.2.1 mysql 该mysql不是指mysql服务,而是指mysql的客户端工具。 语法 : mysql [options] [database] 选…

NumPy数值计算

1、Numpy概念 1.1Numpy是什么? Numpy是(Numerical Python的缩写):一个开源的Python科学计算库使用NumPy可以方便的使数组、矩阵进行计算包含线性代数、傅里叶变换、随机数生成等大量函数 1.2为什么使用Numpy 对于同样的数值计…

Windows打开:控制面板\网络和 Internet\网络连接 显示空白怎么办?

Windows打开:控制面板\网络和 Internet\网络连接 显示空白怎么办? 最近有用户反馈遇到这个问题,问题产生原因:在卸载某个软件的时候,系统提示需要重新启动计算机,但是,启动之后,就…

前端项目练习(练习-002-NodeJS项目初始化)

首先,创建一个web-002项目,内容和web-001一样。 下一步,规范一下项目结构,将html,js,css三个文件放到 src/view目录下面: 由于html引入css和js时,使用的是相对路径,所以…

从聚水潭到金蝶云星空通过接口配置打通数据

从聚水潭到金蝶云星空通过接口配置打通数据 数据源平台:聚水潭 聚水潭SaaSERP于2014年4月上线,目前累计超过2.5万商家注册使用,成为淘宝应用服务市场ERP类目商家数和商家月订单增速最快的ERP。2014年及2015年“双十一”当天,聚水潭SaaSERP平稳…

python的讲解和总结V2.0

python的讲解和总结V2.0 一、Python的历史二、Python的特点三、Python的语法四、Python的应用领域五、Python的优缺点优点a. 简单易学:b. 可读性强:c. 库和框架丰富:d. 可移植性强:e. 开源: 缺点a. 运行速度较慢&#…

C 语言基础题:PTA L1-027 出租

下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]2 对应 arr[2]1,index[1]0 对应 arr[0]8,index[2]3 对应 arr[3]0&…

springboot 捕获数据库唯一索引导致的异常

在一些业务场景中,需要保证数据的唯一性,一般情况下,我们会先到数据库中去查询是否存在,再去判断是否可以插入新的数据.如果是在高并发的情况下,可能还是会出现重复的情况.这时候可能就需要用到锁.也可以在数据库中设置唯一索引. 如果使用唯一索引,在插入相同数据的情况下会抛出…

【postgresql】ERROR: column “xxxx.id“ must appear in the GROUP BY

org.postgresql.util.PSQLException: ERROR: column "xxx.id" must appear in the GROUP BY clause or be used in an aggregate function 错误:列“XXXX.id”必须出现在GROUP BY子句中或在聚合函数中使用 在mysql中是正常使用的,在postgre…

GAN笔记:利普希茨连续(Lipschitz continuity)

利普希茨连续(Lipschitz continuity)是一个数学概念,用于描述一个函数在其定义域内的变化程度。在生成对抗网络(GAN)中,利普希茨连续性对于鉴别器(Discriminator)的设计和训练具有重…

麻将技术从入门到高手,麻将听牌从基础到进阶

一、教程描述 本套麻将教程,大小8.82G,共有132个文件。 二、教程目录 麻将教程001-麻将的基本概念.mp4 麻将教程002-数牌的特性.mp4 麻将教程003-好坏搭判断.mp4 麻将教程004-拆搭原则.mp4 麻将教程005-听牌攻略.mp4 麻将教程006-进程判断.mp4 …

MySQL高级语句(第二部分)

MySQL高级语句(第二部分)一、视图表 create view1、视图表概述2、视图表能否修改?(面试题)3、基本语法3.1 创建3.2 查看3.3 删除 4、通过视图表求无交集值 二、case语句三、空值(null) 和 无值(’ ) 的区别四、正则表达式五、存储过程1、简介…

【LeetCode热题100】--238.除自身以外数组的乘积

238.除自身以外数组的乘积 思路: 利用索引左侧所有数字的乘积和右侧所有数字的乘积(即前缀和后缀)相乘得到答案 算法: 1.初始化两个空数组L和R,对于给定索引i,L[i]代表的是i左侧所有数字的乘积&#xff…

基于springboot会员制医疗预约服务管理信息系统springboot017

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

2023最新PS(photoshop)Win+Mac免费下载安装包及教程内置AI绘画-网盘下载

2023最新PS(photoshop)WinMac免费下载安装包及教程内置AI绘画-网盘下载 2023最新PS(photoshop)免费下载安装教程来咯~ 「PhotoShop」全套,winmac: https://pan.quark.cn/s/9d8d8ef5c400#/list/share 所有版本都有 1,复制链接…

高并发下双重检测锁DCL指令重排问题剖析

文章目录 一、引言1.1 双重检查锁定(Double-Checked Locking,简称DCL)定义介绍1.2 高并发环境下DCL的应用和优势 二、DCL存在的问题2.1 DCL的代码示例2.2 指令重排的定义和工作原理2.3 指令重排导致DCL失效的情况分析 三、深入分析指令重排和…

「大数据-2.1」HDFS集群启停命令

目录 一、HDFS集群一键启停脚本 1. HDFS集群的一键启动脚本 2. HDFS集群的一键关闭脚本 二、单进程启停 1. hadoop-daemon.sh脚本 2. hdfs脚本 三、总结 1. 一键启停脚本 2. 独立进程启停 一、HDFS集群一键启停脚本 Hadoop HDFS组件内置了HDFS集群的一键启停脚本。 1. HDFS集群…

JavaScript 期约 Promise 总结

同步与异步的概念 JavaScript 是一门单线程的语言,这意味着它在任何给定的时间只能执行一个任务。 然而,JavaScript 通过异步编程技术来处理并发操作,以避免阻塞主线程的情况。 在上图中,同步行为的进程 A 因为等待进程 B 执行完…

深入浅出Java的多线程编程——第一篇

目录 1. 认识线程(Thread) 1.1 概念 1.1.1 线程是什么 1.1.2 为啥需要线程 1.1.3 进程和线程的区别 1.1.4 Java的线程和操作系统线程的关系 1.2 第一个多线程程序 1.3 创建线程的方式(5种) 1.3.1 继承Thread类 1.3.2 实现…

电脑开机慢问题的简单处理

电脑用久了,开机时间要10-20分钟特别慢,一下介绍两种简单有效处理方式,这两种方式经测试不会影响原系统软件的使用: 方式一:禁用非必要启动项【效果不是很明显】 利用360里面的优化加速禁用启动项【禁用启动项还有其…