• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Резервное копирование MySQL в экстремальных условиях
 

Резервное копирование MySQL в экстремальных условиях

on

  • 170 views

Мастер-класс для DevConf 2014

Мастер-класс для DevConf 2014

Statistics

Views

Total Views
170
Views on SlideShare
170
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Резервное копирование MySQL в экстремальных условиях Резервное копирование MySQL в экстремальных условиях Presentation Transcript

    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 1 Safe Harbour Statement THE FOLLOWING 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 O FUNCTIONALITY DESCRIBED FOR ORACLE’S PRODUCTS REMAINS AT THE SOLE DISCRETION OF ORACLE.
    • Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 2 Insert Picture Here Резервное копирование MySQL в экстремальных условиях Света Смирнова Ведущий инженер технической поддержки Слайды подготовлены при участии Matt Lord, MySQL Product Manager
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 3 Содержание  Введение  Что мы будем обсуждать  Копирование при: • Недостатке места • Нехватке времени • Ограниченных системных ресурсах  Как минимизировать влияние блокировок  Что делать при повреждении данных
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 4 Insert Picture Here Введение
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 5 О себе Света Смирнова  Инженер технической поддержки MySQL  Представитель поддержки в команде MySQL Enterprise Backup (MEB)  Постоянно работаю со сложными случаями при резервном копировании • Большинству клиентов стандартные рекомендации не подходят • Паттерны для сложных проблем
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 6 Зачем нужны бэкапы? 1. Это ваша страховка на случай:  Поломки оборудования  Ошибки пользователя  Программной ошибки 2. Вы можете их использовать, чтобы создать новые инсталляции 3. Клонировать MySQL сервера для репликации 4. Данные -это наиболее важная часть вашей интеллектуальной собственности. Вы должны их защищать от потерь.
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 7 Головоломка бэкапа 1. Инструменты, осуществляющие бэкап, гарантируют надёжность при помощи:  Табличных блокировок  Долговременных транзакций  Глобальных блокировок 2. Операции экспорта создают дополнительную нагрузку 3. Они требуют много свободного места на диске Качественно, быстро и дёшево не бывает
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 8 Головоломка бэкапа Как же осуществлять экспорт данных с рабочей системы, где  Сервера постоянно выполняют критичные бизнес-операции  Приложение нельзя остановить ни на секунду  Любое замедление неприемлемо  Данных настолько много, что сложно найти ещё столько же для бэкапа ?
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 9 Итак, как же осуществлять бэкап...  при недостатке места на локальном диске?  с минимальными ресурсозатратами?  с минимальным влиянием на MySQL сервер, с которого нужно скопировать данные?  когда нет времени?  без блокировки таблиц и всего MySQL сервера?  когда данные уже повреждены?
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 10 О чём я не буду рассказывать  Полные бэкапы  Частичные бэкапы  Инкрементные бэкапы  Автоматизация бэкапов  Обычные приёмы оптимизации бэкапов Всё описано в официальной документации и white papers Существуют стандартные best practices Я уже рассказывала об этом  На прошлой Devconf  http://2013.devconf.ru/offers/12
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 11 Инструменты  Только те, которые я сама использую  Основной инструмент: MySQL Enterprise Backup • Бинарный горячий бэкап • Коммерческий, доступен как часть подписки MySQL Enterprise  Можно заменить open source аналогом Percona Xtrabackup • Но я с ним не работаю!  Поэтому я всегда буду использовать MEB, а вы можете взять любой из этих двух инструментов  Я упомяну, если возможность недоступна для Xtrabackup  Все остальные инструменты бесплатны Только MEB! Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 12 Insert Picture Here Нехватка места на диске
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 13 Когда мало места на диске  При очень большом размере data директории  Когда осталось мало места на локальном диске  Вы можете использовать mysqldump, но он слишком медленный.  Можно просто скопировать файлы, но придётся остановить mysqld  Процесс MEB должен быть запущен на той же машине, что и MySQL сервер! shell# mysqldump –host=remote.host.com –port=3306 –single-transaction –master-data=1 –all-databases >backup.sql shell# mysqldump –host=remote.host.com –port=3306 –single-transaction –master-data=1 –all-databases >backup.sql
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 14 Опции экспорта  Сжатые бэкапы: --compress, --compress-level=LEVEL, --compress- method=ALGORITHM  Стриминг при помощи SSH  Бэкап на ленту, при использовании интерфейса SBT  Частичные бэкапы: • --include-tables, --exclude-tables, --with-tts • --include, --databases  Инкрементные бэкапы  Не копируйте пустые и неиспользуемые страницы: --skip-unused-pages Только MEB! Только MEB! Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 15 Опции экспорта: XtraBackup аналоги  Частичные бэкапы: • --include, --databases, --tables-file  Не копируйте secondary индексы: --compact  TTS support • Поддерживает на уровне restore: --apply-log + --export • Вам придётся вручную импортировать таблицу при помощи ALTER TABLE DISCARD TABLESPACE, с последующим копированием файлов и ALTER TABLE IMPORT TABLESPACE
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 16 Опции экспорта: сжатие  Возможность сжатия до 80% и больше! shell# mysqlbackup --backup-dir=/opt/mysql/backups/uncompressed > backup 2>/dev/null && du -csh /opt/mysql/backups/uncompressed 334M /opt/mysql/backups/uncompressed 334M total shell# mysqlbackup --backup-dir=/opt/mysql/backups/compressed > --compress --compress-level=9 backup 2>/dev/null && du –csh > /opt/mysql/backups/compressed 81M /opt/mysql/backups/compressed 81M total shell# mysqlbackup --backup-dir=/opt/mysql/backups/uncompressed > backup 2>/dev/null && du -csh /opt/mysql/backups/uncompressed 334M /opt/mysql/backups/uncompressed 334M total shell# mysqlbackup --backup-dir=/opt/mysql/backups/compressed > --compress --compress-level=9 backup 2>/dev/null && du –csh > /opt/mysql/backups/compressed 81M /opt/mysql/backups/compressed 81M total
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 17 Опции экспорта: сжатие ● Три алгоритма ● LZ4 ● Самый быстрый ● По умолчанию ● LZMA ● Самый эффективный ● ZLIB ● По умолчанию <= 3.9 ● Девять уровней ● Только ZLIB и LZMA Только MEB! XtraBackup использует алгоритм quicklz
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 18 Опции экспорта: стриминг  Можно полностью отказаться от локального хранения Просто укажите директорию для временных файлов на время бэкапа Поддерживаются частичные бэкапы  Должна быть достаточно большой, чтобы сохранить все изменеия, случившиеся во время экспорта  Но не нужно дополнительного места для данных shell# mysqlbackup --backup-image=- --backup-dir=/tmp/backup > --disable-manifest backup-to-image 2>/dev/null | ssh matt@solo > "cat > /tmp/backup.img“ shell# ssh matt@solo "ls -lh /tmp/backup.img" -rw-r--r-- 1 matt staff 333M Sep 10 15:54 /tmp/backup.img shell# mysqlbackup --backup-image=- --backup-dir=/tmp/backup > --disable-manifest backup-to-image 2>/dev/null | ssh matt@solo > "cat > /tmp/backup.img“ shell# ssh matt@solo "ls -lh /tmp/backup.img" -rw-r--r-- 1 matt staff 333M Sep 10 15:54 /tmp/backup.img
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 19 Опции экспорта: интерфейс SBT  Можно полностью отказаться от локального хранения  Просто передавайте бэкап MMS, что использует ваша компания – Oracle Secure Backup (полностью поддерживается) – IBM Tivoli Storage Manager – Symantec NetBackup – EMC NetWorker shell-osb# mysqlbackup --backup-image=sbt:backup-mattprod-2013-09-08 > --backup-dir=/tmp/backup backup-to-image shell-tsm# mysqlbackup --backup-image=sbt:my-tsm–backup > --sbt-lib-path=/usr/lib/libobk.so > --sbt-environment=“TDPO_OPTFILE=/opt/ibm/tsm/tdpo.opt” > --backup-dir=/tmp/backup backup-to-image shell-osb# mysqlbackup --backup-image=sbt:backup-mattprod-2013-09-08 > --backup-dir=/tmp/backup backup-to-image shell-tsm# mysqlbackup --backup-image=sbt:my-tsm–backup > --sbt-lib-path=/usr/lib/libobk.so > --sbt-environment=“TDPO_OPTFILE=/opt/ibm/tsm/tdpo.opt” > --backup-dir=/tmp/backup backup-to-image Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 20 Опции экспорта: частичный бэкап  Копируйте только важные базы и таблицы  MEB поддерживает InnoDB transportable tablespaces во время бэкапа shell# mysqlbackup --include=sakila.* --only-innodb-with-frm=related > --backup-dir=/opt/mysql/backups backup shell# mysqlbackup --use-tts=with-minimum-locking > --include=employees.* --backup-dir=/opt/mysql/backups backup shell# mysqlbackup --include=sakila.* --only-innodb-with-frm=related > --backup-dir=/opt/mysql/backups backup shell# mysqlbackup --use-tts=with-minimum-locking > --include=employees.* --backup-dir=/opt/mysql/backups backup Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 21 Опции экспорта: инкрементный бэкап  Копируйте только то, что изменилось с момента последнего бэкапа shell# mysqlbackup --incremental > --incremental-base=dir:/opt/mysql/backup/monday > --incremental-backup-dir=/opt/mysql/backup/tuesday backup shell# mysqlbackup --incremental > --incremental-base=history:last_backup --with-timestamp > --incremental-backup-dir=/opt/mysql/backup backup shell# mysqlbackup --incremental > --incremental-base=dir:/opt/mysql/backup/monday > --incremental-backup-dir=/opt/mysql/backup/tuesday backup shell# mysqlbackup --incremental > --incremental-base=history:last_backup --with-timestamp > --incremental-backup-dir=/opt/mysql/backup backup
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 22 Опции экспорта: не копируйте пустые и неиспользуемые страницы  Укажите, что вы не хотитет копировать пустые и неиспользуемые страницы  Используйте эту опцию в сочетании с компрессией для большей эффективности shell# mysqlbackup --backup-dir=/opt/mysql/backups/compressed > --compress --compress-level=9 --skip-unused-pages backup shell# mysqlbackup --backup-dir=/opt/mysql/backups/compressed > --compress --compress-level=9 --skip-unused-pages backup Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 23 Опции восстановления  В MEB 3.9+ возможно восстановление за один шаг – Даже для сжатого бэкапа и бэкапа в виде файла  Эта возможность позволяет избежать ненужного дублирования данных во время восстановления shell# ssh matt@solo "cat /opt/mysql/backups/backup.img" | mysqlbackup > --backup-dir=/tmp/backup --uncompress --backup-image=- > --datadir=/var/lib/mysql --innodb_log_group_home_dir=. > --innodb_log_files_in_group=4 --innodb_log_file_size=2G > --innodb_data_file_path="ibdata1:1G:autoextend" > copy-back-and-apply-log shell# ssh matt@solo "cat /opt/mysql/backups/backup.img" | mysqlbackup > --backup-dir=/tmp/backup --uncompress --backup-image=- > --datadir=/var/lib/mysql --innodb_log_group_home_dir=. > --innodb_log_files_in_group=4 --innodb_log_file_size=2G > --innodb_data_file_path="ibdata1:1G:autoextend" > copy-back-and-apply-log Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 24 Insert Picture Here Недостаток времени
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 25 Мне нужен бэкап сию минуту!  Невозможно установить время для проведения административных работ более 30 минут или даже меньшего срока  Бэкап может срочно потребоваться для установки дополнительного сервера  Требуется срочно переместить на другой сервер одну или несколько баз данных
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 26 Методы экспорта  Бэкап файловой системы – Требует полностью остановить mysqld или, в лучшем случае, блокировать глобально  Логические бэкапы (mysqldump) – ОЧЕНЬ медленные, требуют много места на диске и используют слишком много блокировок  MySQL Enterprise Backup (MEB) – Горячие бэкапы транзакционного табличного движка InnoDB – Поддерживает много опций, регулирующих производительность и контроль ресурсов – Поддерживает частичные бэкапы и transportable tablespaces – Поддерживает инкрементные бэкапы
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 27 MySQL Enterprise Backup В 49 раз быстрее mysqldump
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 28 MySQL Enterprise Backup В 80 раз быстрее mysqldump
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 29 MEB: опции производительности  Увеличьте количество буферов для CPU-интенсивных многопоточных операций: --number-of-buffers  Увеличьте количество нитей, используемых для чтения: --read-threads  Увеличьте количество нитей, используемых для записи: --write-threads  Увеличьте количестов CPU нитей: --process-threads  Увеличьте максимальное количество памяти, используемой для кэширования: --limit-memory  Не копируйте неиспользуемые страницы InnoDB: --skip-unused-pages Только MEB! Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 30 Опции производительности: XtraBackup аналоги  Количество нитей, осуществляющих компрессию • --compress-threads  Количество нитей, используемых для копирования файлов *.ibd • --parallel  Ограничить количество операций IO в секунду • --throttle
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 31 Пример: сколько времени?  2G datadir, 1 7.2K HDD, 4 vCPUs , 16G of RAM shell# time mysqlbackup --backup-dir=/opt/mysql/backups --with-timestamp backup 2>/tmp/log.txt real 0m34.403s user 0m3.069s sys 0m2.043s shell# time mysqlbackup --backup-dir=/opt/mysql/backups > --process-threads=4 --limit-memory=1000 --skip-unused-pages > --with-timestamp backup 2>/tmp/log.txt real 0m29.883s user 0m3.121s sys 0m1.889s shell# time mysqlbackup --backup-dir=/opt/mysql/backups --with-timestamp backup 2>/tmp/log.txt real 0m34.403s user 0m3.069s sys 0m2.043s shell# time mysqlbackup --backup-dir=/opt/mysql/backups > --process-threads=4 --limit-memory=1000 --skip-unused-pages > --with-timestamp backup 2>/tmp/log.txt real 0m29.883s user 0m3.121s sys 0m1.889s  Грамотное использование опций сокращает время бэкапа до 50% на машинах с большими наборами данных, используемых крупными предприятиями
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 32 Insert Picture Here Нехватка системных ресурсов
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 33 Почему приложение вдруг стало работать медленно?  Бэкапы могут сильно загружать процессор (CPU intensive)  Бэкапы могут нагружать диск (быть I/O intensive), что, в свою очередь, увеличивает CPU cycles в IO_Wait  Бэкапы могут захватывать различные блокировки MySQL сервера  Так как же экспортировать данные и при этом не переживать значительных замедлений в работе приложения…
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 34 Опции бэкапа  Ограничить использование памяти: --limit-memory  Ограничить использование CPU: --process-threads  Ждать X ms после копирования каждого блока данных: --sleep  Не использовать блокировки: --no-locking, --innodb-only  Ограничить операции ввода-вывода: --read-threads, --write-threads  Не копировать неиспользуемые страницы: --skip-unused-pages  Ограничить использование ресурсов на уровне операционной системы: cgroups, taskset, cpulimit, etc. Только MEB! Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 35 Пример: использование ресурсов  2G datadir, 1 7.2K HDD, 4 vCPUs , 16G of RAM shell# /usr/bin/time -f 'Exec Time: %E, CPU: %P, MEM: %MKB, IO: %O' > mysqlbackup --backup-dir=/opt/mysql/backups --with-timestamp > backup 2>&1 | tail -1 Exec Time: 0:23.11, CPU: 21%, MEM: 951648KB, IO: 4229360 shell# taskset -c 1 /usr/bin/time -f > 'Exec Time: %E, CPU: %P, MEM: %MKB, IO: %O' mysqlbackup > --backup-dir=/opt/mysql/backups --limit-memory=50 > --process-threads=1 --skip-unused-pages --no-locking --sleep=2000 > --with-timestamp backup 2>&1 | tail -1 Exec Time: 4:22.06, CPU: 1%, MEM: 222096KB, IO: 3384064 shell# /usr/bin/time -f 'Exec Time: %E, CPU: %P, MEM: %MKB, IO: %O' > mysqlbackup --backup-dir=/opt/mysql/backups --with-timestamp > backup 2>&1 | tail -1 Exec Time: 0:23.11, CPU: 21%, MEM: 951648KB, IO: 4229360 shell# taskset -c 1 /usr/bin/time -f > 'Exec Time: %E, CPU: %P, MEM: %MKB, IO: %O' mysqlbackup > --backup-dir=/opt/mysql/backups --limit-memory=50 > --process-threads=1 --skip-unused-pages --no-locking --sleep=2000 > --with-timestamp backup 2>&1 | tail -1 Exec Time: 4:22.06, CPU: 1%, MEM: 222096KB, IO: 3384064
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36 Insert Picture Here Минимизация блокировок
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 37 MEB: опции, регулирующие блокировки  Исключить ЛЮБЫЕ блокировки: --no-locking (небезопасно, если у вас есть нетранзакционные таблицы)  Экспортировать только транзакционные данные: --innodb-only  Инкрементный бэкап, используя только redo log: --incremental-with- redo-log-only  Частичные бэкапы с минимальными блокировками: --use-tts=with- minimum-locking Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 38 Разве бэкапы MEB не “горячи”?  FLUSH TABLES WITH READ LOCK используется при окончании работы – Необходимо, чтобы получить снапшот нетранзакционных данных  Можно избежать при помощи опций: – Не брать никаких локов: --no-locking – Экспортировать только таблицы InnoDB: --only-innodb[-with-frm] Только MEB!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 39 Что делать с нетранзакционными данными?  mysqlhotcopy – блокирует и копирует файлы таблиц по одной  mysqldump – блокирует и экспортирует каждую таблицу в SQL, XML или CSV файл  FS snapshots – скопируйте файлы таблиц  Используйте MySQL Replication Slave для бэкапов  mysqlbinlog –read-from-remote-server --raww  Количество нетранзакционных данных будет продолжать уменьшаться в MySQL 5.7
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 40 Итоги: экспорт с минимальными затратами Ограничьте количество используемой памяти:  MEB: --limit-memory, --sleep, --[read|write|process]-threads  Перенаправьте бэкап на удалённую машину Копируйте столько данных, сколько необходимо:  MEB: частичные бэкапы с опцией --use-tts=with-minimum-locking  MEB: не копируйте неиспользуемые страницы --skip-unused-pages (только InnoDB)  MEB: инкрементные бэкапы, использующие только redo log (только InnoDB) Используйте полностью неблокирующие бэкапы:  MEB: --only-innodb, --only-innodb-with-frm, --no-locking – Небезопасно для файлов .frm и нетранзакционных данных
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 41 Insert Picture Here Повреждённые данные
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 42 Бэкапы и повреждённые данные Иногда таблицы повреждаются! Если данные на рабочей машине повреждены, но бэкап в порядке:  Полностью или частично (--with-tts) восстановите данные  Накатите изменения и бинарных логов Если данные повреждены и на рабочей машине, и в бэкапе (бэкапа нет):  InnoDB – --innodb_force_recovery – SELECT INTO OUTFILE  MyISAM – myisamchk
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 43 Бэкапы и повреждённые данные Что делать если:  У вас есть только полный бэкап, сделанный MEB, но вам нужно восстановить одну таблицу  Вы не можете запустить ещё один MySQL сервер  Ваша версия MySQL не поддерживает TTS MyISAM  Просто скопируйте файлы .frm, .MYI, и .MYD InnoDB  Так просто не получится  Потому что каждая таблица должна иметь одинаковый ID в shared tablespace и на бэкапе, и на рабочем сервере
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 44 Бэкапы и повреждённые данные: полный Backup и InnoDB Если вы можете развернуть новую инсталляцию MySQL на отдельном сервере  Сделайте это!  Если ваша версия MySQL поддерживает TTS – Скопируйте таблицу при помощи MEB и опции --use-tts – Восстановите её
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 45 Бэкапы и повреждённые данные: полный бэкап и InnoDB Если вы не можете!  Задачка  Каждая InnoDB таблица должна иметь одинаковый ID в shared tablespace и на бэкапе, и на рабочем сервере – Они могу совпадать, если: – Это бэкап того самого сервера – Вы изначально клонировали этот сервер из данного бэкапа – и – Вы используете опцию –innodb-file-per-table – Просто скопируйте файл .ibd
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 46 Бэкапы и повреждённые данные: полный бэкап и InnoDB Если ID не одинаково, но вы используете опцию –innodb-file_per_table  Восстановите вручную – Имитируйте внутренний InnoDB table counter – Запустите новый MySQL сервер – Создавайте, затем удаляйте (drop) таблицы с той же структурой, что и оригинальная до тех пор, пока counter не достигнет нужного значения – Импортируйте таблицу из бэкапа на подготовленный MySQL сервер – Скопируйте и восстановите таблицу на рабочем сервере • mysqlbackup –use-tts –include-tables=dbname.tablename backup • mysqldump dbname tablename
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 47 Бэкапы и повреждённые данные: полный бэкап и InnoDB Как узнать, что набирать в команде CREATE TABLE ?  mysqlfrm, the FRM reader придёт на помощь $ mysqlfrm --basedir=/usr/local/bin/mysql test1:city.frm --port=3333 # Starting the spawned server on port 3333 ... done. # Reading .frm files # # Reading the city.frm file. # # CREATE statement for city.frm: # CREATE TABLE `test1`.`city` ( … $ mysqlfrm --basedir=/usr/local/bin/mysql test1:city.frm --port=3333 # Starting the spawned server on port 3333 ... done. # Reading .frm files # # Reading the city.frm file. # # CREATE statement for city.frm: # CREATE TABLE `test1`.`city` ( …
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 48 Insert Picture Here Заключение
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 49 Заключение  Бэкапы необходимы  Ограничения, налагаемые работой приложений, - это жизненный факт  Сложные проблемы могут быть решены при помощи MySQL Enterprise Backup  MySQL Support поможет, если вы столкнётесь с проблемой
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 50 Ссылки Документация:  http://dev.mysql.com/doc/mysql-enterprise-backup/3.10/en/index.html  http://dev.mysql.com/doc/mysql-utilities/1.4/en/mysqlfrm.html  https://blogs.oracle.com/mysqlenterprisebackup/ 30-дневная пробная версия MySQL Enterprise Backup:  https://edelivery.oracle.com/
    • Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 51 Insert Picture HereСПАСИБО!