• 14.8.2 Verifying File Format Compatibility 校验文件格式兼容性:


    14.8.2 Verifying File Format Compatibility  校验文件格式兼容性:
    
    14.8.2.1 Compatibility Check When InnoDB Is Started
    14.8.2.2 Compatibility Check When a Table Is Opened
    
    
    InnoDB 包含几个检查来防范可能的crashes 和数据腐败 如果你运行一个老版本的MySQL 服务器 在
    
    InnoDB 数据文件 使用一个新的文件格式。
    
    
    那些检查发生当server 启动时,和你第一次访问表时。
    
    
    这个章节描述那些检查, 你如何控制它们,错误和警告条件你可能产生
    
    
    向后兼容性:
    
    你需要考虑向后文件格式兼容当使用一个最新 版本的InnoDB(MySQL 5.5 and higher with InnoDB) 
    
    和一个老的版本(MySQL 5.1 or earlier,  使用内置的InnoDB相比InnoDB 插件)
    
    
    
    一般来说, 一个新的InnoDB 版本可能创建一个表或者索引,不能安全的被读取或者写
    
    在一个老版本的InnoDB 没有crahs的风险,hangs,错误的结果。
    
    
    InnoDB 包含一种极其来防范这些状况,
    
    
    并帮助保护数据文件之间的兼容性和InnoDB 的版本。
    
    
    这种机制让你可以利用一些InnoDB 新的功能( 比如性能改进和bug解决)
    
    
    
    如果一个InnoDB 版本支持一个特定的文件格式( 不管是否是默认),
    
    
    你可以查询和更新任何表,需要这个格式或者一个早期的格式。
    
    
    只有新创建的表使用新的格式是被限制的,基于特定的文件格式。
    
    
    相反,如果一个tablespace 包含一个表或者索引使用一个文件格式不被支持,
    
    它不能被访问,甚至读访问。
    
    
    唯一的方式降级一个Innodb tablespace 到一个早期的Antelope file format
    
    是拷贝数据到新表,在一个tablespace 使用早期的格式。
    
    
    最简单的方式确定一个存在的InnoDB 表空间的文件格式是检查表的属性,
    
    使用SHOW TABLE STATUS 命令或者查询表 INFORMATION_SCHEMA.TABLES.
    
    
    如果表的Row_format 为as 'Compressed' or 'Dynamic', 
    
    
    表空间包含的表是使用Barracuda format.  否则 它使用Antelope
    
    
    
    
    Internal Details 内部的细节:
    
    每个InnoDB  file-per-table tablespace(用 *.ibd file表示) 文件是标记为一个文件格式表示。
    
    
    system tablespaace(表现为ibdata文件)是标记为最高的文件格式在InnoDB 数据文件里,
    
    
    
    
    创建一个压缩表,或者一个表使用ROW_FORMAT=DYNAMIC, 
    
    
    更新 相应的 file-per-table 的文件头。
    
    .ibd 文件和表类型 在InnoDB data 目录使用Barracuda file format. 
    
    
    
    ib-file 定义:
    
    
    为了避免混乱,讨论的目的是我们定义 术语  “ib-file set”  来意味着操作系统的文件集,
    
    InnoDB 管理作为一个单元,ib-file 集包含下面的文件;
    
    
    1.system tablespace (一个或者多个ibdata文件)包含了内部的系统信息
    (包含内部的catalogs和undo 信息) ,也可能包含user data和indexes.
    
    
    2. 0个或者6个 single-table tablespaces (也被称为“file per table” files, named *.ibd files).
    
    
    3.InnoDB log files,通常两个, ib_logfile0 and ib_logfile1.  用于crash recovery 和备份
    
    
    An “ib-file set” 不包含相应的.frm文件包含metadata关于InnoDB表。
    
    .frm 文件是mysql创建和管理
    

  • 相关阅读:
    F#新Bug,小心! module 里的泛型变量。
    F#: mutable 关键字不适宜用于结构中声明可变值
    简说F#的数组
    元组——秃瓢(Tuple)
    如何用Xmind编写测试用例
    如何提高评审的效率
    接口测试实例/20200622
    mysql数据库的基本增删改查操作总结
    面试技巧篇02:面试前必看!
    面试技巧篇01
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199698.html
Copyright © 2020-2023  润新知