Your SlideShare is downloading. ×
0
<Insert Picture Here>




Making MySQL Administration a Breeze
A look into a MySQL DBA's toolchest
Lenz Grimmer
MySQL Comm...
The preceding is intended to outline our general product
direction. It is intended for information purposes only, and
may ...
Overview
• Tools for Linux/Unix only
• Toolkits (script collections) and individual tools with
  a MySQL focus
• Not cover...
Maatkit
• http://maatkit.org/
• Perl script collection
• >25 tools
• All tools are standalone
• Minimal dependencies
• Doc...
Openark kit
• http://code.openark.org/forge/openark-kit/
• Python script collection
• 10 tools
• BSD License
• Written by ...
Kontrollkit
• http://kontrollsoft.com/software-kontrollkit
• A collection of 13 scripts for making your daily
  MySQL DBA ...
Hack MySQL Kit (hmk)
• http://hackmysql.com/
• 4 tools (C, Perl)
   – mysqlreport - Make easy-to-read MySQL
     status re...
User account administration
Securich
• http://www.securich.com/
• Written by Darren Cassar (aka “MySQL Preacher”)
• Implemented as Stored Routines
• R...
oak-block-account
• Block or release connections for specific accounts
• Without changing privileges
• Optionally kill any...
Monitoring
mytop
• http://jeremy.zawodny.com/mysql/mytop/
• A top clone for MySQL
• Written in Perl
• Console based
• Monitoring of t...
innotop
• http://code.google.com/p/innotop/
• MySQL/InnoDB transaction/status monitor, inspired
  by mytop
• Perl
• Monito...
mycheckpoint
• http://code.openark.org/forge/mycheckpoint
• Python
• Monitoring utility with a strong emphasis on user
  a...
