mariadb数据库文件的组成
一、日志文件
1、错误日志:(error log)
服务器相关的变量
log_error = /path/to/error_log_file
错误日志的存放位置
查看错误日志存位置
1
|
MariaDB [(none)]> show global variables like '%log_error%' \G
|
log_warnings={1|0}
是否记录警告信息于错误日志中,1表示记录,0表示不记录。
1
|
MariaDB [(none)]> show global variables like '%log_warnings%' \G
|
2、查询日志:query log
查询日志记录mariadb中所有的query,通过--log[=file_name]来打开该功能。由于记录了所有的query,包括所有的select,体积比较大,开启后对性能也有较大的影响,一般只用于跟踪某些特殊的sql性能问题才会短暂打开该功能,默认的查询日志文件名为hostname.log.
服务器相关的变量
log_output={table|file|none}
记录于那里,table与file是可以同时出现,使用分号隔开
general_log
是否启用查询日志,on表示开启,off表示关闭
general_log_file
定义一般查询日志保存的文件
3、慢查询日志:slow query log
顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slow query,通过设--log-slow-querues[=file_name]打开该功能并设置记录位置和文件名,默认文件名为hostname-slow.log,默认目录也是数据目录;其中记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息。
服务器相关的变量
long_query_time
多长时间算慢查(默认时间为秒)
1
2
|
#查看默认的慢查时限
MariaDB [(none)]> show global variables like 'long_query_time%' ;
|
slow_query_log:{on|off}
设定是否启用慢查日志;它的输出位置也取决于log_output={table|file|none};
定义日志文件路径及名称
1
|
MariaDB [(none)]> show global variables like '%slow_query%' ;
|
log_slow_rate_limit
速率
log_slow_verbosity
详细信息
log_slow_filter
那些日志过滤不记录慢查日志
1
2
|
MariaDB [(none)]> show global variables like 'log_slow%'
\G
|
4、binlog 日志
1
|
MariaDB [(none)]>show variables like '%log_bin%' ;
|
注:所有的布尔值(ON|OFF)都可以使用1或0来表示
1
|
MariaDB [(none)]>show binary logs;
|
Log_name:表示日志生成列名的名字
File_size:表示其每一个日志文件的大小
最后一条记录表示当前正在使用的binlog日志文件
或使用
1
|
# cat mariadb-bin.index
|
查看正在使用的日志
1
|
MariaDB [(none)]>show master status;
|
File: mariadb-bin.000003:当前记录的日志文件
Position: 312 :日志文件记录到那一个节点(位置)
Binlog_Do_DB: 为那些库记录日志(默认为所有数据库)
Binlog_Ignore_DB: 不为那些库记录日志
#mariadbbinlog ./文件目录(select 语句是不会记录于二进制文件)
--start-time
--start-position
--stop-time
--stop-position
1
|
# mariadbbinlog --start-datetime="2014-04-11 0:01:59" --stop-datetime="2014-04-11 1:22:12" mariadb-bin.000002
|
或在数据库中使用
1
|
MariaDB [(none)]>SHOW BINLOG EVENTS IN 'mariadb-bin.000002' from 4 limit 1,2\G
|
Log_name:此条log存在那个文件中。
Pos:log在bin-log中的开始位置
Event_type:log的类型信息
Server_id:可以查看配置中的server_id,表示log是那个服务器产生
End_log_pos:log在bin-log中的结束位置
Info:log的一些备注信息,可以直观的看出进行了什么操作(GTID)
1
2
|
MariaDB [(none)]>reset master;
MariaDB [(none)]>purge binary to 'mariadb-bin-1.0000000001'
|
1
2
|
MariaDB [(none)]> show global variables like '%expire%' ;
MariaDB [(none)]> set global expire_logs_days=5;
|
binlog的格式
1
2
3
4
5
6
7
8
9
|
#查看默认的日志格式
MariaDB [(none)]>show variables like '%format%' ;
#可以有三种格式(binlog_format):STATEMENT,ROW,MIXED
MariaDB [(none)]> SET SESSION binlog_farmat= 'statement'
#设置当前会话级别的基于语句(statement)
MariaDB [(none)]> set SESSION format= 'ROW'
#设置当前会话级别的基于行(不确定的函数)(row )
MariaDB [(none)]> SET SESSION bin_format= 'mixed'
#设置当前会话级别的混合模式(前两者结合)(MIXED)
|
服务器相关的日志变量
max_binlog_size
binlog的最大存储上限;当日志达到该上限时,mariadb会重新创建一个日志开始继续记录。不过偶尔也有超出该设置的binlog产生,一般都是因为在即将达到上限时,产生了一个较大的事务,为了保证事务安全,mariadb不会将同一个事务分开记录到两个binlog中。
sync_binlog=0
表示不靠时间同步,仅在事务在提交时同步,依赖于autocommit
log_bin:{on|off}
还可以是指定文件路径,重启后生效
sql_log_bin:{on|off}
1
|
MariaDB [(none)]>setsession sql_log_bin=0;
|
如果设置了OFF则表示关闭记录日志功能。(仅当前会话有效)
max_binlog_cache_size:
二进制日志缓冲空间大小。仅用于缓冲事件务类一语句(单位字节)
滚动日志
- 大小
- 指定时间
- 重启或flush logs后会自动回滚
binary日志文件内容的格式
事件发生的日期和时间
服务器ID
事件的结束位置
事件的类型
原服务器生成的此事件时的线程
语句时间戳和写入二进制文件的时间差
错误代码
事件内容
事件位置,相当于下个事件的开始位置
Innodb是一个事务安全的存储引擎,其事务安全性主要就是通过在线redo日志和记录在表空间中的undo信息来保证的,redo日志记录了Innodb所做的所有物理变更和事务信息,通过redo日志和undo信息,Innodb保证了在任何情况下的事务安全性。Innodb的redo日志同样默认存放在数据目录下
更改设置日志的存放位置
innodb_log_group_home_dir
1
2
|
#查看默认日志存放位置
MariaDB [(none)]> show variables like '%innodb_log_group_home_dir%' ;
|
设置日志的数量
innodb_log_files_in_group
1
2
|
#查看innodb_log_file默认分组
MariaDB [(none)]> show variables like '%innodb_log_files_in_group%' ;
|
二、数据文件
1、数据文件
这两种文件都是存放在Innodb数据的文件,之所以有两种文件来存放Innodb的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据,独享表空间存储方式使用 .ibd文件来存放数据,且每个表一个.ibd文件,文件存放在和myISAM数据相同的位置,如果选用共享存储表空间来存储数据,则会使用ibdata文件来存放,所有表共同使用一个(或者多个,可自行分配)ibdata文件,ibdata文件可以通过innodb_data_home_dir和innodb_data_file_path 两个参数共同配置组成,innodb_data_host_dir配置数据存放的放的总目录,而innodb_data_file_path配置每一个文件的名称,当然,也可以不配置innod-data_home_dir而直接在innodb_data_file_path参数配置的时使用绝对路径来完成配置。innodb_data_file_path 中可以一次配置多个 ibdata 文件。文件可以是指定大小,也可以是自动扩展的,但是 Innodb 限制了仅仅只有最后一个 ibdata 文件能够配置成自动扩展类型。当我们需要添加新的 ibdata 文件的时候,只能添加在 innodb_data_file_path配置的最后,而且必须重启 mariadb 才能完成 ibdata 的添加工作。不过如果我们使用独享表空间存储方式的话,就不会有这样的问题,但是如果要使用裸设备的话,每个表一个裸设备,可能造成裸设备数量非常大,而且不太容易控制大小,实现比较困难,而共享表空间却不会有这个问题,容易控制裸设备数量。
表空间:由Innodb管理的特有格式数据文件,内部可同时存储数据和索引,每个表数据库目录下存储两个文件
tb_name.ibd:独享表空间存储方式使用 .ibd文件来存放数据,且每个表一个.ibd文件
设置独立表空间
innodb_file_per_table=ON
1
2
|
#查看默认表空间类型
MariaDB [(none)]> show variables like '%innodb_file_per_table%' ;
|
设置共享表空间
innodb_file_per_table=OFF
每张表都会有一个独有格式定义文件:tb_name.frm,还有一个默认位于数据目录下共享的表空间文件:ibddata#(#代表数字)
2、Replication 相关文件
relay_log文件用于存放Slave端I/O线程从Master端所读到的binary log信息,然后由Slave端SQL线程从该realy log中读取并解析相应的日志信息,转化成Master所执行的sql语句,然后在Slave端应用。
relay_log_index
文件的功能类似于mysql-bin.index同样是记录存放位置的绝对路径,只不过他所记录的不是Binary log,而是relay_log.
=================完=========================
mariadb数据库文件的组成相关推荐
- 如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV
文章目录 本教程将详细讲解 1. MySQL / MariaDB 数据库数据「导出」 2. MySQL / MariaDB 数据库数据「导入」 3. 使用「卡拉云」一键导入导出 MySQL / Mar ...
- MySQL/MariaDB数据库主从复制
MySQL数据库复制概述 MySQL的主从复制是指从服务器向主服务器获取二进制日志文件,然后在从服务器上对这些日志重新执行,从而使从服务器和主服务器保持同步.但由于是异步的复制,从服务器在一定程度上落 ...
- window下利用navicat访问Linux下的mariadb数据库
1.再Linux上成功安装mariadb数据库后,不管是在dos(敲命令mysql -h192.168.136.8 -uroot -p)下或者是navicat(创建连接)下连接mariadb数据库,会 ...
- Windows下MariaDB数据库安装图文教程
MariaDB是基于MySQL的开源数据库,兼容MySQL,现有的MySQL数据库可以迁移到MariaDB中使用 说明: MariaDB是基于MySQL的开源数据库,兼容MySQL,现有的MySQL数 ...
- mysql下载备份数据库命令行,如何从MariaDB数据库备份和还原命令行
在本教程中,我将向你展示如何使用mysqldump程序备份和恢复MariaDB数据库. mysqldump mysqldump是我们用来备份MariaDB数据库的工具,它专门为备份而设计的,可用于备份 ...
- MariaDB数据库日志
在日常生产中,各种服务应用的日志的主要作用就是记录服务的运行状态.启动记录等信息,但数据库的日志对于数据库而言是很重要的.数据库日志分为:事务.中继.错误.通用.慢查询和二进制日志,其中每种日志都 ...
- MariaDb数据库管理系统的学习(一)安装示意图
MariaDB数据库管理系统是MySQL的一个分支.主要由开源社区在维护,採用GPL授权许可.开发这个分支的原因之中的一个是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区採用分 ...
- MariaDB 数据库索引详解(9)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- 树莓派无法安装mariadb_RaspberryPi(树莓派)安装 MariaDB 数据库没有办法远程访问...
在 RaspberryPi(树莓派) 上安装 MariaDB 或者 MySQL 数据库的时候. 设置的用户没有办法通过网络远程登录. 首先确定的是,用户已经设置了访问权限. 提示的错误信息是: ER ...
最新文章
- linux shell 变量减法_第四章 shell和环境变量
- Tensorflow【实战Google深度学习框架】预训练与微调含代码(看不懂你来打我)
- JavaScript 开发的40个经典技巧
- 高清网络摄像机主流芯片方案之安霸、TI和海思对比
- 永磁直驱风力发电机结构图_国内首台10MW海上永磁直驱风力发电机研制成功
- angularjs input标签用一个日期插件后数据不能双向绑定了_微信如何定时发朋友圈?(最方便最好用的办法!)...
- 从0开始架构一个IOS程序 ——04— UITabBarController和自定义TabBar 搭建主页面
- java安装好了打不开机_门套安装是45度拼接还是直角好?当初不懂行,没有半年就重装!...
- [转]【建议收藏】优秀实用的OpenCV开源项目汇总
- Ext3.4--布局
- 用了Python这么久,你连这个都没试过?
- ELK详解(二十)——Elasticsearch索引管理
- 关于打印机共享和连接问题
- 四色定理(DFS深搜)
- 操作系统实验(八):文件管理
- 威纶通触摸屏MODBUS_RTU远程IO
- 任天堂战略聚焦与取舍学习笔记
- 2015 SACC – 再谈后 IOE 时代的 Oracle 架构创新
- phpstudy下载安装简明教程+软件下载(图文)
- 分子骨架跃迁工具-DeLinker介绍
热门文章
- 樊登读书分享ppt_樊登读书精华分享-《分手后,成为更好的自己》
- php微信商户下载对账单,浅析微信支付:下载对账单和资金账单
- beaninfo详解源码解析 java_【Spring源码分析】Bean加载流程概览
- 学python要有多少英语词汇量测试_非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!...
- python django下载_简单了解django文件下载方式
- eureka管理界面是多少_Eureka注册中心
- 有权限的网页能分享内页?_有哪些舍不得分享的办公软件?
- artcore html5,值得收藏的25款免费响应式网页模板_CSS_网页制作
- 非常详细GC学习笔记
- 【BZOJ2120】数颜色,带修莫队