1号店数据库架构
介绍内容













1号店数据库架构
Oracle集群与MySQL集群HA
Oracle DGHA的特性
Oracle DGHA:典型切换场景
Oracle DGHA:故障转移过程
Oracle DGHA:Failover机制
MySQL MHA是什么?
MySQL 为什么使用MHA?
MySQL MHA:典型的场景
MySQL MHA : 切换过程
MySQL MHA : Failover机制
HBase 架构
1号店数据库架构
Oracle集群与MySQL集群HA
• Oracle HA : DGHA
--Prod
--User
--Edm
--WMS
• MySQL HA : MHA
--Gss
--团购
--Mobile
--订单状态
--评论
--第三方订单
--1mall
--frontweb
DGHA是什么?
• DGHA:此脚本针对oracle dataguard
设计,使用共享存储存放redo,spfile
以及controlfile从而达到了切换数据
零丢失。
• 目的: 自动管理主库备库切换以便最
少化当机时间

• 由一个的Perl主脚本和几个shell脚
本组成
• 可采用集中管理模式,可以管理多套
数据库集群。
• 原有主备库不需要安装额外的软件模
块
现有的DATAGUARD HA方案
• DataGuard Broker
--只能failover到某个指定实例
--是oracle官方方案

• 共享存储模式
--需要共享一份数据,需要存储
--不好利用PCIE等高性能IO设备
• Dataguard模式
--简单、不需要存储
--可能有数据丢失,可能会破坏整个集群
• 共享redo/controlfile/spfile模式
--需要小的存储
--数据零丢失,不会破坏集群
DGHA的特性
• 主服务器的自动监控和故障转移
• 切换数据零丢失

• Power off功能,避免脑裂
• 详细的日志输出

• 短信和邮件报警功能
DGHA:典型切换场景
• 监控整个集群:定期check主库
• 如果检测到primary故障,启动切换
• 检查备库是否达到要求
• 关闭主库,断电

• 用主库的redo等替换备库的,recover备库,然后打开
• 发送Email failover 报告, 停止监控
DGHA:故障转移过程
Update check

DGHA Monitor

DGHA Monitor

Primary

Standby

Read write

Primary

Primary

Read only
挂载成sharedB

Read only

sharedA

Read write
挂载成sharedA

sharedB

A 主备库为DG,redo,spfile和control文件存
放于共享存储,存储对主备服务器都可见
B 更新主库心跳表,判断主库是否可用

Read only
挂载成sharedB

sharedA

Read write
挂载成sharedA

sharedB
A 关闭原主库实例,Power off原主库服务器
B 备份原备库的online redo和control文件;拷
贝原主库的online redo和control file
C 备库应用原主库online redo恢复,保证数据
零丢失
D 将备库切换到主库,其他备库同步新的主库
DGHA:Failover机制
• 一般情况下完成整个过程需3-5分钟
• check频率一般设置为10秒

• 检测主库一般为1分钟:3次check+连接超时+ssh超时
• 主库关闭+备库检测+power off 一般为1-2分钟

• 备库关闭+恢复+打开一般为1-2分钟
DGHA:Failover机制
主库检测频率
主库连续3次,每次间隔一定时间(比如10s)

主库检测类型
长连接UPDATE HACHECK SET CHECK_TIME=SYSDATE
本地UPDATE HACHECK2 SET CHECK_TIME=SYSDATE
备库lag检测
最大延迟3分钟
本地检测最大重试次数(for maximum number of processes (xxx) exceeded)
最大次数8次
Power off 状态检测
最大次数8次
Ssh超时时间
每次为5秒,重试3次
MHA是什么?
• MHA for MySQL: Master High
Availability
Manager tools for MySQL

• 目的: 自动管理master failover &
slave promotion以便最少化当机时间
• 由一系列的Perl脚本组成
• http://code.google.com/p/MySQLmaster-ha/
为什么使用MHA?
• 自动的监控整个集群,自动进行故障转移
• 可以进行有计划的master切换,进行在线维护
OPTIMIZE/ALTER table,
Software or hardware upgrade
• 可以自动的或交互式的故障转移

• 可以管理VIP或者集成VIP管理软件
MHA:典型的场景
• 监控整个集群
• 如果检测到Master故障,则立即切换到一个候选Master或者
拥有最新日志的Slave ,从而成为新的Master
• 把其他的slave切换到新的master上
• 输出或者Email failover 报告, 停止监控
MHA:故障转移过程
MHA:在线切换过程
MHA:典型的时间点
• Usually no more than 10-30 seconds
• 0-10s: Master failover detected in around 10 seconds

• (optional) 10-20s: 10 seconds to power off master
• 10-20s:apply differential relay logs to new master

• Practice: 4s @ DeNA, usually less than 10s
MHA:Failover机制
ping_interval:检测频率
This parameter states how often MHA Manager pings(executes ping SQL
statement) the master. After missing three connection intervals in a
row, MHA Manager decides that the MySQL master is dead. Thus, the
maximum time for discovering a failure through the ping mechanism is
four times the ping interval. The default is 3 (3 seconds).
If MHA Manager fails to connect by too many connections or
authentication errors, it doesn't count that the master is dead.

ping_type:检测类型
(Supported from 0.53) By default, MHA establishes a persistent
connection to a master and checks master's availability by executing
"SELECT 1" (ping_type=SELECT). But in some cases, it is better to
check by connecting/disconnecting every time, because it's more strict
and it can detect TCP connection level failure more quickly. Setting
ping_type=CONNECT makes it possible.
HBase架构
参考资料
1 http://search.cpan.org/~salva/Net-OpenSSH0.60/lib/Net/OpenSSH.pm
2 MHA mha4MySQL-manager0.55samplesscriptspower_manager.pl
3 https://code.google.com/p/MySQL-master-ha/
4
5
6