Backup
mk-parallel-dump/restore
• Multi-threaded SQL dumps
• One subdirectory per DB
• Dump Compression
• Backups can be split up...
mydumper
• https://launchpad.net/mydumper
• Developed in C (glib, pcre)
• Parallel Data Dumps
• Easy to parse output
• Reg...
xtrabackup
• https://launchpad.net/percona-xtrabackup
• Online backup for InnoDB / MyISAM
• 2010-04-12: Version 1.2 (incl....
mylvmbackup
• http://www.lenzg.net/mylvmbackup/
• Perl Script
• Fast creation of MySQL backups using LVM-
  Snapshots (Lin...
Auditing/Security
oak-security-audit
• Regular, automatic checking of
  – Non-local root-accounts
  – Anonymous user accounts
  – Accounts w...
Performance tuning
MySQL Tuning Primer
• https://launchpad.net/mysql-tuning-primer
• Shell script by Matthew Montgomery
• Takes information f...
mysqltuner
• https://launchpad.net/mysqltuner
• Perl
• Examines the database environment
• Provides performance tuning dat...
mysqlreport
• Part of the HackMySQL toolkit
• Well-documented Perl script
• Reports important MySQL status values
• Transf...
mext
• http://code.google.com/p/aspersa/
• Shell script
• BSD license
• Runs mysqladmin extended-status and
  formats it n...
Replication
Monitoring replication
• mk-heartbeat
 – Uses separate heartbeat table
 – Frequently updates a time stamp on the master an...
Monitoring replication (Cont.)
• oak-get-slave-lag
 – Reads master status and iterates through SHOW
   SLAVE STATUS
 – Tri...
Replication maintenance
• oak-purge-master-logs
 – Purges master logs while considering the replicating
   slaves
• mk-sla...
Q&A




 Questions, Comments?
Thank you!




    Lenz Grimmer <lenz@sun.com>
    http://lenzg.net/ | Twitter: @lenzgr
Upcoming SlideShare
Loading in...5
×

Making MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest

3,717

Published on

Slides of my talk at the MySQL Conference 2010
http://en.oreilly.com/mysql2010/public/schedule/detail/13268

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,717
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
93
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "Making MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest"

  1. 1. <Insert Picture Here> Making MySQL Administration a Breeze A look into a MySQL DBA's toolchest Lenz Grimmer MySQL Community Relations Manager
  2. 2. 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.
  3. 3. Overview • Tools for Linux/Unix only • Toolkits (script collections) and individual tools with a MySQL focus • Not covering generic base OS tools like vmstat, iostat or top • Open Source Software
  4. 4. Maatkit • http://maatkit.org/ • Perl script collection • >25 tools • All tools are standalone • Minimal dependencies • Docs embedded in the tools • Exhaustive test suite
  5. 5. Openark kit • http://code.openark.org/forge/openark-kit/ • Python script collection • 10 tools • BSD License • Written by Shlomi Noach
  6. 6. Kontrollkit • http://kontrollsoft.com/software-kontrollkit • A collection of 13 scripts for making your daily MySQL DBA responsibilities easier • Perl, Python, Shell • Formerly known as Monolith Toolkit • Maintained by Matt Reid (Kontrollbase)
  7. 7. Hack MySQL Kit (hmk) • http://hackmysql.com/ • 4 tools (C, Perl) – mysqlreport - Make easy-to-read MySQL status reports. – mysqlsla - Simple, lightweight MySQL log parsing. – mysqlidxchx - Checks tables for unused indexes. – mysqlsniffer - MySQL protocol sniffer. • GPL • Written by Daniel Nichter (Maatkit)
  8. 8. User account administration
  9. 9. Securich • http://www.securich.com/ • Written by Darren Cassar (aka “MySQL Preacher”) • Implemented as Stored Routines • Roles & user groups • Cloning of user accounts • Flexible privilege assignment • Improved password handling • Fast blocking of user accounts
  10. 10. oak-block-account • Block or release connections for specific accounts • Without changing privileges • Optionally kill any existing connections $ oak-block-account -u root –ask-pass --account-user=<someuser>
  11. 11. Monitoring
  12. 12. mytop • http://jeremy.zawodny.com/mysql/mytop/ • A top clone for MySQL • Written in Perl • Console based • Monitoring of threads and overall performance
  13. 13. innotop • http://code.google.com/p/innotop/ • MySQL/InnoDB transaction/status monitor, inspired by mytop • Perl • Monitoring of – Replication status – Queries – InnoDB Transactions, Locks...
  14. 14. mycheckpoint • http://code.openark.org/forge/mycheckpoint • Python • Monitoring utility with a strong emphasis on user accessibility to monitored data • SQL oriented: charts, reports and advanced metrics are generated on the fly with views.
  15. 15. Backup
  16. 16. mk-parallel-dump/restore • Multi-threaded SQL dumps • One subdirectory per DB • Dump Compression • Backups can be split up into chunks • Saves binlog position • Supports regular Expressions
  17. 17. mydumper • https://launchpad.net/mydumper • Developed in C (glib, pcre) • Parallel Data Dumps • Easy to parse output • Regular expressions • Consistency – Snapshot across all threads – Stores Master/Slave binlog positions
  18. 18. xtrabackup • https://launchpad.net/percona-xtrabackup • Online backup for InnoDB / MyISAM • 2010-04-12: Version 1.2 (incl. Windows) • In my.cnf: [xtrabackup] target_dir = /home/backups • Backup command: $ xtrabackup –backup
  19. 19. mylvmbackup • http://www.lenzg.net/mylvmbackup/ • Perl Script • Fast creation of MySQL backups using LVM- Snapshots (Linux) • Supports tar, rsync or rsnap to back up the data (rdiff soon) • Archive names with timestamps
  20. 20. Auditing/Security
  21. 21. oak-security-audit • Regular, automatic checking of – Non-local root-accounts – Anonymous user accounts – Accounts without a hostname – Accounts using empty or identical passwords – Non-root accounts with full privileges $ oak-security-audit -u root --ask-pass
  22. 22. Performance tuning
  23. 23. MySQL Tuning Primer • https://launchpad.net/mysql-tuning-primer • Shell script by Matthew Montgomery • Takes information from "SHOW STATUS LIKE..." and "SHOW VARIABLES LIKE..." • Attempts to produce sane recommendations for tuning server variables • Inspired by Gert Dewit's MySQL AR
  24. 24. mysqltuner • https://launchpad.net/mysqltuner • Perl • Examines the database environment • Provides performance tuning data and recommendations. • Inspired by the MySQL Tuning Primer $ mysqltuner.pl –recommend --config tuner-default.cnf
  25. 25. mysqlreport • Part of the HackMySQL toolkit • Well-documented Perl script • Reports important MySQL status values • Transforms SHOW STATUS values into an easy- to-read report • A better alternative to manually interpreting SHOW STATUS output • Must-read: “The Guide To Understanding mysqlreport”
  26. 26. mext • http://code.google.com/p/aspersa/ • Shell script • BSD license • Runs mysqladmin extended-status and formats it nicely • Can also read from saved files • Supports incremental, differential and relative output
  27. 27. Replication
  28. 28. Monitoring replication • mk-heartbeat – Uses separate heartbeat table – Frequently updates a time stamp on the master and measures replication delay – Master and slave clocks must be in sync • mk-table-checksum – Performs an online replication consistency check – Checksums MySQL tables on one or many servers
  29. 29. Monitoring replication (Cont.) • oak-get-slave-lag – Reads master status and iterates through SHOW SLAVE STATUS – Triggers an error if threshold is reached • oak-show-replication-status – Shows how far behind replicating slaves are on a given master
  30. 30. Replication maintenance • oak-purge-master-logs – Purges master logs while considering the replicating slaves • mk-slave-find – Connects to a MySQL replication master and finds its slaves – Prints a tree-like view of the replication hierarchy • mk-slave-move – Move a MySQL slave around in the replication hierarchy
  31. 31. Q&A Questions, Comments?
  32. 32. Thank you! Lenz Grimmer <lenz@sun.com> http://lenzg.net/ | Twitter: @lenzgr
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×