SlideShare a Scribd company logo
<Insert Picture Here>

Как делать backup MySQL
Света Смирнова
Ведущий инженер технической поддержки MySQL
Содержание
•
•
•
•
•

Зачем нужны бэкапы
Типы
Восстановление
Инструменты
Стратегии
•Зачем нужны бэкапы?
• Чтобы восстановить данные после аварии
– Железо
• Повреждения диска
– Пользовательская ошибка
• Запросы, невовремя изменившие данные, такие как
DROP TABLE очень_нужная_таблица
– Программные
• Ошибки программиста
• SQL инъекции
•Зачем нужны бэкапы?
• Что ещё можно с ними делать?
– Разворачивать
• Перенести данные с девелоперской машины на
рабочую
– Настроить репликацию
– Отлаживать
• Создать песочницу с актуальными данными
– Ваши идеи!
•Что нужно сохранять?
• Данные
– Таблицы
– Shared InnoDB tablspaces
– Другие объекты баз данных
• Представления
• Триггеры
• ...
– Бинарные логи
– Другие файлы
• Логи InnoDB
• master.info, relay-log.info
• Лог ошибок
• General query log, slow query log, ...
•Типы бэкапов: формат
• Бинарные
– Бинарные данные
• Логические
– В виде SQL
– CSV
– XML
•Типы бэкапов: взаимодействие с сервером
• Оффлайн
– MySQL сервер должен быть остановлен
• Онлайн
– MySQL сервер должен работать и быть доступным
•Типы бэкапов: доступ к данным
• Холодный
– Блокируется доступ к копируемым объектам
• Чтение
• Запись
• Тёплый
– Блокируется доступ только на запись
• Горячий
– Полный доступ к копируемым объектам
•Типы бэкапов: что копируем
• Полный
– Копируются все объекты
• Частичный
– Только некоторые объекты копируются
• Например, несколько таблиц
• Инкрементный
– Копируются только изменения, произошедшие после
последнего бэкапа
•Восстановление
• Время — это важно
• Разработайте план
– Насколько просто?
– Какая последовательность действий?
• Запишите и держите под рукой
•Инструменты
• Зачем их столько? Разве одного не хватит?
– Бэкапы бывают логическими и бинарными
– Восстановление может требовать или не требовать остановки
сервера
– Операционные системы предоставляют свои инструменты
• Разве не привлекательна возможность сразу скопировать не
только данные базы, но и всей системы?
•Инструменты: cp
• Бэкап
– Бинарный
– Офлайн
• Восстановление
– Офлайн
• cp ­R datadir backupdir
•Инструменты: LVM и системные средства
• Бэкап
– Бинарный
– Офлайн
• Восстановление
– Офлайн
•Инструменты: mysqlhotcopy
• Бэкап
– Бинарный
– Онлайн
– Тёплый
– Только для MyISAM и Archive
• Восстановление
– Онлайн
– Оффлайн
– Тёплое
• mysqlhotcopy dbname1 ... dbname2 backupdir
•Инструменты: MySQL Enterprise Backup (MEB)
• Бэкап
– Бинарный для InnoDB
– Тёплый для остального
• Восстановление
– Оффлайн
• Аналоги
– Percona XtraBackup
•Инструменты: MEB
• Бэкап
– ./mysqlbackup ­­port=13000 —protocol=tcp  
­­user=root ­­password 
­­backup­dir=/home/admin/backups backup
• Восстановление
– ./mysqlbackup ­­backup­dir=/path/to/backup 
apply­log
– ./mysqlbackup —defaults­file=path_to_my.cnf  
­­backup­dir=path_to_backup_directory copy­back
•Инструменты: MEB
• Инкрементный бэкап
– mysqlbackup —defaults­file=/home/pekka/.my.cnf  
­­incremental 
­­incremental­base=dir:/incr­backup/wednesday  
­­incremental­backup­dir=/incr­backup/thursday  
backup
• Сжатый бэкап
– mysqlbackup ­­compress 
­­defaults­file=/home/pekka/my.cnf backup
• Бэкап в файл
– mysqlbackup —backup­image=/backups/sales.mbi  
­­backup­dir=/backup­tmp backup­to­image
•Инструменты: MEB — частичный бэкап
• Все InnoDB таблицы без *frm
– mysqlbackup —defaults­file=/home/pekka/.my.cnf  
­­only­innodb backup
– опция innodb­file­per­table обязательна
• Все InnoDB таблицы c *frm
– mysqlbackup —defaults­file=/home/pekka/.my.cnf  
­­only­innodb­with­frm backup
• Выборочные InnoDB таблицы без *frm
– mysqlbackup —defaults­file=/home/pekka/.my.cnf  
­­include='test.ib.*' ­­only­innodb backup
•Инструменты: mysqldump
• Бэкап
– Логический
– Онлайн
– Тёплый
• Восстановление
– Онлайн
• mysqldump dbname >backup.sql
• Аналоги
– SELECT INTO OUTFILE
– mydumper
– MySQL Utilities
• mysqldbcopy
• mysqldbexport
•Инструменты: репликация
• Бэкап
– Бинарный
– Онлайн
– Горячий
• Восстановление
– Зависит от обстоятельств
• В версии 5.6
– mysqlbinlog —read­from­remote­server  
­­host=host_name —raw 
­­stop­never binlog.000130
•Планирование: очерёдность
•
•
•
•

