0
点赞
收藏
分享

微信扫一扫

Mysql的物理文件组成





一.日志文件



1.1 错误日志




    记录了mysql运行过程中较为严重的错误信息,以及启动和关闭的信息。


默认命名hostname.err


可以在参数文件中加上 --log-error[=file_name]修改目录名和文件名


flush logs 命令: 备份旧日志文件并生成新的日志文件。备份文件名以'.old'结尾



2. 二进制日志: Binary Log & Binary Log Index



   binlog,在参数文件中添加"--bin-log[=file_name]"打开binlog


   binlog:记录的是操作mysql的所有修改数据库的操作。


   


   binlog附加选项参数


 --max_binlog_size : binlog的日志文件大小,一个日志满了后会重新写入一个文件。


 --binlog-do-db=db_name : 对某个db_name记录bin-log日志


 --binlog-ignore-db=dbname : 与--binlog-do-db=db_name 完全相反,忽略db_name的binlog日志


 


 mysql-bin.index 文件(binary log index)记录所有的Binary Log 的绝对路径


 


3.更新日志:update log 




功能跟binlog类似,以文本方式记录。mysql 5.0版本后很少使用更新日志了。


 


4.查询日志




   记录mysql中所有的query,通过"--log[=fina_name]"来打开该功能。记录了所有的query


包括select,所以体积很大,开启后对性能有较大的影响。慎用,一般用于跟踪某些特殊的sql性能


才会短暂开启该功能。默认的查询日志文件名为hostname.log



5.慢查询日志: slow query log 



记录的是执行时间长的sql,也就是常说的slow query ,通过设 --log-slow-queries[=file_name]


来打开该功能,并设置记录位置和文件名,默认文件名为hostname-slow.log 


  格式为文本,记录了执行时间,消化时间,执行用户,链接主机信息等



6.innodb的在线redo日志:innodb redo log




  redo记录了innodb所做的所有物理变更和事物信息,通过redo和undo信息。Innodb保证了在任何情况下


的事物的安全性。 默认存放在data目录下,可以通过innodb_log_group_home_dir来更改设置日志的存放位置


通过innodb_log_files_in_group设置日志的数量



mysql> show variables like 'innodb_log_files_in_group';


+---------------------------+-------+


| Variable_name             | Value |


+---------------------------+-------+


| innodb_log_files_in_group | 2     |


+---------------------------+-------+


1 row in set (0.00 sec)




二.数据文件



用来存放该数据库中各种表的数据文件。没个数据文件的扩展名不一样。如 MyISAM用 ".MYD"作为扩展名,innodb用".ibd",Archive用"".arc,CSV用".csv"等等




1.frm文件




每个表都会有一个以表名命名的.frm文件。所有的.frm文件都存放在所属数据库的文件夹下面。



2.myd文件


与之对应,同样存放于所属数据库的文件夹下,和".frm"文件在一起



3.myi文件




可以被cache的内容主要来源于.myi文件中。每一个MyISAM表对应一个.MYI文件.



4.ibd文件和ibdata文件




innodb的数据存储方式能通过配置来决定是使用共享表空间存放数据,还是独享表空间存储数据。


ibdata文件存放,所有表共同使用一个ibdata文件。



ibdata文件可通过 innodb_data_home_dir 和 innodb_data_file_path 两个参数共同配置组成;



innodb_data_home_dir:配置数据文件存放目总目录


innodb_data_file_path :配置每一个文件的名称


innodb_data_file_path可以一次配置多个ibdata文件。可以指定大小,自动扩展,但是innodb 限制了仅仅只有最后一个ibdata文件能够配置成自动扩展类型。当我们需要添加新的ibdata文件的时候 只能添加在 innodb_data_file_path 配置的最后,而且必须重启才能完成ibdata的添加工作。不过我们 使用独享表空间存储方式的话,就不会有这养的问题,但是用裸设备,每个标一个裸设备,可能造成裸设备 数量非常大,而且不容易控制大小,实现比较困难。




5.Replication相关文件



1.master.info文件


   master.info文件存放于Slave端的数据目录下,里面存放了该Slave的Master端的相关信息。包括


Master的主机地址,链接用户,链接密码,链接接口,当前日志位置,已经读取到的日志位置等信息。



2.relay log和relay log index 



SQL线程从该relay log 中读取并解析相应的日志信息,转化成Master所执行的SQL语句,然后在Slave端 应用


mysql-relay-bin.index 文件的功能 类似于mysql-bin.index同样记录日志的存放未指定绝对路径,relay log路径



3.relay-log.info 文件



某些管理操作随时能够获取当前复制相关信息。



三.其他文件



1. system config file 



mysql系统配置文件my.cnf 在linux/Unix下默认存放在/etc目录下。


windows环境一般存放在c:/windows目录下面。my.cnf 文件包含多种参数组(group)


每一种参数组都通过中括号给定了固定组名,如[mysqld]组中包含了服务器启动的时候的


初始化参数,[client]组中包含着客户端工具程序可以读取的参数,此外还有其他针对于各种客户端软件


的特定参数组,如mysql程序使用[mysql],mysqlchk使用的[mysqlchk]等等。



2.pid file



pid file 是mysqld应用程序在Unix/Linux环境下的一个进程文件,和许多其他Unix/Linux服务端程序一样,


存放自己的进程id.



3.socket file




tcp/ip 网络而直接用unix socket 来链接Mysql





举报

相关推荐

0 条评论