SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
<Insert Picture Here>
Copyright Oracle 2010
Решения высокой надежности и
производительности для MySQL
Александр Рубин
Principal Consultant
5 девяток
9 9 9 99
35 days 4 days 50 mins 5 mins8 hours
Unmanaged
Replication
Technologies
Clustering
Technologies
Clustering &
Geographical
Redundancy
software upgrades
hardware upgrades
maintenance operations
software failures
network failures
power
failures
disasters
Well-Managed
hardware failures
Small
Business
ISPs &
Mainstream
Business
Data
Centers
Banking
Medical
Telco
Military
Defense
%.
Scale-Up vs. Scale-Out
• Более производиельный сервер (Scale-Up)
• Vertical
• Дорогие сервера
• Сложный апгрейд
• Больше серверов (Scale-Out)
• Horizontal
• Обычные сервера (как в Google)
• «Просто добавь сервер»
Low Cost
HighCost
Репликация в MySQL
Web/App
Server
Web/App
Server
Writes & Reads
MySQL Master
I/O
Thread
SQL
Thread
Writes
relay
binlog
MySQL Slave
mysqld
data
index &
binlogs
mysqld
databinlogReplication
Распределение нагрузки (Scale-Out)
Master Server Slave Server
Writes
Index &
Bin Log
Rotation
Writes
MySQL Replication
Reads
Possible Roles
• Fail over server
• Used for performing backups
• Read/Write load balancing
• Additional slaves allow Scale-Out
BackupsBackups
Writes & Reads
Web/App
Server
Web/App
Server
Отказоустойчивость (Fail Over)
Master Server Slave Server
Writes
Index &
Bin Log
Rotation
Writes
MySQL Replication
Reads
Possible Roles
• Fail over server
• Used for performing backups
• Read/Write load balancing
• Additional slaves allow Scale-Out
BackupsBackups
Web/App
Server
Web/App
Server
Manual
Fail Over
X
X
X
Fail Over
Linux Heartbeat, DRBD & MySQL
= Private IP =
10.10.10.21
Active Server Passive Server
= Private IP =
10.10.10.20
Primary DRBD Secondary DRBD
DRBD
Linux Heartbeat
= Virtual IP =
10.10.10.10
Web/App
Server
Web/App
Server
= Private IP =
10.10.10.21
Active Server Passive Server
= Private IP =
10.10.10.20
DRBD
Primary DRBD Secondary DRBD
X
X
Active
Primary DRBD
X
Linux Heartbeat
= Virtual IP =
10.10.10.10
Web/App
Server
Web/App
Server
Linux Heartbeat, DRBD & MySQL
Кластер (MySQL Cluster)
MySQL
Server
MySQL
Server
Data
Node
Data
Node
Data
Node
Data
Node
NDB
Storage Engine
Management
Server
Management
Server
NDB APINDB API
MySQL Cluster
Data
Node
Data
Node
Data
Node
Data
Node
MySQL
Server
MySQL
Server
MySQL
Server
MySQL
Server
Management
Server
Management
Server
MySQL
Server
MySQL
Server
MySQL
Server
MySQL
Server
Архитектура данных в кластере
• Four Data Nodes
• Two Replicas
• Two Node Groups
8ChinaBeijing8
2NorwayOslo7
4RussiaMoscow6
2GreeceAthens5
9JapanTokyo4
-5USANew York City3
2GermanyBerlin2
2DenmarkCopenhagen1
UTCCountryCapitalID
8ChinaBeijing8
2NorwayOslo7
4RussiaMoscow6
2GreeceAthens5
9JapanTokyo4
-5USANew York City3
2GermanyBerlin2
2DenmarkCopenhagen1
UTCCountryCapitalID
Partition 1
Partition 2
Partition 3
Partition 4
Data
Node
Data
Node
P1-Primary
P2-Secondary
P1-Secondary
P2-Primary
Data
Node
Data
Node
Node Group 1
Data
Node
Data
Node
P3-Primary
P4-Secondary
P3-Secondary
P4-Primary
Data
Node
Data
Node
Node Group 2
Отказоустойчивость
MySQL
Server
MySQL
Server
Data
Node
Data
Node
Data
Node
Data
Node
NDB
Storage Engine
Management
Server
Management
Server
NDB APINDB API
MySQL Cluster
Data
Node
Data
Node
Data
Node
Data
Node
MySQL
Server
MySQL
Server
MySQL
Server
MySQL
Server
Management
Server
Management
Server
MySQL
Server
MySQL
Server
MySQL
Server
MySQL
ServerXX X
X
X
X
Решения
• Репликация Master/Slave
• Slaves только для чтения
• Master<->Master
• Репликация типа «кольцо» (ring)
• DRDB HA
• DRBD Master и Read Only Slaves
• Master to Master Cross Datacenter + DRDB
• Шардинг (Sharding)
• Шардинг + DRDB + Geo Redundancy
Топология
Master > Slave
Masters > Slave (Multi-Source)
Master < > Master (Multi-Master)
Master > Slaves
Circular (Multi-Master)
Master > Slave > Slaves
Решение: Репликация Master/Slave
• Преимущества
– Чтение с любого сервера
– распределение нагрузки
– Простота установки
– Отказоустойчивость ~99.9% (3 девятки)
• Недостатки: Асинхронная репликация (!)
– Slave может не получить изменения вовремя
– Записываем, читаем записанное со Slave –
Oooops!
– Запись – ТОЛЬКО на Master
Master Slave
Asynchronous
MySQL
Replication
Решениe: Master и много Slaves
• Master может иметь много Slaves
• Чтение данных (select) – 4-5 девяток (HA)
• Распределение нагрузки – чтение с любого slaves
• Увеличилась нагрузка – добавим Slave
• Сложные запросы (отчеты) – гоняем на Slave
• Backup
Master
Slave 1 Slave 4
Slave 3Slave 2
Репликация Master-Master
• Преимущества
• Чтение с любого сервера
• Простота установки
• Отказоустойчивость (осторожно!)
• Надежность на уровне ~99.9%
• Недостатки
• Нет распределения нагрузки для записи
• При отказе – потеря транзакций!
Master 1 Master 2
Pattern: Ring Replication
• Недостатки
– Легко ломается – сложно востановить данные
– Запись на Master 4 придет после записи на Master
3
• Не рекомендуется
Master 1 Master 3
Master 2 Master 4
Asynchronous
MySQL
Replication
Решение: DRBD и Slaves для
чтения
• Отказоустойчивость для Master
• Чтение с любого Slave
• Slave автоматически пере-подключаются после
сбоя мастера
Hot Primary Warm SecondarySynchronous
DRBD
Replication
Master Pair
DRBD и балансировка нагрузки
Географическая отказоустойчивость
Sharding (Шардинг)
Shard A Shard B Shard DShard C
Шардинг с DRBD
The presentation is intended to outline our general
product direction. It is intended for information
purposes only, and may not be incorporated into any
contract. It is not a commitment to deliver any
material, code, or functionality, and should not be
relied upon in making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.

Mais conteúdo relacionado

Mais procurados

Брокер сообщений Kafka в условиях повышенной нагрузки
Брокер сообщений Kafka в условиях повышенной нагрузкиБрокер сообщений Kafka в условиях повышенной нагрузки
Брокер сообщений Kafka в условиях повышенной нагрузкиArtyom Vybornov
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Ontico
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потаповrit2010
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
 
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...Anastasia Rostova
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014Andrey Korshikov
 
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Ontico
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
 
РИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияРИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияТарасов Константин
 
Дедупликация. Нет громоздким ленточным библиотекам
Дедупликация. Нет громоздким ленточным библиотекамДедупликация. Нет громоздким ленточным библиотекам
Дедупликация. Нет громоздким ленточным библиотекамКРОК
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Ontico
 
Балансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверовБалансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверовEkaterina Giganova
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
 

Mais procurados (20)

Брокер сообщений Kafka в условиях повышенной нагрузки
Брокер сообщений Kafka в условиях повышенной нагрузкиБрокер сообщений Kafka в условиях повышенной нагрузки
Брокер сообщений Kafka в условиях повышенной нагрузки
 
2013-07-06 02 Дмитрий Голушко. Cassandra
2013-07-06 02 Дмитрий Голушко. Cassandra2013-07-06 02 Дмитрий Голушко. Cassandra
2013-07-06 02 Дмитрий Голушко. Cassandra
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потапов
 
System Center 2012 Operations Manager + SP1
System Center 2012 Operations Manager + SP1 System Center 2012 Operations Manager + SP1
System Center 2012 Operations Manager + SP1
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
 
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014
 
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 
РИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияРИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использования
 
Дедупликация. Нет громоздким ленточным библиотекам
Дедупликация. Нет громоздким ленточным библиотекамДедупликация. Нет громоздким ленточным библиотекам
Дедупликация. Нет громоздким ленточным библиотекам
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
 
Backup veeam data_line
Backup veeam data_lineBackup veeam data_line
Backup veeam data_line
 
Балансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверовБалансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверов
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 

Semelhante a High Availability Solutions with MySQL

Mysql replication DevConf 2012
Mysql replication DevConf 2012Mysql replication DevConf 2012
Mysql replication DevConf 2012Alex Chistyakov
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Ontico
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Ontico
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Ontico
 
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Ontico
 
Oracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памятиOracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памятиAndrey Akulov
 
All about Azure - Kazan
All about Azure - KazanAll about Azure - Kazan
All about Azure - KazanAlexey Bokov
 
Java black box profiling
Java black box profilingJava black box profiling
Java black box profilingaragozin
 
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Oleg Tsarev
 
Oracle NoSQL Database
Oracle NoSQL DatabaseOracle NoSQL Database
Oracle NoSQL DatabaseAndrey Akulov
 
Выбор оптимального отказоустойчивого решения
Выбор оптимального отказоустойчивого решенияВыбор оптимального отказоустойчивого решения
Выбор оптимального отказоустойчивого решенияКРОК
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потаповrit2010
 
Резервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условияхРезервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условияхSveta Smirnova
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Alexey Lesovsky
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected loadGrid Dynamics
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks ServerLevon Avakyan
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Ontico
 
Web application scalability
Web application scalabilityWeb application scalability
Web application scalabilityOleg Alistratov
 

Semelhante a High Availability Solutions with MySQL (20)

Mysql replication DevConf 2012
Mysql replication DevConf 2012Mysql replication DevConf 2012
Mysql replication DevConf 2012
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)
 
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
 
Oracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памятиOracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памяти
 
All about Azure - Kazan
All about Azure - KazanAll about Azure - Kazan
All about Azure - Kazan
 
Java black box profiling
Java black box profilingJava black box profiling
Java black box profiling
 
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
 
Oracle NoSQL Database
Oracle NoSQL DatabaseOracle NoSQL Database
Oracle NoSQL Database
 
Выбор оптимального отказоустойчивого решения
Выбор оптимального отказоустойчивого решенияВыбор оптимального отказоустойчивого решения
Выбор оптимального отказоустойчивого решения
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потапов
 
Резервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условияхРезервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условиях
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected load
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
 
Web application scalability
Web application scalabilityWeb application scalability
Web application scalability
 

Mais de Arvids Godjuks

Uc2010 xtra backup-hot-backups-and-more
Uc2010 xtra backup-hot-backups-and-moreUc2010 xtra backup-hot-backups-and-more
Uc2010 xtra backup-hot-backups-and-moreArvids Godjuks
 
Open sql2010 recovery-of-lost-or-corrupted-innodb-tables
Open sql2010 recovery-of-lost-or-corrupted-innodb-tablesOpen sql2010 recovery-of-lost-or-corrupted-innodb-tables
Open sql2010 recovery-of-lost-or-corrupted-innodb-tablesArvids Godjuks
 
Alexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework YiiAlexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework YiiArvids Godjuks
 
Zabbix - an important part of your IT infrastructure
Zabbix - an important part of your IT infrastructureZabbix - an important part of your IT infrastructure
Zabbix - an important part of your IT infrastructureArvids Godjuks
 
PHP libevent Daemons. A high performance and reliable solution. Practical exp...
PHP libevent Daemons. A high performance and reliable solution. Practical exp...PHP libevent Daemons. A high performance and reliable solution. Practical exp...
PHP libevent Daemons. A high performance and reliable solution. Practical exp...Arvids Godjuks
 
Google Analytics: smart use
Google Analytics: smart useGoogle Analytics: smart use
Google Analytics: smart useArvids Godjuks
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activityArvids Godjuks
 

Mais de Arvids Godjuks (8)

Uc2010 xtra backup-hot-backups-and-more
Uc2010 xtra backup-hot-backups-and-moreUc2010 xtra backup-hot-backups-and-more
Uc2010 xtra backup-hot-backups-and-more
 
Open sql2010 recovery-of-lost-or-corrupted-innodb-tables
Open sql2010 recovery-of-lost-or-corrupted-innodb-tablesOpen sql2010 recovery-of-lost-or-corrupted-innodb-tables
Open sql2010 recovery-of-lost-or-corrupted-innodb-tables
 
Alexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework YiiAlexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework Yii
 
Zabbix - an important part of your IT infrastructure
Zabbix - an important part of your IT infrastructureZabbix - an important part of your IT infrastructure
Zabbix - an important part of your IT infrastructure
 
PHP libevent Daemons. A high performance and reliable solution. Practical exp...
PHP libevent Daemons. A high performance and reliable solution. Practical exp...PHP libevent Daemons. A high performance and reliable solution. Practical exp...
PHP libevent Daemons. A high performance and reliable solution. Practical exp...
 
System markup
System markupSystem markup
System markup
 
Google Analytics: smart use
Google Analytics: smart useGoogle Analytics: smart use
Google Analytics: smart use
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activity
 

High Availability Solutions with MySQL

  • 1. <Insert Picture Here> Copyright Oracle 2010 Решения высокой надежности и производительности для MySQL Александр Рубин Principal Consultant
  • 2. 5 девяток 9 9 9 99 35 days 4 days 50 mins 5 mins8 hours Unmanaged Replication Technologies Clustering Technologies Clustering & Geographical Redundancy software upgrades hardware upgrades maintenance operations software failures network failures power failures disasters Well-Managed hardware failures Small Business ISPs & Mainstream Business Data Centers Banking Medical Telco Military Defense %.
  • 3. Scale-Up vs. Scale-Out • Более производиельный сервер (Scale-Up) • Vertical • Дорогие сервера • Сложный апгрейд • Больше серверов (Scale-Out) • Horizontal • Обычные сервера (как в Google) • «Просто добавь сервер» Low Cost HighCost
  • 4. Репликация в MySQL Web/App Server Web/App Server Writes & Reads MySQL Master I/O Thread SQL Thread Writes relay binlog MySQL Slave mysqld data index & binlogs mysqld databinlogReplication
  • 5. Распределение нагрузки (Scale-Out) Master Server Slave Server Writes Index & Bin Log Rotation Writes MySQL Replication Reads Possible Roles • Fail over server • Used for performing backups • Read/Write load balancing • Additional slaves allow Scale-Out BackupsBackups Writes & Reads Web/App Server Web/App Server
  • 6. Отказоустойчивость (Fail Over) Master Server Slave Server Writes Index & Bin Log Rotation Writes MySQL Replication Reads Possible Roles • Fail over server • Used for performing backups • Read/Write load balancing • Additional slaves allow Scale-Out BackupsBackups Web/App Server Web/App Server Manual Fail Over X X X Fail Over
  • 7. Linux Heartbeat, DRBD & MySQL = Private IP = 10.10.10.21 Active Server Passive Server = Private IP = 10.10.10.20 Primary DRBD Secondary DRBD DRBD Linux Heartbeat = Virtual IP = 10.10.10.10 Web/App Server Web/App Server
  • 8. = Private IP = 10.10.10.21 Active Server Passive Server = Private IP = 10.10.10.20 DRBD Primary DRBD Secondary DRBD X X Active Primary DRBD X Linux Heartbeat = Virtual IP = 10.10.10.10 Web/App Server Web/App Server Linux Heartbeat, DRBD & MySQL
  • 9. Кластер (MySQL Cluster) MySQL Server MySQL Server Data Node Data Node Data Node Data Node NDB Storage Engine Management Server Management Server NDB APINDB API MySQL Cluster Data Node Data Node Data Node Data Node MySQL Server MySQL Server MySQL Server MySQL Server Management Server Management Server MySQL Server MySQL Server MySQL Server MySQL Server
  • 10. Архитектура данных в кластере • Four Data Nodes • Two Replicas • Two Node Groups 8ChinaBeijing8 2NorwayOslo7 4RussiaMoscow6 2GreeceAthens5 9JapanTokyo4 -5USANew York City3 2GermanyBerlin2 2DenmarkCopenhagen1 UTCCountryCapitalID 8ChinaBeijing8 2NorwayOslo7 4RussiaMoscow6 2GreeceAthens5 9JapanTokyo4 -5USANew York City3 2GermanyBerlin2 2DenmarkCopenhagen1 UTCCountryCapitalID Partition 1 Partition 2 Partition 3 Partition 4 Data Node Data Node P1-Primary P2-Secondary P1-Secondary P2-Primary Data Node Data Node Node Group 1 Data Node Data Node P3-Primary P4-Secondary P3-Secondary P4-Primary Data Node Data Node Node Group 2
  • 11. Отказоустойчивость MySQL Server MySQL Server Data Node Data Node Data Node Data Node NDB Storage Engine Management Server Management Server NDB APINDB API MySQL Cluster Data Node Data Node Data Node Data Node MySQL Server MySQL Server MySQL Server MySQL Server Management Server Management Server MySQL Server MySQL Server MySQL Server MySQL ServerXX X X X X
  • 12. Решения • Репликация Master/Slave • Slaves только для чтения • Master<->Master • Репликация типа «кольцо» (ring) • DRDB HA • DRBD Master и Read Only Slaves • Master to Master Cross Datacenter + DRDB • Шардинг (Sharding) • Шардинг + DRDB + Geo Redundancy
  • 13. Топология Master > Slave Masters > Slave (Multi-Source) Master < > Master (Multi-Master) Master > Slaves Circular (Multi-Master) Master > Slave > Slaves
  • 14. Решение: Репликация Master/Slave • Преимущества – Чтение с любого сервера – распределение нагрузки – Простота установки – Отказоустойчивость ~99.9% (3 девятки) • Недостатки: Асинхронная репликация (!) – Slave может не получить изменения вовремя – Записываем, читаем записанное со Slave – Oooops! – Запись – ТОЛЬКО на Master Master Slave Asynchronous MySQL Replication
  • 15. Решениe: Master и много Slaves • Master может иметь много Slaves • Чтение данных (select) – 4-5 девяток (HA) • Распределение нагрузки – чтение с любого slaves • Увеличилась нагрузка – добавим Slave • Сложные запросы (отчеты) – гоняем на Slave • Backup Master Slave 1 Slave 4 Slave 3Slave 2
  • 16. Репликация Master-Master • Преимущества • Чтение с любого сервера • Простота установки • Отказоустойчивость (осторожно!) • Надежность на уровне ~99.9% • Недостатки • Нет распределения нагрузки для записи • При отказе – потеря транзакций! Master 1 Master 2
  • 17. Pattern: Ring Replication • Недостатки – Легко ломается – сложно востановить данные – Запись на Master 4 придет после записи на Master 3 • Не рекомендуется Master 1 Master 3 Master 2 Master 4 Asynchronous MySQL Replication
  • 18. Решение: DRBD и Slaves для чтения • Отказоустойчивость для Master • Чтение с любого Slave • Slave автоматически пере-подключаются после сбоя мастера Hot Primary Warm SecondarySynchronous DRBD Replication Master Pair
  • 21. Sharding (Шардинг) Shard A Shard B Shard DShard C
  • 23. The presentation is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.