MySQL 日志 复制数据库 InnoDB表空间模式 mysql默认数据库
MySQL 日志 复制数据库 InnoDB表空间模式 mysql默认数据库
分类
-
错误日志
不仅记录error信息,还记录warning信息和修正信息
遇到问题时DBA应该首先查看的日志
show variables like ‘log_error’;
-
全查询日志(查询日志)
记录了所有对数据库的请求,无论它们是否得到了正确的执行
-
慢查询日志
记录超过 预先设定的响应时间阈值 --- long_query_time 的语句
-
二进制日志
记录了所有变更数据库的操作,以及它们的操作时间等
(变更操作不包含select、show等)
-
中继日志
中继日志是从主服务器的二进制日志文件复制而来,存放在从服务器的二进制日志文件。用于恢复slave库(备份库)
主从结构的主服务器不可能出现中继日志
-
事务日志
记录InnoDB等支持事务的存储引擎执行事务时产生的日志
复制数据路的基本步骤
- 将主数据库的更改记录到二进制日志binlog中(经过redolog,默认InnoDB)
- 备份库将主库的二进制日志文件复制为自己的中继日志
- 备份库读取中继日志,将其中的记录“重放”到备份库上
InnoDB两种表空间模式
类似于linux的一切皆文件的思想,表空间模式就是指InnoDB引擎存储存储表和索引的方式
-
共享表空间:
这种模式的表结构存储在.frm文件中
InnoDB的所有数据和索引保存在一个单独的表空间中
这个表空间由多个文件组成,而且一张表可以跨多个文件
-
独立表空间(多表空间):
这种模式的表空间也保存在.frm文件中,但每个表的数据和索引单独保存在.ibd文件中,如果是分区表,可以在创建分区的时候指定分区数据文件的位置,以此均匀分布I\O
两者不是二选一的关系,即使在独立表空间的存储方式下,共享表空间仍然是必须的,InnoDB会把内部数据字典、在线重做日志、Undo信息、插入缓冲索引页、二次写缓存(Double write buffer)等内容写入到共享表空间中
mysql默认数据库
-
mysql
核心数据库,不可被删除
存放数据库用户、权限设置、mysql自己的控制和管理信息
-
information_schema
信息数据库
保存着mysql维护其他数据库需要的相关信息
(在物理上不存在相关的目录和文件)
-
performance_schema
性能数据信息库(自己给的名字),用于收集数据库服务器性能数据
-
sys
结合了information_schema和performance_schema的相关数据,还包含了有关存储过程、视图的相关数据来帮助DBA了解系统元数据
部分使用方式可见这里