文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

组成MYSQL数据库物理文件有哪几部分

2024-04-02 19:55

关注

下面一起来了解下组成MYSQL数据库物理文件有哪几部分,相信大家看完肯定会受益匪浅,文字在精不在多,希望组成MYSQL数据库物理文件有哪几部分这篇短内容是你想要的。

物理文件组成

日志文件:错误日志,查询日志,慢查询日志,事务日志,二进制日志

日志是 mysql 数据库的觉要组成部分。日志文件中记录珩 mysql 数据库运行期间发生的变化,也就是说用来记录 mysql 数据库的客户端连接状况、 SQL 语句的执行情况和错误信息

1.错误日志(error log)

错误日志功能默认是开启的,存储在mysql数据库的数据目录中。

错误日志文件通常名称为hostname.err    hostname表示云服务器主机名

错误日志信息也可以自己进行配置,通过log-error和log-warnings,前者是定义存储位置后者是定义是否将警告信息也定义到错误日志中

注意,当首次安装mysql5.7时初始密码会保存在错误日志中

2.二进制文件(binlog)

用于记录修改数据或有可能引起数据改变的mysql语句,井且记录语句发生时间执行时长,操作的数据等

可以通过    show global variables like '%log_bin%';    进行查询

在主配置文件中加入     log-bin=file_name    打开记录功能,

MYSQL会将所有修改数据库数据的query以二进制形式记录到日志文件中,日志文件中还包括每一条query所执行的时间,所消耗的资源,以及相关的事务信息

binlog的附加选项参数

“max_binlog_size”    设置binlog的最大存储上限,一般设置为512M或1G,不可以超过1G当日志达到上限时mysql会重新创建一个日志并继续开始记录

binlog-do-db=db_name”    对某个db_name(数据库)记录binlog,

如果有了"binlog-do -db=db_name"参数的显式指定,MySQL会忽略针对其他数据库执行的query, 而仅仅记录针对指定数据库执行的query

"binlog-ignore-db=db_name"与"binlog-do-db=db_name"完全相反,它显式指定忽略某个(db_name)数据库的binlog记录, 当指定了这个参数之后, MySQL会记录指定数据库以外所有的数据库的binlog。

启动binlog记录后,mysql数据库目录下还会生成一个mysql-bin.index文件

主要功能是记录所有Binary Log 的绝对路径, 保证MySQL各种线程能够顺利的根据它找到所有需要的Binary Log文件

MYSQL复制主要有三种方式:

基于SQL语句的复制(statement-based replication, SBR),

基于行的复制(row-based replication, RBR), 

混合模式复制(mixed-based replication, MBR)

对应的,binlog的格式也有三种: STATEMENT, ROW, MIXED。

statenment模式(SBR)

每一条会修改数据的sql语句会记录到binlog中,优点是不需要记录每一行的数据变化

减少了binlog日志量,节约IO,提高性能,缺点是在某些情况下master-slave中的数据不一致

row模式(RBR)

不记录每条SQL语句的信息,仅记录那条数据被修改了,改成什么样子,缺点是会产生大量日志,日志暴涨

mixed模式(MBR)

混合模式,以上两种模式混合使用,一般的复制使用statement模式保存binlog,对于statement模式无法复制的操作使用row模式保存binlog,mysql会自行判断何时使用

“sync_binlog=10”    设定多久同步一次二进制日志到磁盘文件中 0表示不同步,1表示每条语句都同步

几种查询二进制日志信息的方法

show binlog events\G;     查看所有二进制信息

show bin log events in'mysql-bin.000001'\G;     查看指定的二进制信息

show binlog events in 'mysql-bin.000001'from 727;     从指定的事件位置开始

mysqlbinlog    mysql-bin.00001    在命令行下查看

几种删除二进制日志信息的方法

purge binary logs to 'mysql-bin.000006';    删除'mysql-bin.000006'之前的二进制文件

reset master    删除所有二进制文件并重新生成一个为进制文件

3.事务日志

事务日志 (InnoDB 特有的日志)可以帮助提高事务的效率。

使用事务日志, 存储引擎在修改表的数据时只需要修改其内存拷贝,再把修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁盘。事务日志采用追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O, 而不像随机I/O需要在磁盘的多个地方移动磁头, 所以采用事务日志的方式相对来说要快得多。

事务日志持久以后,内存中被修改的数据在后台可以慢慢的刷回到磁盘。 

4.慢查询日志

慢查询日志中记录的是执行时间较长的query,采用简单的文本格式记录方便查看

通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化 

同样也是在主配置中加入

“slow_query_log=1”开启,

“slow_query_log_file=/usr/local/mysql/data/mysqld-slow.log”存储位置

  "long_query_time=1"    需要记录的时间,

或者直接在数据库中直接定义。

分析日志

进入慢查询日志存放目录使用mysqldumpslow分析    

“mysqldumpslow     mysqld-slow.log”

看完组成MYSQL数据库物理文件有哪几部分这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的数据库栏目。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