Deployment of MySQL using daemontools, XtraBackup
I am sure many people have already done similar things, but to ease my pain of setting up mysqld on a large-scale environment (I am trying to create a set of database nodes, each node consists of a MySQL failover cluster using semi-sync replication, that can be administered easily), I have just finished writing a deployment script called mysqld_jumpstart. The caveats are:
- integration with daemontools (mysqld is automatically started)
- setup of masters and slaves
- can setup slaves from backup data generated by XtraBackup
The last feature was the one I especially needed, since thanks to the people at Percona, things have become much easier with XtraBackup (or with InnoDB Hot Backup) since there is no more need to detach a mysqld before creating a backups.
Setting up and starting a master database:
# ssh root@10.0.1.1 mysqld_jumpstart \
--mysql-install-db=/usr/local/mysql/scripts/mysql_install_db \
--mysqld=/usr/local/mysql/bin/mysqld --base-dir=/var/my_webapp/mysql \
--data-dir=/var/datadrive/my_webapp --server-id=10 \
--replication-user=repl --replication-password=replpass \
--replication-network='10.0.0.0/255.0.0.0'
To create and a start a slave from a backup by XtraBackup (specified by --data-dir):
# ssh root@10.0.1.2 mysqld_jumpstart \
--mysql-install-db=/usr/local/mysql/scripts/mysql_install_db \
--mysqld=/usr/local/mysql/bin/mysqld --base-dir=/var/my_webapp/mysql \
--data-dir=/var/datadrive/my_webapp --server-id=10 \
--replication-user=repl --replication-password=replpass \
--replication-network='10.0.0.0/255.0.0.0' \
--master-host=10.0.1.1 --from-innobackupex
Mysqld_jumpstart can be downloaded from coderepos.org/share/browser/platform/mysql/mysqld_jumpstart. Use --help to find out how to use the script. FYI to run the tests, you need to apply a patch to XtraBackup.
Btw, Daemon tools is already a program for handling virtual CDROM: http://www.daemon-tools.cc/eng/downloads
Posted by: PHP MySQL | August 06, 2009 at 05:56 PM
PHP MySQL: FYI daemontools in this context is referring to a popular administration software written by DJB.
http://cr.yp.to/daemontools.html
Posted by: kazuho | August 06, 2009 at 06:41 PM