MySQL DBA Team 李春  http://www.hatemysql.com MySQL 管理基础
B2B DBA  全家福
内容概要 <ul><li>MySQL Overview </li></ul><ul><li>MySQL Replication </li></ul><ul><li>MySQL HA </li></ul>
MySQL   结构层次
<ul><li>MySQL 提供一个抽象层,允许不同的存储引擎使用相同的 API 对表进行访问 </li></ul><ul><li>该接口通过一个被称为 Handler 的抽象类来实现 </li></ul><ul><li>该处理器提供了一些可实...
MySQL 主要存储引擎 <ul><li>NDB ( 集群引擎 ) </li></ul><ul><li>Archive ( 归档引擎 ) </li></ul><ul><li>Memory ( 内存引擎 ) </li></ul><ul><li>M...
<ul><li>MyISAM  :表级锁,不支持事务 </li></ul><ul><li>Innodb :行级锁,支持事务, 高并发 </li></ul><ul><li>默认采用 Innodb ,处理高并发情况下的数据访问 </li></ul>...
InnoDB   索引结构
InnoDB vs MyISAM on Index
InnoDB 物理文件组成
InnoDB 物理文件组成 <ul><li>InnoDB 的数据文件包括:  innodb_file_per_table </li></ul><ul><li>.frm 表结构文件 </li></ul><ul><li>.ibd 表数据文件(数据目...
<ul><li>INSERT BUFFER </li></ul><ul><li>Innodb 使用 insert buffer 作为缓存: </li></ul><ul><li>它并不马上更新索引的叶子页, </li></ul><ul><li>而...
<ul><li>DOUBLE WRITE </li></ul><ul><li>InnoDB 在将数据写到数据文件的时候, </li></ul><ul><li>会出现只写了一半但由于某种原因剩下的数据没有写到 innodb file 上 </li...
<ul><li>ADAPTIVE HASH INDEX </li></ul><ul><li>InnoDB 存储引擎会监控对表上索引的查找, </li></ul><ul><li>如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引, </li...
Adaptive Hash Index
内容概要 <ul><li>MySQL Overview </li></ul><ul><li>MySQL Replication </li></ul><ul><li>MySQL HA </li></ul>
<ul><li>提供实时热备,保证高可用性 </li></ul><ul><li>MySQL 的所有高可用架构都是基于复制的, Replication 是高可用的核心和基础 </li></ul>DBA 的使命: 提供高可用,可扩展,高性能的数据存...
<ul><li>将在 A 机器上 执行的所有 SQL 序列 在 B 上原样重复执行一遍 </li></ul><ul><li>在 MySQL 中称之为 :  statement </li></ul><ul><li>binlog-format=st...
<ul><li>rand() 函数 </li></ul><ul><li>uuid() 函数 </li></ul><ul><li>自增 </li></ul><ul><li>...... </li></ul>statement 方式的问题
<ul><li>将在 A 机器上 数据行的变化 在 B 上原样做一遍 </li></ul><ul><li>在 MySQL 中称之为 :  row </li></ul><ul><li>binlog-format=row </li></ul><ul...
<ul><li>mysqlbinlog -vv </li></ul>mysqlbinlog
<ul><li>binlog 文件大小的问题 </li></ul><ul><li>如: update a set c1=100 where id <1000000; </li></ul>row 方式的问题
<ul><li>Statement 和 row 方式的组合 </li></ul><ul><li>在 MySQL 中称之为 : mixed </li></ul><ul><li>binlog-format=mixed </li></ul><ul><...
<ul><li>第二种方式:  binlog-format=row </li></ul><ul><li>理由: </li></ul><ul><li>statement 可能造成主备不一致 </li></ul><ul><li>一次更新很多行的情况...
MySQL 复制基本原理
<ul><li>MySQL Replication 的基本原理是通过 binlog 复制应用的方式来还原数据 </li></ul><ul><li>MySQL 通过 server_id 来识别产生 binlog 的主机,因此即使双 Master ...
<ul><li>复制线程分为 Slave IO 和 Slave SQL : Slave IO 线程只负责注册到 Master 上,读取 binlog ,然后解析到本地, Slave SQL 线程只负责把 Slave IO 线程产生的可执行 SQ...
双向复制
级联复制
双向 + 级联复制
<ul><li>环形复制架构 </li></ul><ul><li>1 Master + n slave  读写分离架构(百度) </li></ul>其他复制架构
内容概要 <ul><li>MySQL Overview </li></ul><ul><li>MySQL Replication </li></ul><ul><li>MySQL HA </li></ul>
<ul><li>HA ( High Availability )作用 </li></ul><ul><li>提供高可用方案 </li></ul><ul><li>HA 的需求 </li></ul><ul><li>提供透明的数据库访问,即使 MySQ...
Heartbeat 1
Heartbeat 2
<ul><ul><li>优点 </li></ul></ul><ul><ul><li>开源,发展迅速,目前为 3.0 版本 </li></ul></ul><ul><ul><li>双 master 结构, VIP 漂移 </li></ul></ul...
Cobar 1.0
<ul><ul><li>优点 </li></ul></ul><ul><ul><li>  平台部门开发 </li></ul></ul><ul><ul><li>支持分库 </li></ul></ul><ul><ul><li>  连接池管理 </li...
Cobar 1.1
<ul><ul><li>优点 </li></ul></ul><ul><ul><li>  连接池管理 </li></ul></ul><ul><ul><li>  MySQL 协议 </li></ul></ul><ul><ul><li>  没有 co...
Offer 集群架构解析
Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Physical node ...
推荐书目
Q&A
Upcoming SlideShare
Loading in …5
×

My sql管理基础 李春_v2

1,247 views

Published on

mysql overview
mysql replication
mysql HA

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,247
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
11
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • 1
  • 2
  • 3
  • 4 插件式架构,各种不同的存储引擎,存储引擎可以自己编写 Why innodb
  • 5
  • 7
  • 8
  • 9 Innodb 行级锁 支持事务
  • 10
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20 Mysqlbinlog 小技巧
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39 替换 heartbeat Cobar 1.2 集合 cobar 1.0 和 cobar 1.1
  • 40
  • 42
  • 43
  • My sql管理基础 李春_v2

    1. 1. MySQL DBA Team 李春 http://www.hatemysql.com MySQL 管理基础
    2. 2. B2B DBA 全家福
    3. 3. 内容概要 <ul><li>MySQL Overview </li></ul><ul><li>MySQL Replication </li></ul><ul><li>MySQL HA </li></ul>
    4. 4. MySQL 结构层次
    5. 5. <ul><li>MySQL 提供一个抽象层,允许不同的存储引擎使用相同的 API 对表进行访问 </li></ul><ul><li>该接口通过一个被称为 Handler 的抽象类来实现 </li></ul><ul><li>该处理器提供了一些可实现基本操作的方法,如: </li></ul><ul><li>打开和关闭表、连续扫描记录、按键值检索记录、存储记录以及删除记录 等 </li></ul><ul><li>每个存储引擎都执行处理器的一个子类以实现接口方法,以便将处理器操作转化为特定存储引擎的此层次存储 / 检索 API 调用 </li></ul>存储引擎机制
    6. 6. MySQL 主要存储引擎 <ul><li>NDB ( 集群引擎 ) </li></ul><ul><li>Archive ( 归档引擎 ) </li></ul><ul><li>Memory ( 内存引擎 ) </li></ul><ul><li>MyISAM ( 非事务引擎 ) </li></ul><ul><li>InnoDB ( 事务引擎 ) </li></ul>性能不符合要求 仅支持 SELECT 、 INSERT 操作 数据保存在内存中 √ √
    7. 7. <ul><li>MyISAM :表级锁,不支持事务 </li></ul><ul><li>Innodb :行级锁,支持事务, 高并发 </li></ul><ul><li>默认采用 Innodb ,处理高并发情况下的数据访问 </li></ul><ul><li>MyISAM 用于历史表,基本上没有更新的,不涉及业务 </li></ul>MySQL 存储引擎选择
    8. 8. InnoDB 索引结构
    9. 9. InnoDB vs MyISAM on Index
    10. 10. InnoDB 物理文件组成
    11. 11. InnoDB 物理文件组成 <ul><li>InnoDB 的数据文件包括: innodb_file_per_table </li></ul><ul><li>.frm 表结构文件 </li></ul><ul><li>.ibd 表数据文件(数据目录) </li></ul><ul><li>系统元数据和 undo space (共享表空间) </li></ul><ul><li>ib_logfile* 重做日志文件 ( Oracle 的 Redo Log ) </li></ul>
    12. 12. <ul><li>INSERT BUFFER </li></ul><ul><li>Innodb 使用 insert buffer 作为缓存: </li></ul><ul><li>它并不马上更新索引的叶子页, </li></ul><ul><li>而是把若干对同一页面的更新缓存起来, </li></ul><ul><li>一次性更新, </li></ul><ul><li>从而有效节约 I/O </li></ul>InnoDB 优化设计
    13. 13. <ul><li>DOUBLE WRITE </li></ul><ul><li>InnoDB 在将数据写到数据文件的时候, </li></ul><ul><li>会出现只写了一半但由于某种原因剩下的数据没有写到 innodb file 上 </li></ul><ul><li>如果 double write buffer 写成功的话, </li></ul><ul><li>但是写磁盘失败, </li></ul><ul><li>innodb 就不用通过事务日志来计算了, </li></ul><ul><li>而是直接用 buffer 的数据再写一遍 </li></ul>InnoDB 优化设计
    14. 14. <ul><li>ADAPTIVE HASH INDEX </li></ul><ul><li>InnoDB 存储引擎会监控对表上索引的查找, </li></ul><ul><li>如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引, </li></ul><ul><li>所以称之为自适应( adaptive )哈希索引 </li></ul>InnoDB 优化设计
    15. 15. Adaptive Hash Index
    16. 16. 内容概要 <ul><li>MySQL Overview </li></ul><ul><li>MySQL Replication </li></ul><ul><li>MySQL HA </li></ul>
    17. 17. <ul><li>提供实时热备,保证高可用性 </li></ul><ul><li>MySQL 的所有高可用架构都是基于复制的, Replication 是高可用的核心和基础 </li></ul>DBA 的使命: 提供高可用,可扩展,高性能的数据存储服务 Replication 作用
    18. 18. <ul><li>将在 A 机器上 执行的所有 SQL 序列 在 B 上原样重复执行一遍 </li></ul><ul><li>在 MySQL 中称之为 : statement </li></ul><ul><li>binlog-format=statement </li></ul><ul><li>mysqlbinlog 工具 </li></ul><ul><ul><li>mysqlbinlog binlog 文件名 </li></ul></ul>实现方式 1
    19. 19. <ul><li>rand() 函数 </li></ul><ul><li>uuid() 函数 </li></ul><ul><li>自增 </li></ul><ul><li>...... </li></ul>statement 方式的问题
    20. 20. <ul><li>将在 A 机器上 数据行的变化 在 B 上原样做一遍 </li></ul><ul><li>在 MySQL 中称之为 : row </li></ul><ul><li>binlog-format=row </li></ul><ul><li>mysqlbinlog 工具 </li></ul><ul><li>mysqlbinlog binlog 文件名 </li></ul>实现方式 2
    21. 21. <ul><li>mysqlbinlog -vv </li></ul>mysqlbinlog
    22. 22. <ul><li>binlog 文件大小的问题 </li></ul><ul><li>如: update a set c1=100 where id <1000000; </li></ul>row 方式的问题
    23. 23. <ul><li>Statement 和 row 方式的组合 </li></ul><ul><li>在 MySQL 中称之为 : mixed </li></ul><ul><li>binlog-format=mixed </li></ul><ul><li>mysqlbinlog 工具 </li></ul><ul><li>mysqlbinlog binlog 文件名 </li></ul>实现方式 3
    24. 24. <ul><li>第二种方式: binlog-format=row </li></ul><ul><li>理由: </li></ul><ul><li>statement 可能造成主备不一致 </li></ul><ul><li>一次更新很多行的情况在网站的数据库上应用很少 erosa 解析日志需要 row 方式 </li></ul>线上数据库选择
    25. 25. MySQL 复制基本原理
    26. 26. <ul><li>MySQL Replication 的基本原理是通过 binlog 复制应用的方式来还原数据 </li></ul><ul><li>MySQL 通过 server_id 来识别产生 binlog 的主机,因此即使双 Master 复制,也不会出现 binlog 被重复应用 </li></ul>MySQL 复制基本原理
    27. 27. <ul><li>复制线程分为 Slave IO 和 Slave SQL : Slave IO 线程只负责注册到 Master 上,读取 binlog ,然后解析到本地, Slave SQL 线程只负责把 Slave IO 线程产生的可执行 SQL 应用到本地 </li></ul><ul><li>避免主键冲突, MySQL 提供了 auto_increment_increment 和 auto_increment_offset 来控制主键生成的序列,只要双 Master 的两台主机没有相同的序列,就绝对不可能复制冲突 </li></ul>MySQL 复制基本原理
    28. 28. 双向复制
    29. 29. 级联复制
    30. 30. 双向 + 级联复制
    31. 31. <ul><li>环形复制架构 </li></ul><ul><li>1 Master + n slave 读写分离架构(百度) </li></ul>其他复制架构
    32. 32. 内容概要 <ul><li>MySQL Overview </li></ul><ul><li>MySQL Replication </li></ul><ul><li>MySQL HA </li></ul>
    33. 33. <ul><li>HA ( High Availability )作用 </li></ul><ul><li>提供高可用方案 </li></ul><ul><li>HA 的需求 </li></ul><ul><li>提供透明的数据库访问,即使 MySQL 主机宕机 </li></ul><ul><li>实现方式: </li></ul><ul><li>Heartbeat </li></ul><ul><li>Cobar </li></ul>为什么需要 HA
    34. 34. Heartbeat 1
    35. 35. Heartbeat 2
    36. 36. <ul><ul><li>优点 </li></ul></ul><ul><ul><li>开源,发展迅速,目前为 3.0 版本 </li></ul></ul><ul><ul><li>双 master 结构, VIP 漂移 </li></ul></ul><ul><ul><li>缺点 </li></ul></ul><ul><ul><li>脑裂问题 </li></ul></ul><ul><ul><li>不支持分库 </li></ul></ul><ul><ul><li>VIP 漂移应用需要重连数据库 </li></ul></ul>Heartbeat 优劣势分析
    37. 37. Cobar 1.0
    38. 38. <ul><ul><li>优点 </li></ul></ul><ul><ul><li> 平台部门开发 </li></ul></ul><ul><ul><li>支持分库 </li></ul></ul><ul><ul><li> 连接池管理 </li></ul></ul><ul><ul><li> JDBC 协议 </li></ul></ul><ul><ul><li>缺点 </li></ul></ul><ul><ul><li>所有 SQL 都需要带上分库键的 where 条件 </li></ul></ul><ul><ul><li> cobar 内存限制 </li></ul></ul><ul><ul><li>各 cobar 服务器之间没有通讯 </li></ul></ul>Cobar 1.0 优劣势分析
    39. 39. Cobar 1.1
    40. 40. <ul><ul><li>优点 </li></ul></ul><ul><ul><li> 连接池管理 </li></ul></ul><ul><ul><li> MySQL 协议 </li></ul></ul><ul><ul><li> 没有 cobar 内存限制 </li></ul></ul><ul><ul><li>缺点 </li></ul></ul><ul><ul><li>不支持分库 </li></ul></ul><ul><ul><li> 推出时间不长,未进入稳定期 </li></ul></ul>Cobar 1.1 优劣势分析
    41. 41. Offer 集群架构解析
    42. 42. Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Physical node Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Physical node Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Physical node Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Physical node Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Physical node Physical node Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition Virtual partition 数据切分策略 -- Virtual Partition Hash
    43. 43. 推荐书目
    44. 44. Q&A

    ×