Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

осипов Root Conf

1,628 views

Published on

Published in: Technology, Sports
  • Be the first to comment

осипов Root Conf

  1. 1. Maatkit — скрипты для MySQL Константин Осипов, Staff Engineer, Sun/MySQL kostja@sun.com
  2. 2. Что такое Maatkit • 20+ Perl скриптов для MySQL • open source: http://code.google.com/p/maatkit, http://groups.google.com/group/maatkit-discuss • автор - Baron Schwartz (@Percona) • stand-alone (зависит только от DBD::mysql) • download & run – не нужна инсталляция • документация – это код, --help всегда правильный
  3. 3. Что может Maatkit checksum и синхронизация таблиц • задерживать replication slaves • анализ slow query log • “плавная” архивация старых данных • распараллеливать dump или restore • многое другое... •
  4. 4. mt-table-checksum • гарантирует что данные на мастере и слейве – те же • на мастере выполняет: insert into <checksum table>  select <checksum query>  from <other table> • на слейве: select <slave_checksum> == <master_checksum>  from <checksum_table> • разные данные -> разное значение checksum
  5. 5. Флаги mk-table-checksum • --chunk -- частями, --sleep — постепенно • неограниченное число хостов • пример: mk­table­checksum ­­replicate=maatkit.checksum  ­­createreplicate ­­chnksize=1000  ­­sleep­coef=2 master_db_host • По завершению, проверить результаты на слейвах, в глубину 2: mk­table­checksum ­­replicate=maatkit.checksum  ­­replcheck 2 master_db_host
  6. 6. mk-table-sync • если replcheck нашла разницу, mk-table-sync может её устранить • может также использоваться отдельно Пример: mk­table­sync ­­sycntomaster  ­­replicate=maatkit.checksum  ­­execute slave_db_host
  7. 7. mk-slave-delay • полезно как страховка на случай human error • если случайно выполнен DROP TABLE на мастере, N минут чтобы остановить репликацию и исправить ситуацию • не замена бэкапам, а способ снизить downtime • не зависит от Seconds_behind_master, не читает логи • при этом даёт точный результат mk­slave­delay ­­delay=60m slave_db_host
  8. 8. mk-query-digest • mk-query-digest — GROUP BY для slow query log • работает и для других источников данных: mk­query­digest ­­processlit h=localhost • умеет читать MySQL логи, считать статистику, top10, худший в сэмпле и т.д. • Пример: mk­query­digest /path/to/slow_query_log
  9. 9. История с mk-query-digest • можно хранить отчёты в таблице • каждый запуск — отдельная строка • поиск «новых» проблемных запросов, график загрузки • Пример: mk­query­digest /path/to/slow_query_log  ­­review h,localhost,D=maatkit,t=review  ­­createreview ­­review­history  t=review_history ­­createreviewhistory • недавно добавлена. Планируется новый скрипт для работы с review history
  10. 10. Полный список mk-archiver mk-query-digest/profiler • • mk-audit mk-show-grants • • mk-checksum-filter mk-slave-delay • • mk-deadlock-checker mk-slave-find • • mk-duplicate-key-checker mk-slave-move • • mk-find mk-slave-prefetch • • mk-heartbeat mk-table-checksum • • mk-parallel-dump/restore mk-table-sync • • mk-profile-compact mk-visual-explain • •
  11. 11. Спасибо!
  12. 12. Что в разработке поддержка configuration files • стандартизация command line options • todo: http://code.google.com/p/maatkit/issues/list • можно sponsor a feature •

×