Automated, Non-Stop MySQL Operations and
Failover(Yoshinori Matsunobu)
MHA: Getting Started & Moving Past Quirks
https://code.google.com/p/MySQL-master-ha/

More Related Content

PPT
高性能并发Web服务器实现核心内幕
PPTX
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
PPTX
MySQL压力测试经验
PDF
豆瓣数据架构实践
PPTX
Cgroup lxc在17173 iaas应用池中应用
PDF
服务器基准测试-叶金荣@CYOU-20121130
PDF
天涯论坛的技术进化史-Qcon2011
PPT
Database.Cache&Buffer&Lock
高性能并发Web服务器实现核心内幕
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
MySQL压力测试经验
豆瓣数据架构实践
Cgroup lxc在17173 iaas应用池中应用
服务器基准测试-叶金荣@CYOU-20121130
天涯论坛的技术进化史-Qcon2011
Database.Cache&Buffer&Lock

What's hot (20)

PPTX
如何针对业务做DB优化
PDF
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PDF
构建基于Lamp的网站架构
PDF
Hacking Nginx at Taobao
PDF
Mvcc (oracle, innodb, postgres)
PPTX
高性能队列Fqueue的设计和使用实践
PDF
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
PPTX
Full stack-development with node js
PDF
美团点评技术沙龙010-点评RDS系统介绍
PDF
美团点评技术沙龙010-Redis Cluster运维实践
PDF
分布式Key Value Store漫谈
PPTX
My sql 5.6新特性深入剖析——innodb引擎
PDF
一个 Mongodb command 的前世今生
PDF
D baa s_in_xiaomi
PDF
Oracle rac资源管理算法与cache fusion实现浅析
PDF
对MySQL应用的一些总结
PDF
新浪微博Feed服务架构
PPTX
InnoDB Transaction Lock and MVCC
PPTX
分布式缓存与队列
PDF
redis 适用场景与实现
如何针对业务做DB优化
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
构建基于Lamp的网站架构
Hacking Nginx at Taobao
Mvcc (oracle, innodb, postgres)
高性能队列Fqueue的设计和使用实践
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Full stack-development with node js
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-Redis Cluster运维实践
分布式Key Value Store漫谈
My sql 5.6新特性深入剖析——innodb引擎
一个 Mongodb command 的前世今生
D baa s_in_xiaomi
Oracle rac资源管理算法与cache fusion实现浅析
对MySQL应用的一些总结
新浪微博Feed服务架构
InnoDB Transaction Lock and MVCC
分布式缓存与队列
redis 适用场景与实现
Ad

Similar to 1号店数据库架构 (20)

PDF
【Ask maclean技术分享oracle数据库优化】awr鹰眼系列awr报告全面指标分析
PPT
Oracle dgha
PDF
高性能LAMP程序设计
PDF
基于MHA的MySQL高可用方案
PDF
Lamp高性能设计
PDF
A.oracle 查询结果的缓存问题
PDF
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
PPT
Lamp优化实践
PPT
Hbase
PDF
深入了解Oracle自动内存管理asmm
PDF
淘宝主备数据库自动切换
PPT
deep inside Sina App Engine cloud service
PPT
PPTX
1, OCP - architecture intro
PPTX
Mysql调优
PPTX
Nosql三步曲
PPTX
Kafka in Depth
PDF
How do we manage more than one thousand of Pegasus clusters - backend part
PDF
MySQL运维那些事
PPSX
浅谈 My sql 性能调优
【Ask maclean技术分享oracle数据库优化】awr鹰眼系列awr报告全面指标分析
Oracle dgha
高性能LAMP程序设计
基于MHA的MySQL高可用方案
Lamp高性能设计
A.oracle 查询结果的缓存问题
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
Lamp优化实践
Hbase
深入了解Oracle自动内存管理asmm
淘宝主备数据库自动切换
deep inside Sina App Engine cloud service
1, OCP - architecture intro
Mysql调优
Nosql三步曲
Kafka in Depth
How do we manage more than one thousand of Pegasus clusters - backend part
MySQL运维那些事
浅谈 My sql 性能调优
Ad

More from Louis liu (20)

PDF
Tcpcopy benchmark
PDF
JK Log-Center architect
PDF
Wdt Test
PDF
JKDB BACKUP Introduction
PDF
Infiniflash benchmark
PDF
MySQL Tokudb engine benchmark
PDF
Nvmfs benchmark
PDF
MySQL 5.7 milestone
PDF
MySQL Oslayer performace optimization
PDF
MySQL async message subscription platform
PDF
HBASE Performane Test
PDF
Jkcn MySQLDB 架构
PDF
基于Mongodb的压力评测工具 ycsb的一些概括
PDF
My sql fabric ha and sharding solutions
PDF
NetApp ef540 SSD Storage Test
PPTX
Exadata best practice on E-commerce area
PDF
MySQL 5.5&5.6 new features summary
PDF
Ssd gc review
PDF
Architecture of YHD
PDF
Think of oracle and mysql bind value
Tcpcopy benchmark
JK Log-Center architect
Wdt Test
JKDB BACKUP Introduction
Infiniflash benchmark
MySQL Tokudb engine benchmark
Nvmfs benchmark
MySQL 5.7 milestone
MySQL Oslayer performace optimization
MySQL async message subscription platform
HBASE Performane Test
Jkcn MySQLDB 架构
基于Mongodb的压力评测工具 ycsb的一些概括
My sql fabric ha and sharding solutions
NetApp ef540 SSD Storage Test
Exadata best practice on E-commerce area
MySQL 5.5&5.6 new features summary
Ssd gc review
Architecture of YHD
Think of oracle and mysql bind value

1号店数据库架构