返回顶部
首页 > 资讯 > 数据库 >Innodb关键特性之怎么实现启动、关闭和恢复
  • 409
分享到

Innodb关键特性之怎么实现启动、关闭和恢复

2024-04-02 19:04:59 409人浏览 独家记忆
摘要

这篇文章主要讲解了“Innodb关键特性之怎么实现启动、关闭和恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Innodb关键特性之怎么实现启动、关闭和恢

这篇文章主要讲解了“Innodb关键特性之怎么实现启动、关闭和恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Innodb关键特性之怎么实现启动、关闭和恢复”吧!

       参数innodb_fast_shutdown影响着表的存储引擎为Innodb的行为,该参数可以取值为0、1、2,默认值为1,支持全动态局设置。

设置为1:关闭Mysql的时候不会做清除脏页和插入缓冲区的合并操作,也不会将脏页刷新到磁盘。

设置为0:会做清除脏页和插入缓冲区的合并操作,也会将脏页全部刷新到磁盘上面去,但是这个时候关闭的速度也是最慢的。

设置为2:不会做清除脏页和插入缓冲区的合并操作,也不会将脏页刷新到磁盘,但是会刷新到redo log里面,再下次启动

mysql时候恢复。

       参数innodb_force_recovery影响了整个Innodb存储引擎的恢复状况。该值默认为0,表示当需要恢复时执行所有的恢复操作。当不能进行有效恢复时,如数据页发生了corruption,Mysql数据库可能会宕机,并把错误写入错误日志中。

       但在某些情况下,可能不需要执行完整的恢复操作。例如在进行alter table操作时,这时发生意外,数据库重启时会对Innodb表执行回滚操作。对于一个大表,这需要很长时间,甚至可能是几个小时。这时可以自行恢复,例如将表删除,从备份中重新将数据导入表中,这些操作可能要快于回滚操作。

 innodb_force_recovery可以设置6个非零值:

1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。

2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。

3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。

4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。

5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。

6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

备注:当设置innodb_force_recovery大于0后,可以对表进行select、create、drop操作,但insert、update或者delete这类操作是不允许的。

      下面做一个实验,来模拟故障的发生。

查看相关参数:

mysql> show variables like 'innodb_force%';
+-----------------------------+-------+
| Variable_name               | Value |
+-----------------------------+-------+
| innodb_force_load_corrupted | OFF   |
| innodb_force_recovery       | 0     |
+-----------------------------+-------+
2 rows in set (0.01 sec)
mysql> show variables like 'innodb_fast%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| innodb_fast_shutdown | 1     |
+----------------------+-------+
1 row in set (0.01 sec)

手动开启事务,防止auto commit,并更新1000000条记录,不提交。

mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> update rank_item set city=5000 limit 1000000;
Query OK, 1000000 rows affected (4 min 34.50 sec)
Rows matched: 1000000  Changed: 1000000  Warnings: 0

然后kill掉mysql进程,启动mysql,查看错误日志输出。

2020-08-05T07:07:20.271772Z 0 [Note] InnoDB: Starting in background the rollback of uncommitted transactions
2020-08-05T07:07:20.271806Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2020-08-05T07:07:20.271826Z 0 [Note] InnoDB: Rolling back trx with id 393530, 901725 rows to undo
2020-08-05T07:07:20.271841Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
InnoDB: Progress in percents: 12020-08-05T07:07:20.272012Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2020-08-05T07:07:20.344665Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2020-08-05T07:07:20.346201Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2020-08-05T07:07:20.346228Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2020-08-05T07:07:20.346492Z 0 [Note] InnoDB: Waiting for purge to start
2020-08-05T07:07:20.396629Z 0 [Note] InnoDB: 5.7.26 started; log sequence number 248770956866
2020-08-05T07:07:20.396654Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 30517ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.)
2020-08-05T07:07:20.397332Z 0 [Note] InnoDB: Loading buffer pool(s) from /data/mysql/data/ib_buffer_pool
2020-08-05T07:07:20.398205Z 0 [Note] Plugin 'FEDERATED' is disabled.
2020-08-05T07:07:20.405796Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2020-08-05T07:07:20.405835Z 0 [Note] Server hostname (bind-address): '*'; port: 16008
2020-08-05T07:07:20.405919Z 0 [Note] IPv6 is available.
2020-08-05T07:07:20.405943Z 0 [Note]   - '::' resolves to '::';
2020-08-05T07:07:20.406018Z 0 [Note] Server Socket created on IP: '::'.
2020-08-05T07:07:20.471375Z 0 [Note] Event Scheduler: Loaded 0 events
2020-08-05T07:07:20.471641Z 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.7.26'  socket: '/tmp/mysqld.sock'  port: 16008  Source distribution
2020-08-05T07:07:31.464532Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 10068ms. The settings might not be optimal. (flushed=5784 and evicted=0, during the time.)
 2 3 4 5 6 7 82020-08-05T07:08:13.440447Z 0 [Note] InnoDB: Buffer pool(s) load completed at 200805 15:08:13
 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 1002020-08-05T07:12:12.083704Z 0 [Note] InnoDB: Rollback of trx with id 393530 completed
2020-08-05T07:12:12.083776Z 0 [Note] InnoDB: Rollback of non-prepared transactions completed

可以看到rollback过程用了很久。

