[转帖] MySQL复制(一)剖析二进制日志的工作原理_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2037 | 回复: 0   主题: [转帖] MySQL复制(一)剖析二进制日志的工作原理        下一篇 
Conotolitle
注册用户
等级:新兵
经验:66
发帖:9
精华:0
注册:2013-11-12
状态:离线
发送短消息息给Conotolitle 加好友    发送短消息息给Conotolitle 发消息
发表于: IP:您无权察看 2014-12-31 16:31:08 | [全部帖] [楼主帖] 楼主   主页

     与小站点相比,大型站点的数据库管理员,需要提前做好以下的事情:

  提供灾难发生时核心业务数据的恢复计划。理论上这个过程至少需要执行一次。

  通过采集大量用户数据并监控网站各节点的负载,提供优化计划

  当用户数量急剧增长时的快速横向扩展计划

  对于所有这些事情,提前计划并准备好必要时的快速应对是很重要的。

  为了保证站点可响应和可用性,需要做两件事:系统的数据备份和冗余。备份可以将节点恢复到它崩溃之前的状态,备份根据需求有几种比如及时恢复(PITR:point-in-time-recovery),在线备份等等;而冗余则保证即使在一个或更多节点停止服务的情况下,站点仍能继续运行,备份一般通过硬件副本来实现,让几个实例并行运行,并通过复制在几个机器上保存相同数据的多个可用副本。复制的主要应用场景:1)针对高读写比的,scale out;2)添加冗余保证高可用性,比如双主配置(dual-master setup)。

  二进制日志(binlog)

  复制过程需要二进制日志。二进制日志的目的是记录数据库中表的更改,然后用于复制和PITR,另外少数审计情况下也会用到。

  传统意义上说,MySQL复制记录了产生变化的SQL语句,称为基于语句的复制(statement-based replication)。基于语句的复制的缺点是无法保证所有语句都正确复制。所以在5.1版本中,MySQL还提供了基于行的复制(row-based replication)。

  查看二进制日志:

# 强制把缓存的东西刷到LOGS中,并产生一个Rotate事件写入binlog中,后面的写入会写到新的binlog中FLUSH LOGS;# 正常使用很久的DB不建议使用这个命令,需要加参数,指定具体的binlog文件名 【IN 'xxxx'】SHOW BINLOG EVENTSG

  二进制日志中事件所包含的字段:

Event_type: 比如Format_desc, Query, RotateServer_id : 创建事件的服务器idLog_name : 存储事件的文件名,一个事件只能存储在一个文件中Pos : 事件在文件中的开始位置,及事件的第一个字节End_log_pos:事件在文件中的结束位置,也就是下一个事件的开始位置Info : 具体事件的信息,Query的时候就是SQL语句

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论