Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
# Stop the slave databases which are replicating from the database machine we want to add the new disk to.
mysql -u root -p
mysql> stop slave;

# Scan the SCSI bus for new devices
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
echo 1 > /sys/block/sdb/device/rescan

# Check if the disk has been detected
fdisk -l /dev/sdb

# Create Physical and Logical Volumes 
pvcreate /dev/sdb
vgcreate vg1_mysql /dev/sdb
lvcreate -l100%FREE -n lv1_mysql vg1_mysql

# Create the file system
mkfs.ext4 /dev/vg1_mysql/lv1_mysql

# Show the UUID of the volumes
blkid

# Create an fstab entry for the mount
# rw is for best performance
echo "$(blkid /dev/mapper/vg1_mysql-lv1_mysql | cut -d' ' -f2 | tr -d '"') /var/lib/mysql  ext4        rw      0       0" >> /etc/fstab

# Stop the mysql service
service mysqld stop

# Make a temp directory for mounting the new drive, and move the files to mysql2
cd /var/lib
mkdir mysql2
mount /dev/vg1_mysql/lv1_mysql mysql2/
cd mysql2/
mv ../mysql/* .
cd ..

# Possible se-linux warning here
mount -av

# fix mysql se-linux and ownership
restorecon /var/lib/mysql
chown mysql:mysql mysql

# Check se-linux warning is gone
umount mysql/
mount mysql/
mount -av

# When gone, unmount mysql2 
umount mysql2/

# Remove temp directory
rmdir mysql2

# Remove lost and found directory
rmdir /var/lib/mysql/lost+found

# start service
service mysqld start


# Start slaves
mysql> start slave;
mysql> show slave status\G

...