Tuesday, 26 October 2010

Перенос MySQL баз данных на отдельные жесткий диск в CentOS

Пусть нужно перенести MySQL на новый SSD диск /dev/sdc.

Ставим parted (CentOS):
yum install -y parted

Ставим parted (Debian):
apt-get install -y parted

Создаем 1 раздел на новом диске:
parted /dev/sdc mklabel msdos
parted /dev/sdc mkpart primary ext3 0 100%

Форматируем его:
mkfs.ext3 /dev/sdc1

Гасим MySQL (CentOS):
/etc/init.d/mysqld stop

Гасим MySQL (Debian):
/etc/init.d/mysql stop

Убеждаемся, что MySQL отключился:
ps aux | grep mysql -i

Монтируем новый диск:
mount /dev/sdc1 /mnt
Копируем все файлы базы на него:
cp -aR /var/lib/mysql/* /mnt

Отмонтируем новый диск:
umount /mnt

Переносим MySQL с основного диска в бэкап папку:
mv /var/lib/mysql /var/lib/mysql_old

Создаем папку для постоянного монтирования нового жесткого диска:
mkdir /var/lib/mysql

Добавляем в fstab следующее:
/dev/sdc1 /var/lib/mysql ext3 defaults 0 0

Монтируем:
mount -a

Убеждаемся, что монтирование произведено корректно:
mount | grep sdc
/dev/sdc1 on /var/lib/mysql type ext3 (rw)

Далее меняем права на уже смонтированный диск:
chown mysql:mysql /var/lib/mysql
chmod 755 /var/lib/mysql

Запускаем MySQL (CentOS):
/etc/init.d/mysqld start

Запускаем MySQL (Debian):
/etc/init.d/mysql start

Все, теперь MySQL работает с нового жесткого диска :)

2 comments:

  1. Я бы рекомендовал сделать noasync для этого раздела, что немного увеличит производительность.

    ReplyDelete
  2. sync? Я бы наоборот его не рекомендовал, Ибо:

    sync All I/O to the file system should be done synchronously. In case of media with limited number of write cycles (e.g. some flash drives) "sync" may cause life-cycle shortening.

    ReplyDelete

Note: only a member of this blog may post a comment.