Перемещение каталога данных MariaDB в CentOS 7

Объём базы данных увеличивается, и со временем она исчерпывает пространство файловой системы. Кроме того, если ввод и вывод находится на одном разделе с остальной частью операционной системы, возможные конфликты доступа к устройствам ввода/вывода. RAID, сетевые блочные хранилища и другие устройства предоставляют избыточность данных и другие полезные функции. Если вы хотите добавить больше места и оптимизировать производительность, а также воспользоваться другими функциями хранения, это руководство поможет вам переместить каталог данных MariaDB.

Требования

  •  Сервер CentOS 7 (инструкции по настройке сервера можно найти здесь).
  • Не-root пользователь с доступом к sudo.
  • Сервер MariaDB (чтобы установить MariaDB, читайте руководство Установка MariaDB в CentOS 7).

В данном руководстве показано, как переместить данные в блочное хранилище, смонтированное в mnt/volume-nyc1-01. Это поможет вам переместить каталог данных в новое место независимо от того, какое хранилище вы используете.

1: Перемещение каталога данных MariaDB

Чтобы подготовиться к перемещению каталога данных MariaDB, нужно уточнить его текущее местонахождение. Для этого откройте интерактивную сессию MariaDB и укажите учётные данные администратора.

mysql -u root -p

Укажите root-пароль MariaDB. В командной строке запросите каталог данных:

select @@datadir;
+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)

Этот вывод подтверждает, что в данном случае MariaDB использует каталог данных по умолчанию, /var/lib/mysql/. Этот каталог и нужно переместить. Чтобы закрыть командную строку MariaDB, введите:

exit

Чтобы обеспечить целостность данных, отключите MariaDB, прежде чем вносить изменения в каталог данных:

sudo systemctl stop mariadb

Утилита systemctl не отображает результаты некоторых команд управления сервисами. Чтобы убедиться в том, что сервер MariaDB отключен, используйте следующую команду:

sudo systemctl status mariadb

Последняя строка вывода должна сообщать:

. . .
Dec 16 18:29:26 mysql systemd[1]: Stopped MariaDB database server.

Теперь, когда сервер отключен, скопируйте текущий каталог данных в новое место с помощью rsync. Флаг –a сохраняет привилегии и другие свойства каталога. Флаг –v предоставляет подробный вывод.

Примечание: Убедитесь, что в названии каталога нет конечной косой черты (который система может добавить, если вы используете автодополнение). Если такой слеш есть, rsync будет сбрасывать содержимое каталога в точку монтирования, а не в каталог.

sudo rsync -av /var/lib/mysql /mnt/volume-nyc1-01

После выполнения rsync переименуйте текущую папку, добавив расширение .bak. Оставьте расширение до тех пор, пока не убедитесь, что данные перемещены успешно. Это поможет не спутать файлы.

sudo mv /var/lib/mysql /var/lib/mysql.bak

2: Настройка нового каталога данных

MariaDB предлагает несколько способов отмены значений конфигурации. По умолчанию datadir настроен в файле /etc/my.cnf в каталоге /var/lib/mysql. Откройте этот файл:

sudo vi /etc/my.cnf

Найдите строку datadir= и укажите в ней путь к новому каталогу данных. кроме того, нужно обновить путь к сокету. В данном случае эти настройки будут иметь такой вид:

[mysqld] . . .
datadir=/mnt/volume-nyc1-01/mysql
socket=/mnt/volume-nyc1-01/mysql/mysql.sock
. . .

Теперь нужно добавить в настройки клиент mysql. Вставьте в конец файла следующие строки (в блок [mysqld] перед строкой include).

[client] port=3306
socket=/mnt/volume-nyc1-01/mysql/mysql.sock
!includedir /etc/my.cnf.d

Чтобы закрыть и сохранить файл, нажмите Escape, а затем :wq!.

3: Запуск MariaDB

Теперь нужно запустить MariaDB и запросить состояние сервера, чтобы убедиться, что все работает.

sudo systemctl start mariadb
sudo systemctl status mariadb

Чтобы убедиться, что сервер использует новый каталог данных, запустите:

mysql -u root -p

Запросите каталог данных:

select @@datadir;
+----------------------------+
| @@datadir                  |
+----------------------------+
| /mnt/volume-nyc1-01/mysql/ |
+----------------------------+
1 row in set (0.01 sec)

Чтобы закрыть командную строку, введите:

exit

Теперь нужно убедиться в том, что база данных полностью функциональна. После проверки целостности данных вы можете удалить резервную копию каталога данных:

sudo rm -Rf /var/lib/mysql.bak

Заключение

Теперь вы умеете перемещать каталог данных MariaDB. В данном руководстве использовалось блочное хранилище, однако эти инструкции подходят для настройки любого устройства независимо от технологии, на которой оно основано.

Tags: ,

Добавить комментарий