Еженедельный полный бэкап
Ежедневный инкрементный бэкап
Сохраняйте бинарные логи!
Используйте планировщик задач, имеющийся у вас в системе
– cron в Linux/UNIX

– Task Scheduler в Windows
•Планирование: время жизни
•
•
•
•
•
•

Месяц: полный бэкап
Еженедельный полный бэкап
Ежедневный инкрементальный бэкап
Храните бинарные логи
Используйте планировщик задач, имеющийся у вас в системе
Создайте политику EOL
•Планирование: где хранить
•
•
•
•

Диск
Сеть
Streaming
Лента
•Планирование: хранение на ленте
• MEB может использовать media management software (MMS) для
того, чтобы перенаправить бэкап сразу на ленту
• SBT — это API, принадлежащее Oracle, доступное как shared library
и позволяющее коммуницировать с MMS
• MEB регулярно тестируется с Oracle Secure Backup (OSB), есть
успешный опыт использования с Symanted NetBackup и IBM Tivoly
Storage Management (TSM)
• mysqlbackup ­­port=3306 ­­protocol=tcp –user=root  
­­password 
­­backup­image=sbt:backup­shoeprod­2011­05­30 
­­sbt­lib­path=/opt/Other­MMS.so 
­­backup­dir=/backup backup­to­image
•Заключение
•
•
•
•

Бэкап — это важно
Планируйте в соответствии со своими задачами
Используйте правильный инструмент
Думайте о том как вы будете восстанавливать, планируя методы
бэкапа
•Ссылки
• http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
• http://dev.mysql.com/doc/refman/5.6/en/mysqlhotcopy.html
• http://dev.mysql.com/doc/mysql-enterprise-backup/3.8/en/index.html
• http://feedproxy.google.com/~r/MeetTheMysqlExperts/~3/R4TXxzvKoqA/11087746_MySQL_112311.mp3

• https://blogs.oracle.com/mysqlenterprisebackup/
• https://blogs.oracle.com/mysqlenterprisebackup/entry/meb_support_to_netbackup_mms
• https://blogs.oracle.com/svetasmirnova/entry/story_of_success_mysql_enterprise
• https://www.mysql.com/why-mysql/white-papers/mysql-enterprise-backup-and-symantec-netbackup/
?
СПАСИБО!
The preceding 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.

More Related Content

PDF
Отладка производительности СУБД MySQL
PDF
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
PDF
Что нужно знать о трёх топовых фичах MySQL
PDF
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
PDF
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
PDF
Что нового в MySQL 8.0? / Дмитрий Ленев (Oracle)
PDF
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
PDF
Эффективная отладка репликации MySQL
Отладка производительности СУБД MySQL
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Что нужно знать о трёх топовых фичах MySQL
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Что нового в MySQL 8.0? / Дмитрий Ленев (Oracle)
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
Эффективная отладка репликации MySQL

What's hot (20)

PDF
Deployment to production with an unexpected load
PDF
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
PPTX
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
PDF
Новые возможности отладки MySQL 5.7 на практике
PDF
"Производительность MySQL: что нового?"
PDF
MariaDB 10.1 - что нового.
PDF
Введение в отладку производительности MySQL приложений
PDF
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
PDF
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
PPTX
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
PDF
How to cook a blockchain and not get burned
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PPTX
MyRocks: табличный движок для MySQL на основе RocksDB
PDF
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
PDF
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
PDF
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
PDF
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
PDF
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
PDF
За гранью NoSQL: NewSQL на Cassandra
PDF
Devconf2013 new-features-in-mysql-and-mariadb
Deployment to production with an unexpected load
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
Новые возможности отладки MySQL 5.7 на практике
"Производительность MySQL: что нового?"
MariaDB 10.1 - что нового.
Введение в отладку производительности MySQL приложений
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
How to cook a blockchain and not get burned
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
MyRocks: табличный движок для MySQL на основе RocksDB
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
За гранью NoSQL: NewSQL на Cassandra
Devconf2013 new-features-in-mysql-and-mariadb
Ad

Similar to Как делать backup MySQL (20)

PDF
Резервное копирование MySQL в экстремальных условиях
PDF
Percona XtraBackup: экспертные возможности (Алексей Копытов)
PPTX
СУБД 2013 Лекция №9 "Безопасность баз данных"
PDF
Павел Пушкарев - Базы данных: легковесная реляционная высокопроизводительная ...
PDF
Introduction to MySQL Enterprise
PPTX
Организация надежного резервного копирования веб-проекта. Практика и подводны...
PPTX
Организация надежного резервного копирования веб-проекта. Практика и подводны...
PPTX
Mysql replication DevConf 2012
PPTX
High Load
PDF
Новый подход к резервному копированию БД - Zero Data Loss Recovery Appliance
PDF
Архитектуры Backup&recovery решений (Илья Космодемьянский)
ODP
Wonderful World Of Mysql Storage Engines Hl2008 Rus
PPTX
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
PPTX
Практический опыт использования некоторых современных решений репликации MySQL
PDF
Как мы готовим MySQL
PPTX
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
PDF
High Availability Solutions with MySQL
PPTX
Модели OPEN SOURCE компаний и можно ли выжить без OPEN CORE и ENTERPRISE EDITION
PPTX
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
PPTX
Как мы готовим MySQL
Резервное копирование MySQL в экстремальных условиях
Percona XtraBackup: экспертные возможности (Алексей Копытов)
СУБД 2013 Лекция №9 "Безопасность баз данных"
Павел Пушкарев - Базы данных: легковесная реляционная высокопроизводительная ...
Introduction to MySQL Enterprise
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Mysql replication DevConf 2012
High Load
Новый подход к резервному копированию БД - Zero Data Loss Recovery Appliance
Архитектуры Backup&recovery решений (Илья Космодемьянский)
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
Практический опыт использования некоторых современных решений репликации MySQL
Как мы готовим MySQL
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
High Availability Solutions with MySQL
Модели OPEN SOURCE компаний и можно ли выжить без OPEN CORE и ENTERPRISE EDITION
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Как мы готовим MySQL
Ad

More from Sveta Smirnova (20)

