=======Base setup============ mkdir /usr/local/mysqlmaster mkdir /usr/local/mysqlslave pvcreate /dev/hdb vgcreate mysqlvolume /dev/hdb lvcreate -L2G -n mysqlmaster mysqlvolume lvcreate -L2G -n mysqlslave mysqlvolume mkfs -t ext3 /dev/mysqlvolume/mysqlmaster mkfs -t ext3 /dev/mysqlvolume/mysqlslave mount /dev/mysqlvolume/mysqlmaster /usr/local/mysqlmaster/ mount /dev/mysqlvolume/mysqlslave /usr/local/mysqlslave/ df -h cd /root/34058issue/ mv mysql-enterprise-gpl-5.0.44-linux-i686 /usr/local/mysql OR mv mysql-enterprise-gpl-5.0.60sp1-linux-i686-glibc23 /usr/local/mysql cd /usr/local/mysql groupadd mysql useradd -g mysql mysql chown -R mysql . chgrp -R mysql . scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysqlmaster/ scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysqlslave/ chown -R mysql /usr/local/mysqlmaster/ chown -R mysql /usr/local/mysqlslave/ PATH=/usr/local/mysql/bin/:$PATH export PATH ##==========## # Steps to repeat; mysqladmin -u root shutdown mysqladmin -S /tmp/mysql4406.sock -u root shutdown mkdir -p /usr/local/dbbackup/ rm -rf /usr/local/mysqlmaster/* rm -rf /usr/local/mysqlslave/* cd /usr/local/mysql/ /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysqlmaster/ chown -R mysql:mysql /usr/local/mysqlmaster/ cd /usr/local/mysql/ bin/mysqld_safe --user=mysql \ --server-id=1 --log-bin=master-bin --datadir=/usr/local/mysqlmaster/ \ --default-storage-engine=innodb & sleep 2; mysql -u root -e "GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'localhost' IDENTIFIED BY 'slave_password';RESET MASTER; SHOW MASTER STATUS;"; ## Run infinite perl -wc /root/34058issue/infinite_insert.pl perl /root/34058issue/infinite_insert.pl & sleep 120; ## Take LVM Snapshot, mount and copy datafiles to create a slave. "FLUSH TABLES WITH READ LOCK;" lvcreate -L1500M -s -n dbbackup /dev/mysqlvolume/mysqlmaster mysql -u root -e "SHOW MASTER STATUS;"; # Mount and copy mount /dev/mysqlvolume/dbbackup /usr/local/dbbackup/ cd /usr/local/dbbackup/ cp -R -p * /usr/local/mysqlslave/ cd /usr/local/mysqlslave/ umount /usr/local/dbbackup lvremove -f /dev/mysqlvolume/dbbackup ## "UNLOCK TABLES;" cd /usr/local/mysql/ rm -f /usr/local/mysqlslave/localhost.localdomain.pid bin/mysqld_safe --user=mysql --port=4406 --socket=/tmp/mysql4406.sock \ --datadir=/usr/local/mysqlslave/ --server-id=2 \ --skip-slave-start --default-storage-engine=innodb \ --log-error=/usr/local/mysqlslave/slave.err & cat /usr/local/mysqlslave/slave.err | grep position mysql -S /tmp/mysql4406.sock -u root -e "CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_PASSWORD='', MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=4322096;" # bin log pos taken from SHOW MASTER STATUS, also correct in err log entry). mysql -S /tmp/mysql4406.sock -u root -e "START SLAVE;"; sleep 120 mysql -u root -S /tmp/mysql4406.sock -e 'SHOW SLAVE STATUS\G'; ## - kill -9 mysql on slave to reproduce mysql -u root -e "SHOW MASTER STATUS;"; mysql -u root -S /tmp/mysql4406.sock -e 'SHOW SLAVE STATUS\G'; kill -9 `cat /usr/local/mysqlslave/localhost.localdomain.pid` ## - mysqld_safe will restart mysql with --skip-slave-start as it did previously. #clean up (stop infinite kill `pidof perl`; cat /usr/local/mysqlslave/slave.err =========================