Я использую облачный экземпляр CentOS 5 и понял, что вначале оставил разбиение по умолчанию. Все на / смонтировано уже на hda, то есть около 10Гб. Другой диск (sda) занимает около 90 ГБ для резервного копирования, но при необходимости я могу его освободить.
Моя база данных MySQL теперь становится больше, и я думаю о том, чтобы смонтировать один из дисков sda в / var / lib / mysql. Это обычная практика для mysql (дать ему отдельный раздел)?
Что мне нужно сделать, чтобы этот шаг прошел безболезненно и без потери данных? Сервер работает с пользователями, которые читают и записывают в БД, поэтому я полагаю, что сделаю это поздно ночью и сначала выключу mysqld. Затем я планирую переместить все в / var / lib / mysql в какой-то временный каталог, а затем смонтировать sda1 в / var / lib / mysql, а затем переместить содержимое из временного каталога обратно в новый смонтированный / var / lib / mysql реж. Это правильный подход? Есть ли другие способы предоставить MySQL больше места, о которых я не думал?
Я параноик, что простой mv может пропустить некоторые скрытые файлы внутри каталога (я извиняюсь за незнание того, как работает mv).
Похоже, хороший подход. Некоторые вещи, на которые стоит обратить внимание во время переезда. Если mysqld не запущен от имени пользователя root, убедитесь, что у него есть разрешения на RW в новом разделе. Не забудьте отредактировать / etc / fstab, чтобы не потерять монтирование при перезагрузке.
Если вы хотите сделать его отдельным монтированием, я согласен с предложением Quanta смонтировать новый диск в / data и создать символическую ссылку / var / lib / mysql -> / data / mysql. Таким образом, вы можете использовать диск / data и для других целей, не загрязняя каталог mysql.
Другой альтернативой, если вы используете LVM, является добавление нового диска в логический том и расширение файловой системы.
В среде моего облачного сервера я получаю каждую новую машину с корневым разделом (/) 10 ГБ, а затем добавляю к нему новый раздел на 40 ГБ. Вот как я следую:
pv="/dev/sdb"
vg="VolGroup00"
lv="VolGroup00-LogVol00"
sudo /usr/sbin/pvcreate $pv
sudo /usr/sbin/vgextend $vg $pv
sudo /usr/sbin/lvextend -l +100%FREE /dev/mapper/$lv
sudo /sbin/resize2fs /dev/mapper/$lv
В моем случае корневой раздел теперь будет файловой системой 50 ГБ, а не только 10 ГБ.
Эти значения по умолчанию обычно работают в системе CentOS-5, созданной с помощью LVM, но вам может потребоваться изменить переменные в соответствии с вашей настройкой.
Вот что я сделал:
/dev/sda1
к /data
(не забудьте добавить его в /etc/fstab
)создать структуру каталогов:
mkdir -p /data/var/lib
переместите каталог данных MySQL в новую папку:
mv /var/lib/mysql /data/var/lib/
сменить владельца:
chown -R mysql:mysql /data/var/lib/mysql
создать символическую ссылку на старое местоположение:
ln -s /data/var/lib/mysql /var/lib/mysql
открыть 2 консоли (мне нравится функция разделения в GNOME Терминатор) один запускает сервер MySQL, а другой tail -f /var/log/mysqld.log
.
Это позволяет избежать двойного перемещения datadir, и вы можете использовать /dev/sda1
для других целей.