MySQL OCP888题解056-InnoDB强制启动(forcing-innodb-recovery)

2023-10-18 21:20

本文主要是介绍MySQL OCP888题解056-InnoDB强制启动(forcing-innodb-recovery),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1、原题
    • 1.1、英文原题
    • 1.2、中文翻译
    • 1.3、答案
  • 2、题目解析
    • 2.1、题干解析
    • 2.2、选项解析
  • 3、知识点
    • 3.1、知识点1:InnoDB强制启动(forcing-innodb-recovery)
  • 4、总结

1、原题

1.1、英文原题

The InnoDB tablespace is corrupted and you start the server with option --innodb_force_recover=4 Which backup method would you use to reload the corrupted InnoDB tables?
A、A text backup. InnoDB does not allow you to make binary backups while the server is running.
B、a binary backup taken with MySQL Enterprise Backup that backup up even corrupted tables
C、a binary backup that uses transportable tablespaces and allows you to reload a corrupted table
D、A text backup. A binary backup will still contain the corrupted segments.

1.2、中文翻译

InnoDB表空间已损坏,您使用选项–InnoDB_force_recover=4启动服务器,您会使用哪种备份方法来重新加载损坏的InnoDB表?
A、 文本备份。InnoDB不允许您在服务器运行时进行二进制备份。
B、 使用MySQL Enterprise backup进行的二进制备份,甚至可以备份损坏的表
C、 二进制备份,使用可传输的表空间,并允许您重新加载损坏的表
D、 文本备份。二进制备份仍将包含损坏的段。

1.3、答案

D

2、题目解析

2.1、题干解析

本题考察InnoDB强制启动(forcing-innodb-recovery)相关的知识。

2.2、选项解析

  1. InnoDB一旦强制恢复,则物理存储已经损坏,但是可以通过文本备份来机型一致性恢复,所以选项D正确。

3、知识点

3.1、知识点1:InnoDB强制启动(forcing-innodb-recovery)

  • 在一些数据库发生严重损坏导致数据库无法正常启动的情况下,可以使用innodb_force_recovery选项来强制InnoDB存储引擎启动,这样可以忽略启动时的一些内部操作,牺牲数据的一致性,从而先让数据库启动起来,从而获得备份的可能性和时间。方法是在选项文件的[mysqld]部分添加以下一行:
[mysqld]
innodb_force_recovery = 1
  • innodb_force_recovery默认为0(正常启动,没有强制恢复),允许的非零值是1到6。一个较大的值包括较小值的功能。例如,一个3的值包括1和2的所有功能。只有在紧急情况下才将innodb_force_recovery设置为大于0的值。4或更大的值会永久地损坏数据文件。当强制InnoDB恢复时,你应该总是从innodb_force_recovery=1开始尝试,并且只在必要时逐步增加该值。如果你能够在innodb_force_recovery的值为3或更小的情况下转储你的表,那么你就相对安全了,只有个别页面上损坏的一些数据会丢失。4或更大的值被认为是危险的,因为数据文件可能被永久地损坏。6的值被认为是剧烈的,因为数据库页被留在一个过时的状态,这反过来可能会给B-树和其他数据库结构带来更多的损坏。

  • 在使用innodb_force_recovery选项启动数据库之前,确保你有一个数据库的备份,以备在数据库损坏的情况下可以恢复。

  • 当innodb_force_recovery大于0时,InnoDB会阻止INSERT、UPDATE或DELETE操作。innodb_force_recovery设置为4或更大时,InnoDB会进入只读模式。选项的具体含义如下所示:

官方参考文档

4、总结

  1. 当InnoDB引擎的MySQL数据库发生严重损坏时,可以尝试用innodb_force_recovery来强制启动数据库,实质是忽略MySQL启动时的一些内部操作,让数据库先启动起来。
  2. innodb_force_recovery的值大于1时都会有损坏数据库的风险,值越大可能发生的损害越大,4或者更大的值会导致数据文件的永久损坏。因此使用innodb_force_recovery前一定要先做备份,在使用innodb_force_recovery时要从1逐渐增大。

这篇关于MySQL OCP888题解056-InnoDB强制启动(forcing-innodb-recovery)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/235193

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

浅谈mysql的not exists走不走索引

《浅谈mysql的notexists走不走索引》在MySQL中,​NOTEXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引,下面就来介绍一下mysql的notexists走不走索... 在mysql中,​NOT EXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引。以下

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys