SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Webscale backups for MySQL 
Alexey.Kopytov@percona.com 
October 29, 2014
#BEAMERTHEME: Madrid
Êòî ÿ? 
Àëåêñåé Êîïûòîâ <alexey.kopytov@percona.com> 
I Percona Server 
I Percona XtraBackup (ðóêîâîäèòåëü ïðîåêòà) 
I Percona XtraDB Cluster
Òèïû ðåçåðâíûõ êîïèé 
Ëîãè÷åñêèå 
I äàííûå â âèäå SQL, ïîëó÷åííûå 
îò ñåðâåðà 
I òðåáóþò èìïîðò äëÿ 
âîññòàíîâëåíèÿ (ìåäëåííî!) 
I âîññòàíîâëåíèå ïîâðåæä¼ííûõ 
äàííûõ 
I upgrade/downgrade 
Ôèçè÷åñêèå 
I êîïèÿ ôàéëîâ äàííûõ ñ äèñêà 
I êëîíèðîâàíèå 
I âîññòàíîâëåíèå âñåé áàçû 
öåëèêîì 
Îáû÷íî èñïîëüçóþòñÿ îäíîâðåìåííî
Óòèëèòû äëÿ áýêàïîâ MySQL 
I mysqldump 
I mydumper 
I mylvmbackup 
I TokuDB Hot Backup 
I MySQL Enterprise Backup 
I Percona XtraBackup 
I íå ñ÷èòàÿ ¾íàäñòðîåê¿
mysqldump 
I ëîãè÷åñêèé áýêàï 
I + âõîäèò â ïàêåòû MySQL/MariaDB/Percona Server 
I  íåò èíêðåìåíòàëüíûõ áýêàïîâ 
I  îäíîïîòî÷íûé 
I  Î×ÅÍÜ ìåäëåííîå âîññòàíîâëåíèå
mydumper 
“How MySQL DBA  support engineer would imagine mysqldump ” 
I ëîãè÷åñêèé áýêàï 
I + ìíîãîïîòî÷íàÿ âåðñèÿ mysqldump 
I + îäíà òàáëèöà – îäèí ôàéë 
I  íåò èíêðåìåíòàëüíûõ áýêàïîâ 
I  òîëüêî ëîêàëüíûå áýêàïû (íåëüçÿ ñäåëàòü mydumper | ssh 
remotehost) 
I  ìåäëåííîå âîññòàíîâëåíèå
mylvmbackup 
I ôèçè÷åñêèé áýêàï 
I + ëþáûå òèïû òàáëèö (InnoDB, TokuDB, etc.) 
I  íåò èíêðåìåíòàëüíûõ áýêàïîâ 
I  òîëüêî ëîêàëüíûå áýêàïû
TokuDB Hot Backup 
I áèáëèîòåêà, ïåðåõâàòûâàþùàÿ I/O âûçîâû 
I ôàêòè÷åñêè LVM snapshot â userspace
TokuDB Hot Backup 
I ôèçè÷åñêèé áýêàï 
I + ëþáûå òèïû òàáëèö (òåîðåòè÷åñêè) 
I  íåò èíêðåìåíòàëüíûõ áýêàïîâ 
I  òîëüêî ëîêàëüíûå áýêàïû 
I – âñÿ çàïèñü â áàçó äóáëèðóåòñÿ â ïðîöåññå áýêàïà
MySQL Enterprise Backup 
I ôèçè÷åñêèé áýêàï 
I ïðîïðèåòàðíîå ÏÎ, äîñòóïíî ïî ïëàòíîé ïîäïèñêå 
I + ¾ãîðÿ÷èé¿ áýêàï äëÿ InnoDB 
I + èíêðåìåíòàëüíûå áýêàïû 
I + áýêàïû íà óäàë¼ííûå õîñò 
I + áûñòðîå âîññòàíîâëåíèå âñåé áàçû 
I - áîëüøîé ðàçìåð íà äèñêå 
I - íå ïîääåðæèâàåò íåêîòîðûå ðàñøèðåíèÿ XtraDB (Percona Server, 
MariaDB) 
I - íå ïîääåðæèâàåò TokuDB
Percona XtraBackup 
I ôèçè÷åñêèé áýêàï 
I ñâîáîäíàÿ, áåñïëàòíàÿ àëüòåðíàòèâà MySQL Enterprise Backup 
I ïðàêòè÷åñêè 100% ñîâìåñòèìîñòü â ôóíêöèîíàëüíîñòè (+/- íþàíñû 
ðåàëèçàöèè) 
I ïîääåðæèâàåò MySQL, MariaDB, Percona Server, WebscaleSQL, . . .
×òî âûáðàòü? 
mydumper + Percona XtraBackup ïîêðûâàþò áîëüøèíñòâî ñëó÷àåâ 
I ñòàäàðò äå-ôàêòî äëÿ Percona Managed Services 
TokuDB? Òîãäà mylvmbackup ! 
I èñïîëüçóåòñÿ â Percona Cloud Tools 
Åñòü ïîäïèñêà íà MySQL Enterprise? 
I MySQL Enterprise Backup  òîæå âàðèàíò! :)
Áîëüøèå îáú¼ìû äàííûõ
Áîëüøèå îáú¼ìû äàííûõ: mysqldump 
I mysqldump --innodb-optimize-keys â ïàêåòàõ Percona Server 
5.1/5.5/5.6 
I óáèðàåò âòîðè÷íûå èíäåêñû èç InnoDB òàáëèö 
I ïåðåñòðàèâàåò ïîñëå èìïîðòà äàííûõ “áûñòðûì” ìåòîäîì 
I çíà÷èòåëüíî óñêîðÿåò èìïîðò 
I ïîêà íå ðåàëèçîâàíî â MySQL (Bug #49120) 
I ïîêà íå ðåàëèçîâàíî â mydumper
Áîëüøèå îáú¼ìû äàííûõ: PXB/MEB 
¾Êîìïàêòíûå¿ áýêàïû â Percona XtraBackup 
innobackupex --compact /backup/dir/ 
¾Skip unused pages¿ â MySQL Enterprise Backup 
mysqlbackup --skip-unused-pages /backupdir 
Ìåíüøå ðàçìåð íà äèñêå, íî áîëüøå âðåìåíè íà âîññòàíîâëåíèå!
Áëîêèðîâêè 
Âñå óòèëèòû îáåùàþò ¾ãîðÿ÷èé¿ áýêàï. 
Íà ñàìîì äåëå èñïîëüçóþò áëîêèðîâêè äëÿ: 
I ñîãëàñîâàííîñòè ñ íåòðàíçàêöèîííûìè òàáëèöàìè 
I ñîãëàñîâàííîñòè .frm ñ äàííûìè 
I ñîãëàñîâàííîñòè master/slave êîîðäèíàò ñ êîïèåé äàííûõ
Áëîêèðîâêè: FLUSH TABLES WITH READ LOCK 
 ÷¼ì ïðîáëåìà íà âûñîêîíàãðóæåííûõ ñåðâåðàõ? 
1. Ñáðîñèòü query cache 
2. Çàáëîêèðîâàòü âñå íîâûå çàïèñè 
3. Äîæäàòüñÿ çàâåðøåíèÿ âñåõ âûïîëíÿþùèõñÿ çàïèñåé 
4. Äîæäàòüñÿ çàâåðøåíèÿ âñåõ SELECT 
5. Çàáëîêèðîâàòü COMMIT
Áëîêèðîâêè: Backup locks â Percona Server 5.6 
LOCK TABLES FOR BACKUP: 
I áëîêèðóåò DDL è çàïèñè â íåòðàíçàêöèîííûå òàáëèöû 
LOCK BINLOG FOR BACKUP: 
I áëîêèðóåò COMMIT
Áëîêèðîâêè: FTWRL vs. Backup locks 
Percona XtraBackup: 
FLUSH TABLES WITH READ LOCK 
1. ñêîïèðîâàòü InnoDB òàáëèöû 
2. FLUSH TABLES WITH READ LOCK; 
3. ñêîïèðîâàòü .frm, MyISAM, è ò.ä. 
4. ïîëó÷èòü master/slave 
êîîðäèíàòû 
5. çàâåðøèòü êîïèðîâàíèå REDO log 
6. UNLOCK TABLES; 
Backup locks 
1. ñêîïèðîâàòü InnoDB òàáëèöû 
2. LOCK TABLES FOR BACKUP; 
3. ñêîïèðîâàòü .frm, MyISAM, è ò.ä. 
4. LOCK BINLOG FOR BACKUP; 
5. çàâåðøèòü êîïèðîâàíèå REDO log 
6. UNLOCK TABLES; 
7. ïîëó÷èòü master/slave 
êîîðäèíàòû 
8. UNLOCK BINLOG;
Áëîêèðîâêè: FTWRL vs. Backup locks 
mysqldump --single-transaction 
I íå áëîêèðóåò ñåðâåð 
I íå ðàáîòàåò, åñëè åñòü MyISAM è/èëè DDL 
mysqldump --lock-all-tables 
I áëîêèðóåò ñåðâåð 
I ðàáîòàåò ñ MyISAM è DDL 
Percona Server: mysqldump -single-transaction 
--lock-for-backup: 
I íå áëîêèðóåò ñåðâåð 
I ðàáîòàåò ñ MyISAM è DDL
×àñòè÷íûå êîïèè
×àñòè÷íîå âîññòàíîâëåíèå
Èíêðåìåíòàëüíûå áýêàïû 
Ðåàëèçàöèÿ èíêðåìåíòàëüíûõ áýêàïîâ â Percona XtraBackup è 
MySQL Enterprise Backup: 
I ñêîïèðîâàòü âñå ñòðàíèöû, äëÿ êîòîðûõ LSNîáíîâëåíèÿ  LSNïîëíîãî áýêàïà 
Ïðîáëåìà äëÿ áîëüøèõ îáú¼ìîâ äàííûõ: 
I òðåáóåò ïîëíîãî ñêàíèðîâàíèÿ âñåõ äàííûõ
Èíêðåìåíòàëüíûå áýêàïû 
Percona Server: innodb_track_changed_pages=1 
I ñîõðàíÿåò bitmap èçìåí¼ííûõ ñòðàíèö â îòäåëüíûõ ôàéëàõ 
Percona XtraBackup: 
I àâòîìàòè÷åñêè èñïîëüçóåò bitmap ôàéëû âìåñòî ïîëíîãî ñêàíèðîâàíèÿ
Èíêðåìåíòàëüíûå áýêàïû 
Percona Server: innodb_log_archive=1 
I äóáëèðóåò REDO ëîã â îòäåëüíûõ ôàéëàõ 
Percona XtraBackup: 
I xtrabackup --prepare --log-arch-dir=/data/archived-logs/ 
ïðèêëàäûâàåò èçìåíåíèÿ áåç ïîëíîãî ñêàíèðîâàíèÿ
Ïðîâåðêà öåëîñòíîñòè 
Ïðîáëåìà: êàê ïðîâåðèòü, ÷òî ñ áýêàïîì ¾âñ¼ â ïîðÿäêå¿? 
I ïðîâåðêà êîíòðîëüíûõ ñóìì, ñïèñêà ôàéëîâ, è ò.ä. íå ãàðàíòèðóåò 
öåëîñòíîñòü 
I íå ñ ÷åì ñðàâíèâàòü:
Ïðîâåðêà öåëîñòíîñòè: ðåøåíèå 
Ïðåäëîæåíî ïîëüçîâàòåëåì â ñïèñêå ðàññûëêè: 
1. Ñîçäàòü slave èç áýêàïà 
1. pt-table-checksum äëÿ ïðîâåðêè öåëîñòíîñòè ðåïëèêàöèè 
2. profit!
Îáëàêà 
Êòî ïîääåðæèâàåò cloud backups? 
I mysqldump/mydumper 
+ ñòîðîííèå óòèëèòû (s3cmd) 
I MySQL Enterprise Backup ñ âåðñèè 3.10.2 
I Percona XtraBackup 2.3 (ïîêà alpha)
Îáëàêà 
MySQL Enterprise Backup 
I ñåé÷àñ: Amazon S3 
I â ïëàíàõ: ? 
Percona XtraBackup: 
I ñåé÷àñ: OpenStack 
I â ïëàíàõ: Amazon S3, Amazon Glacier
Îáëàêà: Percona XtraBackup 
Ñîçäàíèå áýêàïà: 
innobackupex --stream=xbstream /tmp | 
xbcloud put --storage=swift 
--swift-container=testbackup 
--swift-user=user 
--swift-password=password 
--swift-url=http://my.cloud.com/ 
--swift-key=testkey 
--parallel=10
Îáëàêà: Percona XtraBackup 
Âîññòàíîâëåíèå èç áýêàïà: 
xbcloud get --storage=swift 
--swift-container=testbackup 
--swift-user=user 
--swift-key=testkey 
--swift-url=http://my.cloud.com/ 
--parallel=10 | xbstream -x /data/backup 
innobackupex --apply-log /data/backup 
innobackupex --copy-back /data/backup
Âîïðîñû!

Contenu connexe

Tendances

1.page maker e book
1.page maker e book1.page maker e book
1.page maker e bookDash Oogii
 
Prayer sinhala
Prayer sinhalaPrayer sinhala
Prayer sinhaladipd
 
презентация о компании
презентация о компаниипрезентация о компании
презентация о компании100200300
 
Jesus - in sinhala language
Jesus - in sinhala languageJesus - in sinhala language
Jesus - in sinhala languagedipd
 
Escribir en el teclado bien para que no te salga una bola en la mano
Escribir en el teclado bien para que no te salga una bola en la manoEscribir en el teclado bien para que no te salga una bola en la mano
Escribir en el teclado bien para que no te salga una bola en la manoSMLAG
 
PostgreSQL Moscow Meetup - September 2014 - Ilya Kosmodemyansky
PostgreSQL Moscow Meetup - September 2014 - Ilya KosmodemyanskyPostgreSQL Moscow Meetup - September 2014 - Ilya Kosmodemyansky
PostgreSQL Moscow Meetup - September 2014 - Ilya KosmodemyanskyNikolay Samokhvalov
 
Mercy sinhala
Mercy sinhalaMercy sinhala
Mercy sinhaladipd
 
Quran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උව
Quran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උවQuran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උව
Quran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උවwamysl
 
CSP: как защитить своих пользователей — Алексей Андросов
CSP: как защитить своих пользователей — Алексей АндросовCSP: как защитить своих пользователей — Алексей Андросов
CSP: как защитить своих пользователей — Алексей АндросовYandex
 
Women in sinhala language
Women in sinhala languageWomen in sinhala language
Women in sinhala languagedipd
 
Ruby 拡張モジュール入門
Ruby 拡張モジュール入門Ruby 拡張モジュール入門
Ruby 拡張モジュール入門Kenta Murata
 
ბანკები და ფინანსები ელ-ვერსია #521
ბანკები და ფინანსები ელ-ვერსია #521ბანკები და ფინანსები ელ-ვერსია #521
ბანკები და ფინანსები ელ-ვერსია #521BFM2015
 

Tendances (17)

1.page maker e book
1.page maker e book1.page maker e book
1.page maker e book
 
Prayer sinhala
Prayer sinhalaPrayer sinhala
Prayer sinhala
 
презентация о компании
презентация о компаниипрезентация о компании
презентация о компании
 
Jesus - in sinhala language
Jesus - in sinhala languageJesus - in sinhala language
Jesus - in sinhala language
 
Escribir en el teclado bien para que no te salga una bola en la mano
Escribir en el teclado bien para que no te salga una bola en la manoEscribir en el teclado bien para que no te salga una bola en la mano
Escribir en el teclado bien para que no te salga una bola en la mano
 
PostgreSQL Moscow Meetup - September 2014 - Ilya Kosmodemyansky
PostgreSQL Moscow Meetup - September 2014 - Ilya KosmodemyanskyPostgreSQL Moscow Meetup - September 2014 - Ilya Kosmodemyansky
PostgreSQL Moscow Meetup - September 2014 - Ilya Kosmodemyansky
 
Mercy sinhala
Mercy sinhalaMercy sinhala
Mercy sinhala
 
Quran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උව
Quran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උවQuran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උව
Quran in Sinhala(30)-අල්-කුර්ආන් - අර්ථකථනය - 30 ජුස්උව
 
Wafa guzeeda cropped
Wafa guzeeda croppedWafa guzeeda cropped
Wafa guzeeda cropped
 
Taaqub cropped
Taaqub croppedTaaqub cropped
Taaqub cropped
 
Angan main-utary-chaand cropped
Angan main-utary-chaand croppedAngan main-utary-chaand cropped
Angan main-utary-chaand cropped
 
الاعاده الفوريه
الاعاده الفوريهالاعاده الفوريه
الاعاده الفوريه
 
CSP: как защитить своих пользователей — Алексей Андросов
CSP: как защитить своих пользователей — Алексей АндросовCSP: как защитить своих пользователей — Алексей Андросов
CSP: как защитить своих пользователей — Алексей Андросов
 
Rait ki-dewar cropped
Rait ki-dewar croppedRait ki-dewar cropped
Rait ki-dewar cropped
 
Women in sinhala language
Women in sinhala languageWomen in sinhala language
Women in sinhala language
 
Ruby 拡張モジュール入門
Ruby 拡張モジュール入門Ruby 拡張モジュール入門
Ruby 拡張モジュール入門
 
ბანკები და ფინანსები ელ-ვერსია #521
ბანკები და ფინანსები ელ-ვერსია #521ბანკები და ფინანსები ელ-ვერსია #521
ბანკები და ფინანსები ელ-ვერსია #521
 

Plus de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Plus de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Web scale backups for MySQL, Алексей Копытов (Percona)

  • 1. Webscale backups for MySQL Alexey.Kopytov@percona.com October 29, 2014
  • 3. Êòî ÿ? Àëåêñåé Êîïûòîâ <alexey.kopytov@percona.com> I Percona Server I Percona XtraBackup (ðóêîâîäèòåëü ïðîåêòà) I Percona XtraDB Cluster
  • 4. Òèïû ðåçåðâíûõ êîïèé Ëîãè÷åñêèå I äàííûå â âèäå SQL, ïîëó÷åííûå îò ñåðâåðà I òðåáóþò èìïîðò äëÿ âîññòàíîâëåíèÿ (ìåäëåííî!) I âîññòàíîâëåíèå ïîâðåæä¼ííûõ äàííûõ I upgrade/downgrade Ôèçè÷åñêèå I êîïèÿ ôàéëîâ äàííûõ ñ äèñêà I êëîíèðîâàíèå I âîññòàíîâëåíèå âñåé áàçû öåëèêîì Îáû÷íî èñïîëüçóþòñÿ îäíîâðåìåííî
  • 5. Óòèëèòû äëÿ áýêàïîâ MySQL I mysqldump I mydumper I mylvmbackup I TokuDB Hot Backup I MySQL Enterprise Backup I Percona XtraBackup I íå ñ÷èòàÿ ¾íàäñòðîåê¿
  • 6. mysqldump I ëîãè÷åñêèé áýêàï I + âõîäèò â ïàêåòû MySQL/MariaDB/Percona Server I íåò èíêðåìåíòàëüíûõ áýêàïîâ I îäíîïîòî÷íûé I Î×ÅÍÜ ìåäëåííîå âîññòàíîâëåíèå
  • 7. mydumper “How MySQL DBA support engineer would imagine mysqldump ” I ëîãè÷åñêèé áýêàï I + ìíîãîïîòî÷íàÿ âåðñèÿ mysqldump I + îäíà òàáëèöà – îäèí ôàéë I íåò èíêðåìåíòàëüíûõ áýêàïîâ I òîëüêî ëîêàëüíûå áýêàïû (íåëüçÿ ñäåëàòü mydumper | ssh remotehost) I ìåäëåííîå âîññòàíîâëåíèå
  • 8. mylvmbackup I ôèçè÷åñêèé áýêàï I + ëþáûå òèïû òàáëèö (InnoDB, TokuDB, etc.) I íåò èíêðåìåíòàëüíûõ áýêàïîâ I òîëüêî ëîêàëüíûå áýêàïû
  • 9. TokuDB Hot Backup I áèáëèîòåêà, ïåðåõâàòûâàþùàÿ I/O âûçîâû I ôàêòè÷åñêè LVM snapshot â userspace
  • 10. TokuDB Hot Backup I ôèçè÷åñêèé áýêàï I + ëþáûå òèïû òàáëèö (òåîðåòè÷åñêè) I íåò èíêðåìåíòàëüíûõ áýêàïîâ I òîëüêî ëîêàëüíûå áýêàïû I – âñÿ çàïèñü â áàçó äóáëèðóåòñÿ â ïðîöåññå áýêàïà
  • 11. MySQL Enterprise Backup I ôèçè÷åñêèé áýêàï I ïðîïðèåòàðíîå ÏÎ, äîñòóïíî ïî ïëàòíîé ïîäïèñêå I + ¾ãîðÿ÷èé¿ áýêàï äëÿ InnoDB I + èíêðåìåíòàëüíûå áýêàïû I + áýêàïû íà óäàë¼ííûå õîñò I + áûñòðîå âîññòàíîâëåíèå âñåé áàçû I - áîëüøîé ðàçìåð íà äèñêå I - íå ïîääåðæèâàåò íåêîòîðûå ðàñøèðåíèÿ XtraDB (Percona Server, MariaDB) I - íå ïîääåðæèâàåò TokuDB
  • 12. Percona XtraBackup I ôèçè÷åñêèé áýêàï I ñâîáîäíàÿ, áåñïëàòíàÿ àëüòåðíàòèâà MySQL Enterprise Backup I ïðàêòè÷åñêè 100% ñîâìåñòèìîñòü â ôóíêöèîíàëüíîñòè (+/- íþàíñû ðåàëèçàöèè) I ïîääåðæèâàåò MySQL, MariaDB, Percona Server, WebscaleSQL, . . .
  • 13. ×òî âûáðàòü? mydumper + Percona XtraBackup ïîêðûâàþò áîëüøèíñòâî ñëó÷àåâ I ñòàäàðò äå-ôàêòî äëÿ Percona Managed Services TokuDB? Òîãäà mylvmbackup ! I èñïîëüçóåòñÿ â Percona Cloud Tools Åñòü ïîäïèñêà íà MySQL Enterprise? I MySQL Enterprise Backup òîæå âàðèàíò! :)
  • 15. Áîëüøèå îáú¼ìû äàííûõ: mysqldump I mysqldump --innodb-optimize-keys â ïàêåòàõ Percona Server 5.1/5.5/5.6 I óáèðàåò âòîðè÷íûå èíäåêñû èç InnoDB òàáëèö I ïåðåñòðàèâàåò ïîñëå èìïîðòà äàííûõ “áûñòðûì” ìåòîäîì I çíà÷èòåëüíî óñêîðÿåò èìïîðò I ïîêà íå ðåàëèçîâàíî â MySQL (Bug #49120) I ïîêà íå ðåàëèçîâàíî â mydumper
  • 16. Áîëüøèå îáú¼ìû äàííûõ: PXB/MEB ¾Êîìïàêòíûå¿ áýêàïû â Percona XtraBackup innobackupex --compact /backup/dir/ ¾Skip unused pages¿ â MySQL Enterprise Backup mysqlbackup --skip-unused-pages /backupdir Ìåíüøå ðàçìåð íà äèñêå, íî áîëüøå âðåìåíè íà âîññòàíîâëåíèå!
  • 17. Áëîêèðîâêè Âñå óòèëèòû îáåùàþò ¾ãîðÿ÷èé¿ áýêàï. Íà ñàìîì äåëå èñïîëüçóþò áëîêèðîâêè äëÿ: I ñîãëàñîâàííîñòè ñ íåòðàíçàêöèîííûìè òàáëèöàìè I ñîãëàñîâàííîñòè .frm ñ äàííûìè I ñîãëàñîâàííîñòè master/slave êîîðäèíàò ñ êîïèåé äàííûõ
  • 18. Áëîêèðîâêè: FLUSH TABLES WITH READ LOCK  ÷¼ì ïðîáëåìà íà âûñîêîíàãðóæåííûõ ñåðâåðàõ? 1. Ñáðîñèòü query cache 2. Çàáëîêèðîâàòü âñå íîâûå çàïèñè 3. Äîæäàòüñÿ çàâåðøåíèÿ âñåõ âûïîëíÿþùèõñÿ çàïèñåé 4. Äîæäàòüñÿ çàâåðøåíèÿ âñåõ SELECT 5. Çàáëîêèðîâàòü COMMIT
  • 19. Áëîêèðîâêè: Backup locks â Percona Server 5.6 LOCK TABLES FOR BACKUP: I áëîêèðóåò DDL è çàïèñè â íåòðàíçàêöèîííûå òàáëèöû LOCK BINLOG FOR BACKUP: I áëîêèðóåò COMMIT
  • 20. Áëîêèðîâêè: FTWRL vs. Backup locks Percona XtraBackup: FLUSH TABLES WITH READ LOCK 1. ñêîïèðîâàòü InnoDB òàáëèöû 2. FLUSH TABLES WITH READ LOCK; 3. ñêîïèðîâàòü .frm, MyISAM, è ò.ä. 4. ïîëó÷èòü master/slave êîîðäèíàòû 5. çàâåðøèòü êîïèðîâàíèå REDO log 6. UNLOCK TABLES; Backup locks 1. ñêîïèðîâàòü InnoDB òàáëèöû 2. LOCK TABLES FOR BACKUP; 3. ñêîïèðîâàòü .frm, MyISAM, è ò.ä. 4. LOCK BINLOG FOR BACKUP; 5. çàâåðøèòü êîïèðîâàíèå REDO log 6. UNLOCK TABLES; 7. ïîëó÷èòü master/slave êîîðäèíàòû 8. UNLOCK BINLOG;
  • 21. Áëîêèðîâêè: FTWRL vs. Backup locks mysqldump --single-transaction I íå áëîêèðóåò ñåðâåð I íå ðàáîòàåò, åñëè åñòü MyISAM è/èëè DDL mysqldump --lock-all-tables I áëîêèðóåò ñåðâåð I ðàáîòàåò ñ MyISAM è DDL Percona Server: mysqldump -single-transaction --lock-for-backup: I íå áëîêèðóåò ñåðâåð I ðàáîòàåò ñ MyISAM è DDL
  • 24. Èíêðåìåíòàëüíûå áýêàïû Ðåàëèçàöèÿ èíêðåìåíòàëüíûõ áýêàïîâ â Percona XtraBackup è MySQL Enterprise Backup: I ñêîïèðîâàòü âñå ñòðàíèöû, äëÿ êîòîðûõ LSNîáíîâëåíèÿ LSNïîëíîãî áýêàïà Ïðîáëåìà äëÿ áîëüøèõ îáú¼ìîâ äàííûõ: I òðåáóåò ïîëíîãî ñêàíèðîâàíèÿ âñåõ äàííûõ
  • 25. Èíêðåìåíòàëüíûå áýêàïû Percona Server: innodb_track_changed_pages=1 I ñîõðàíÿåò bitmap èçìåí¼ííûõ ñòðàíèö â îòäåëüíûõ ôàéëàõ Percona XtraBackup: I àâòîìàòè÷åñêè èñïîëüçóåò bitmap ôàéëû âìåñòî ïîëíîãî ñêàíèðîâàíèÿ
  • 26. Èíêðåìåíòàëüíûå áýêàïû Percona Server: innodb_log_archive=1 I äóáëèðóåò REDO ëîã â îòäåëüíûõ ôàéëàõ Percona XtraBackup: I xtrabackup --prepare --log-arch-dir=/data/archived-logs/ ïðèêëàäûâàåò èçìåíåíèÿ áåç ïîëíîãî ñêàíèðîâàíèÿ
  • 27. Ïðîâåðêà öåëîñòíîñòè Ïðîáëåìà: êàê ïðîâåðèòü, ÷òî ñ áýêàïîì ¾âñ¼ â ïîðÿäêå¿? I ïðîâåðêà êîíòðîëüíûõ ñóìì, ñïèñêà ôàéëîâ, è ò.ä. íå ãàðàíòèðóåò öåëîñòíîñòü I íå ñ ÷åì ñðàâíèâàòü:
  • 28. Ïðîâåðêà öåëîñòíîñòè: ðåøåíèå Ïðåäëîæåíî ïîëüçîâàòåëåì â ñïèñêå ðàññûëêè: 1. Ñîçäàòü slave èç áýêàïà 1. pt-table-checksum äëÿ ïðîâåðêè öåëîñòíîñòè ðåïëèêàöèè 2. profit!
  • 29. Îáëàêà Êòî ïîääåðæèâàåò cloud backups? I mysqldump/mydumper + ñòîðîííèå óòèëèòû (s3cmd) I MySQL Enterprise Backup ñ âåðñèè 3.10.2 I Percona XtraBackup 2.3 (ïîêà alpha)
  • 30. Îáëàêà MySQL Enterprise Backup I ñåé÷àñ: Amazon S3 I â ïëàíàõ: ? Percona XtraBackup: I ñåé÷àñ: OpenStack I â ïëàíàõ: Amazon S3, Amazon Glacier
  • 31. Îáëàêà: Percona XtraBackup Ñîçäàíèå áýêàïà: innobackupex --stream=xbstream /tmp | xbcloud put --storage=swift --swift-container=testbackup --swift-user=user --swift-password=password --swift-url=http://my.cloud.com/ --swift-key=testkey --parallel=10
  • 32. Îáëàêà: Percona XtraBackup Âîññòàíîâëåíèå èç áýêàïà: xbcloud get --storage=swift --swift-container=testbackup --swift-user=user --swift-key=testkey --swift-url=http://my.cloud.com/ --parallel=10 | xbstream -x /data/backup innobackupex --apply-log /data/backup innobackupex --copy-back /data/backup