mysql数据库有哪些文件

54次阅读
没有评论

共计 2230 个字符,预计需要花费 6 分钟才能阅读完成。

本篇内容介绍了“mysql 数据库有哪些文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.1. 
pid 文件

实例启动后,将自己唯一进程号记录到自己 pid 文件中,保存在数据目录下。

注意:在配置文件 my.cnf 中必须配置 pid-file=/data/mysql/mysql.pid,否则数据库启动报错。

查看进程,可看到文件路径。

[root@localhost mysql]# ps -ef |grep mysql

root  20196  1  0 14:15 pts/1  00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/data/mysql –pid-file=/data/mysql/mysql.pid

mysql  21556  20196  0 14:15 pts/1  00:00:06 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/data/mysql –plugin-dir=/usr/local/mysql/lib/plugin –user=mysql –log-error=/data/mysql/error.log –open-files-limit=65535
–pid-file=/data/mysql/mysql.pid
–socket=/tmp/mysql.sock –port=3306

1.2. 
Socket 文件

数据库两种链接方式,网络连接和本地连接

mysql.sock 文件是服务器与本地客户端进行通信的 unix 套接字文件,默认位置 /tmp/mysql.sock

1.3. 
表结构文件

mysql8.0 之前,以.frm 结尾的文件是表结构文件,从 8.0 开始,frm 表的定义文件被消除掉,数据都写到系统表空间,通过利用 InnoDB 引擎实现表的 DDL 语句操作原子性。此前版本无法实现表 DDL 语句操作的原子性,如 truncate 无法回滚。

问题:书中说 mysql 的 truncate 能回滚?查相关资料,没说能回滚的。

前面测试创建表的,在目录下可看到该表文件,

# ls t.*

t.frm  t.ibd

1.4. 
InnoDB 存储引擎文件

InnoDB 存储引擎层面主要分两种日志:redo log 和   undo log

InnoDB 多版本通过使用 undo 和回滚段实现

InnoDB 是索引组织表,每行记录都实现三个隐藏字段:


DB_ROW_ID


DB_TRX_ID:代表每行记录的事务 ID


DB_ROLL_PTR:代表每行记录的回滚指针。

InnoDB 有一个全局事务链表,每个事务的开始都会把事务 ID 放到链表中,DB_ROLL_PTR 指针指向 undo 记录,构造多版本。

redo log 用于记录事务操作变化,记录的是数据被修改之后的值。

undo 日志文件

undo 记录(insert,update,delete),只记录变更前的旧数据,默认记录到系统表空间 ibdata1,从 5.6 开始可以使用独立 undo 表空间,可以把 undo 文件部署到单独的高速存储上。

undo log 的主要参数

[mysql] show variables like %undo%

+————————–+————+

| Variable_name  | Value  |

+————————–+————+

| innodb_max_undo_log_size | 1073741824 |

| innodb_undo_directory  | ./  |

| innodb_undo_log_truncate | OFF  |

| innodb_undo_logs  | 128  |

| innodb_undo_tablespaces  | 0  |

+————————–+————+

 

innodb_undo_directory:undo 文件的存储目录;

 
innodb_undo_logs:undo 回滚段数量默认 128 个, 可将大回滚段拆分成多个小回滚段,每个 log segments 最多存 1024 个事务。

innodb_undo_tablespaces 代表 undo tablespace 的个数,默认 0 个;表空间有 undo log 文件,默认 10M。undo tablespace 数量最少 2 个,以备 truncate undo tablespace 切换。

innodb_max_undo_size,5.7 新增,默认 1G,达到阈值触发 truncate undo logs。truncate 后的 undo logs 大小默认恢复为 10M。可在线删除无用 undo log,但需开启 innodb_undo_log_truncate,默认关闭。

innodb_pure_rseg_truncate_frequency:5.7 新增,控制回收 undo log 的频率,默认 128. 表示 purge undo 轮询 128 次后,进行一次 undo 的 truncate 操作;但 undo log 空间在回滚段没有释放前不会收缩。

“mysql 数据库有哪些文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2230字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)