有人能向我解释一下在MySQL启动和关闭期间发生了什么吗?我想知道安全的启动/关闭过程。
发布于 2012-12-17 17:59:16
当您停止或启动MySQL时,您应该关注过程中的数据和连接状态。
sync-binlog,所以mysqld完全依赖于操作系统来刷新最终的二进制日志条目。skip-innodb,则将绕过所有InnoDB启动。如果MySQL复制在关机时启动并运行,请注意以下协议:
MASTER协议: mysqld只关注SLAVE协议: mysqld将运行STOP SLAVE; master.info文件,说明上一次下载母版的SQL命令,记录在中继日志中并执行。MASTER/SLAVE协议:如果一个MySQL实例既是主协议又是从实例,那么单独的主协议和从协议都适用在启动时,如果在从服务器上配置了MySQL复制,
master.infomaster.info和最后一次中继日志将IO线程连接到主服务器master.info将SQL线程连接到从线程由于MyISAM表不是事务性的,唯一的缓存是用于索引查找,因此MyISAM键缓存被简单地丢弃。.frm、.MYD和.MYI的所有打开文件句柄都已关闭,任何MyISAM的打开文件句柄计数都会减少。如果mysqld崩溃,任何打开的MyISAM表的打开文件句柄计数都是大于0的崩溃时间,导致mysqld将MyISAM表视为崩溃。在该REPAIR TABLE上运行MyISAM在启动时可能是必要的(必须手动执行或您可以将mysqld配置为自动完成此操作.)
在启动时,如果启用了MyISAM恢复选项,则对任何对打开的文件句柄具有非零值的封闭MyISAM表执行REPAIR TABLE。
由于InnoDB是一个事务存储引擎,所以需要执行关机的步骤。
如果启用了innodb_fast_shutdown,则InnoDB基础结构(双写缓冲区,InnoDB日志文件)中的任何挥之不去的事务都将保留在关闭时的文件中。这些更改将在mysqld的下一次启动过程中执行。
如果禁用innodb_fast_shutdown,则InnoDB基础结构(双写缓冲区,InnoDB日志文件)中的任何挥之不去的事务都将在关机时完成。这使得mysqld的启动速度更快。
https://dba.stackexchange.com/questions/29410
复制相似问题