====== About Percona ====== * [[Percona]] === History === * MySQL wasn't using their own InnoDB software that they bought out until 5.5 (5.1 included an older version that they were maintaining themselves) * Oracle bought out MySQL, and has not been improving much on InnoDB * InnoDB was released as a modular plugin, which is how it works in 5.5 * Percona forked InnoDB, created ExtraDB === About === * Open-source software (GNU GPL) * MySQL consulting === Software === == Why InnoDB / XtraDB? == * Row-locking versus table-locking (MyISAM) * Transactional support - atomic commits * Binary logging for replication * Foreign key support == Percona Server == * Percona Server - Drop-in replacement for MySQL. Not a MySQL fork. All client applications use the same protocol, so there is no compatability issues. == XtraDB == * XtraDB is 100% compliant with InnoDB features and SQL - another drop-in == Percona XtraDB Cluster == * Extremely easy to setup (less than one hour on initial trial) * Very minor changes to database configuration * Master-master-master setup - three or more masters * Synchronous replication * Can add / remove servers at anytime * Cluster software is using third-party software, not MySQL's codeset == XtraBackup == * Hot backups -- make backups while running server without affecting service * InnoDB locks table while using mysqldump * Throttles backups based on system load == Monitoring == * Plugins for Nagios, cacti == Utilities == * Offer an amazing toolset: * [[Percona Toolkit]] * [[https://tools.percona.com/|Database Configuration]] * [[https://tools.percona.com/|Query Analyzer]] == Configuration == * [[http://beandog.org/downloads/ubuntu-fs/etc/mysql/sample.cnf|Sample configuration file]] * Ubuntu + Percona + my settings * UTF-8 connections and collations by default * InnoDB tables by default * Strict startup checks -- will crash if InnoDB doesn't load * No table caching * Slow query logs (more than one second) * Compatible with existing Ubuntu configurations, drop-in replacement for existing servers (uses native sockets, data directories, transaction log size) === Deployment === * Maintain a 5.1 and a 5.5 release set * Ubuntu repositories * Gentoo ebuild in the works * Migration is as simple as a MySQL upgrade (dump, restore tables)