欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > MYSQL教程 > 取消MYSQL_VERSION为固定参数_MySQL启动、关闭与恢复 参数介绍

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:518

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:496

取消MYSQL_VERSION为固定参数_MySQL启动、关闭与恢复 参数介绍

发布时间:2021-04-22  

InnoDB存储引擎是MySQL的存储引擎之一,因此InnoDB存储引擎的启动和关闭更准确地是指在MySQL实例的启动过程中InnoDB表存储引擎的处理过程。

 

在关闭时,参数innodb_fast_shutdown影响着表的存储引擎为InnoDB的行为。该参数可取值为0、1、2。

 

0代表当MySQL关闭时,InnoDB需要完成所有的full purge和merge insert buffer操作,这会需要一些时间,有时甚至需要几个小时来完成。如果在做InnoDB plugin升级,通常需要将这个参数调为0,然后再关闭数据库。

 

1是该参数的默认值,表示不需要完成上述的full purge和merge insert buffer操作,但是在缓冲池的一些数据脏页还是会刷新到磁盘。

 

2表示不完成full purge和merge insert buffer操作,也不将缓冲池中的数据脏页写回磁盘,而是将日志都写入日志文件。这样不会有任何事务会丢失,但是MySQL数据库下次启动时,会执行恢复操作(recovery)。

 

当正常关闭MySQL数据库时,下一次启动应该会很正常。但是,如果没有正常地关闭数据库,如用kill命令关闭数据库,在MySQL数据库运行过程中重启了服务器,或者在关闭数据库时将参数innodb_fast_shutdown设为了2,MySQL数据库下次启动时都会对InnoDB存储引擎的表执行恢复操作。

 

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

 

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

 

innodb_force_recovery还可以设置为6个非零值:1~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):不查看撤销日志(Undo Log),InnoDB存储引擎会将未提交的事务视为已提交。

 

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

 

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

 

下面是实验,模拟故障的发生。在第一会话中,对一张接近1 000W行的InnoDB存储引擎表执行更新操作,但是完成后不要马上提交:mysql>start transaction;

 

Query OK, 0 rows affected (0.00 sec)

 

mysql>update Profile setpassword='';

 

Query OK, 9587770 rows affected (7 min 55.73 sec)

 

Rows matched: 9×××48  Changed: 9587770  Warnings: 0

 

start transaction语句开启了事务,同时防止了自动提交的发生,update操作则会产生大量的回滚日志。这时,我们人为地kill掉MySQL数据库服务器。[[email protected] ~]# ps -ef | grep mysqld

 

root     28007     1  0 13:40 pts/1

 

00:00:00 /bin/sh ./bin/mysqld_safe-

 

-datadir=http://www.weixuecn.cn/usr/local/mysql/data--pid-file=http://www.weixuecn.cn/usr

 

/local/mysql/data/nineyou0-43.pid

 

mysql    28045 28007 42 13:40 pts/1    00:04:23

 

/usr/local/mysql/bin/mysqld--basedir=http://www.weixuecn.cn/usr/local/mysql

 

--datadir=http://www.weixuecn.cn/usr/local/mysql/data--user=mysql

 

--pid-file=http://www.weixuecn.cn/usr/local/mysql/data/nineyou0-43.pid

 

--skip-external-locking--port=3306--socket=http://www.weixuecn.cn/tmp/mysql.sock

 

root     28110 26963  0 13:50 pts/11   00:00:00 grep mysqld

 

[[email protected] ~]# kill -9 28007

 

[[email protected] ~]# kill -9 28045

 

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.