感谢各位的阅读,以上就是“Innodb关键特性之怎么实现启动、关闭和恢复”的内容了,经过本文的学习后,相信大家对Innodb关键特性之怎么实现启动、关闭和恢复这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: Innodb关键特性之怎么实现启动、关闭和恢复

本文链接: https://lsjlt.com/news/62361.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Innodb关键特性之怎么实现启动、关闭和恢复
    这篇文章主要讲解了“Innodb关键特性之怎么实现启动、关闭和恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Innodb关键特性之怎么实现启动、关闭和恢...
    99+
    2024-04-02
  • Innodb关键特性之什么是doublewrite
    本篇内容介绍了“Innodb关键特性之什么是doublewrite”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • Innodb关键特性之什么是Insert Buffer
    本篇内容介绍了“Innodb关键特性之什么是Insert Buffer”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • Innodb关键特性之怎么刷新邻接页
    本篇内容介绍了“Innodb关键特性之怎么刷新邻接页”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、工作...
    99+
    2024-04-02
  • Innodb关键特性之什么是异步IO
    这篇文章主要介绍“Innodb关键特性之什么是异步IO”,在日常操作中,相信很多人在Innodb关键特性之什么是异步IO问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Inno...
    99+
    2024-04-02
  • redis怎么启动和关闭
    redis启动和关闭指南 Redis是一个内存数据库,广泛用于缓存、消息传递和持久性存储等应用场景。本文将详细介绍如何启动和关闭Redis。 启动Redis 1. 确保安装Redis 在...
    99+
    2024-05-21
    redis 数据丢失
  • nginx怎么关闭、重启、和启动
    本篇内容主要讲解“nginx怎么关闭、重启、和启动”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nginx怎么关闭、重启、和启动”吧!关闭service nginx stop...
    99+
    2023-06-28
  • linux怎么启动和关闭redis
    在Linux系统中,可以通过以下步骤来启动和关闭Redis: 启动Redis: 打开终端窗口,输入以下命令来启动Redis服务器:...
    99+
    2024-04-26
    redis linux
  • MySQL的启动与关闭怎么实现
    本篇内容介绍了“MySQL的启动与关闭怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-04-14
    mysql
  • PHP怎么实现平滑关闭和重启
    本篇内容介绍了“PHP怎么实现平滑关闭和重启”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!原理要实现平滑关闭/重启不难,这里先讲解两个知识点...
    99+
    2023-06-30
  • oracle中怎么启动和关闭数据库
    这篇文章将为大家详细讲解有关oracle中怎么启动和关闭数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。启动和关闭数据库:每个数据库至少包含一个例程,例...
    99+
    2024-04-02
  • WPF怎么实现关键帧动画
    本篇内容介绍了“WPF怎么实现关键帧动画”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!动画与关键帧的区别普通动画WPF基础动画当中, 我们熟...
    99+
    2023-06-29
  • 怎么在 IDEA中关闭和开启自动更新
    怎么在 IDEA中关闭和开启自动更新?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 如何关闭这个烦人的更新提示框呢? ==通常情况下,当我们打开 IDEA 后, ...
    99+
    2023-06-14
  • win10怎么设置自动开启和关闭移动热点
    这篇文章主要介绍了win10怎么设置自动开启和关闭移动热点的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10怎么设置自动开启和关闭移动热点文章都会有所收获,下面我们一起来看看吧。具体教程:同时按下【Win...
    99+
    2023-06-27
  • win10怎么实现快捷键快速开启与关闭蓝牙功能
    本篇内容主要讲解“win10怎么实现快捷键快速开启与关闭蓝牙功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10怎么实现快捷键快速开启与关闭蓝牙功能”吧!具体操作:打开设置以后,选择【设...
    99+
    2023-06-27
  • mfc怎么实现对话框自动关闭
    要实现对话框自动关闭,可以使用定时器来实现。具体步骤如下: 在对话框类的头文件中添加定时器的ID号,例如:`#define TI...
    99+
    2023-10-28
    mfc
  • java线程超时自动关闭怎么实现
    在Java中实现线程超时自动关闭可以使用两种方式:使用Timer类或使用Future接口。1. 使用Timer类:```javaTi...
    99+
    2023-08-31
    java
  • PHP 设计模式:实现代码复用和扩展性的关键
    在现代软件开发中,创建可扩展、可维护的应用程序至关重要。PHP 设计模式提供了一组经过验证的最佳实践,可帮助开发人员实现代码复用和提高扩展性,从而降低复杂性和开发时间。 什么是 PHP 设计模式? 设计模式是可重用的编程解决方案,可解决...
    99+
    2024-02-20
    PHP 设计模式 代码复用 扩展性 SOLID 原则
  • 如何实现关闭所有分区自动播放和恢复所有分区自动播放的cmd批处理
    小编给大家分享一下如何实现关闭所有分区自动播放和恢复所有分区自动播放的cmd批处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用方法,新建一个.TXT文本文档...
    99+
    2023-06-08
  • Mysql中默认自动事务autocommit关闭和开启方式、rollback回滚恢复数据的使用方法
    文章目录 autocommit自动提交事物一、查看autocommit状态二、修改autocommit 状态的方式1、第一种方式2、修改mysql配置文件my.cnf 二、rollbac...
    99+
    2023-10-18
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作