PDF
War Story: Removing Offensive Language from Percona Toolkit
PDF
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
PDF
Database in Kubernetes: Diagnostics and Monitoring
PDF
MySQL Database Monitoring: Must, Good and Nice to Have
PDF
MySQL Cookbook: Recipes for Developers
PDF
MySQL Performance for DevOps
PDF
MySQL Test Framework для поддержки клиентов и верификации багов
PDF
MySQL Cookbook: Recipes for Your Business
PDF
Introduction into MySQL Query Tuning for Dev[Op]s
PDF
Производительность MySQL для DevOps
PDF
MySQL Performance for DevOps
PDF
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
PDF
How to migrate from MySQL to MariaDB without tears
PDF
Modern solutions for modern database load: improvements in the latest MariaDB...
PDF
How Safe is Asynchronous Master-Master Setup?
PDF
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
PDF
How to Avoid Pitfalls in Schema Upgrade with Galera
PDF
How Safe is Asynchronous Master-Master Setup?
PDF
Introduction to MySQL Query Tuning for Dev[Op]s
PDF
Billion Goods in Few Categories: How Histograms Save a Life?
War Story: Removing Offensive Language from Percona Toolkit
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
Database in Kubernetes: Diagnostics and Monitoring
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Cookbook: Recipes for Developers
MySQL Performance for DevOps
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Cookbook: Recipes for Your Business
Introduction into MySQL Query Tuning for Dev[Op]s
Производительность MySQL для DevOps
MySQL Performance for DevOps
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to migrate from MySQL to MariaDB without tears
Modern solutions for modern database load: improvements in the latest MariaDB...
How Safe is Asynchronous Master-Master Setup?
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
How to Avoid Pitfalls in Schema Upgrade with Galera
How Safe is Asynchronous Master-Master Setup?
Introduction to MySQL Query Tuning for Dev[Op]s
Billion Goods in Few Categories: How Histograms Save a Life?

Как делать backup MySQL

  • 1. <Insert Picture Here> Как делать backup MySQL Света Смирнова Ведущий инженер технической поддержки MySQL
  • 3. •Зачем нужны бэкапы? • Чтобы восстановить данные после аварии – Железо • Повреждения диска – Пользовательская ошибка • Запросы, невовремя изменившие данные, такие как DROP TABLE очень_нужная_таблица – Программные • Ошибки программиста • SQL инъекции
  • 4. •Зачем нужны бэкапы? • Что ещё можно с ними делать? – Разворачивать • Перенести данные с девелоперской машины на рабочую – Настроить репликацию – Отлаживать • Создать песочницу с актуальными данными – Ваши идеи!
  • 5. •Что нужно сохранять? • Данные – Таблицы – Shared InnoDB tablspaces – Другие объекты баз данных • Представления • Триггеры • ... – Бинарные логи – Другие файлы • Логи InnoDB • master.info, relay-log.info • Лог ошибок • General query log, slow query log, ...
  • 6. •Типы бэкапов: формат • Бинарные – Бинарные данные • Логические – В виде SQL – CSV – XML
  • 7. •Типы бэкапов: взаимодействие с сервером • Оффлайн – MySQL сервер должен быть остановлен • Онлайн – MySQL сервер должен работать и быть доступным
  • 8. •Типы бэкапов: доступ к данным • Холодный – Блокируется доступ к копируемым объектам • Чтение • Запись • Тёплый – Блокируется доступ только на запись • Горячий – Полный доступ к копируемым объектам
  • 9. •Типы бэкапов: что копируем • Полный – Копируются все объекты • Частичный – Только некоторые объекты копируются • Например, несколько таблиц • Инкрементный – Копируются только изменения, произошедшие после последнего бэкапа
  • 10. •Восстановление • Время — это важно • Разработайте план – Насколько просто? – Какая последовательность действий? • Запишите и держите под рукой
  • 11. •Инструменты • Зачем их столько? Разве одного не хватит? – Бэкапы бывают логическими и бинарными – Восстановление может требовать или не требовать остановки сервера – Операционные системы предоставляют свои инструменты • Разве не привлекательна возможность сразу скопировать не только данные базы, но и всей системы?
  • 12. •Инструменты: cp • Бэкап – Бинарный – Офлайн • Восстановление – Офлайн • cp ­R datadir backupdir
  • 13. •Инструменты: LVM и системные средства • Бэкап – Бинарный – Офлайн • Восстановление – Офлайн
  • 14. •Инструменты: mysqlhotcopy • Бэкап – Бинарный – Онлайн – Тёплый – Только для MyISAM и Archive • Восстановление – Онлайн – Оффлайн – Тёплое • mysqlhotcopy dbname1 ... dbname2 backupdir
  • 15. •Инструменты: MySQL Enterprise Backup (MEB) • Бэкап – Бинарный для InnoDB – Тёплый для остального • Восстановление – Оффлайн • Аналоги – Percona XtraBackup
  • 16. •Инструменты: MEB • Бэкап – ./mysqlbackup ­­port=13000 —protocol=tcp   ­­user=root ­­password  ­­backup­dir=/home/admin/backups backup • Восстановление – ./mysqlbackup ­­backup­dir=/path/to/backup  apply­log – ./mysqlbackup —defaults­file=path_to_my.cnf   ­­backup­dir=path_to_backup_directory copy­back
  • 17. •Инструменты: MEB • Инкрементный бэкап – mysqlbackup —defaults­file=/home/pekka/.my.cnf   ­­incremental  ­­incremental­base=dir:/incr­backup/wednesday   ­­incremental­backup­dir=/incr­backup/thursday   backup • Сжатый бэкап – mysqlbackup ­­compress  ­­defaults­file=/home/pekka/my.cnf backup • Бэкап в файл – mysqlbackup —backup­image=/backups/sales.mbi   ­­backup­dir=/backup­tmp backup­to­image
  • 18. •Инструменты: MEB — частичный бэкап • Все InnoDB таблицы без *frm – mysqlbackup —defaults­file=/home/pekka/.my.cnf   ­­only­innodb backup – опция innodb­file­per­table обязательна • Все InnoDB таблицы c *frm – mysqlbackup —defaults­file=/home/pekka/.my.cnf   ­­only­innodb­with­frm backup • Выборочные InnoDB таблицы без *frm – mysqlbackup —defaults­file=/home/pekka/.my.cnf   ­­include='test.ib.*' ­­only­innodb backup
  • 19. •Инструменты: mysqldump • Бэкап – Логический – Онлайн – Тёплый • Восстановление – Онлайн • mysqldump dbname >backup.sql • Аналоги – SELECT INTO OUTFILE – mydumper – MySQL Utilities • mysqldbcopy • mysqldbexport
  • 20. •Инструменты: репликация • Бэкап – Бинарный – Онлайн – Горячий • Восстановление – Зависит от обстоятельств • В версии 5.6 – mysqlbinlog —read­from­remote­server   ­­host=host_name —raw  ­­stop­never binlog.000130
  • 21. •Планирование: очерёдность • • • • Еженедельный полный бэкап Ежедневный инкрементный бэкап Сохраняйте бинарные логи! Используйте планировщик задач, имеющийся у вас в системе – cron в Linux/UNIX – Task Scheduler в Windows
  • 22. •Планирование: время жизни • • • • • • Месяц: полный бэкап Еженедельный полный бэкап Ежедневный инкрементальный бэкап Храните бинарные логи Используйте планировщик задач, имеющийся у вас в системе Создайте политику EOL
  • 24. •Планирование: хранение на ленте • MEB может использовать media management software (MMS) для того, чтобы перенаправить бэкап сразу на ленту • SBT — это API, принадлежащее Oracle, доступное как shared library и позволяющее коммуницировать с MMS • MEB регулярно тестируется с Oracle Secure Backup (OSB), есть успешный опыт использования с Symanted NetBackup и IBM Tivoly Storage Management (TSM) • mysqlbackup ­­port=3306 ­­protocol=tcp –user=root   ­­password  ­­backup­image=sbt:backup­shoeprod­2011­05­30  ­­sbt­lib­path=/opt/Other­MMS.so  ­­backup­dir=/backup backup­to­image
  • 25. •Заключение • • • • Бэкап — это важно Планируйте в соответствии со своими задачами Используйте правильный инструмент Думайте о том как вы будете восстанавливать, планируя методы бэкапа
  • 26. •Ссылки • http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html • http://dev.mysql.com/doc/refman/5.6/en/mysqlhotcopy.html • http://dev.mysql.com/doc/mysql-enterprise-backup/3.8/en/index.html • http://feedproxy.google.com/~r/MeetTheMysqlExperts/~3/R4TXxzvKoqA/11087746_MySQL_112311.mp3 • https://blogs.oracle.com/mysqlenterprisebackup/ • https://blogs.oracle.com/mysqlenterprisebackup/entry/meb_support_to_netbackup_mms • https://blogs.oracle.com/svetasmirnova/entry/story_of_success_mysql_enterprise • https://www.mysql.com/why-mysql/white-papers/mysql-enterprise-backup-and-symantec-netbackup/
  • 27. ?
  • 29. The preceding 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.