MySQL - данные внутри vm на общем хранилище?

Я планирую переместить все свои виртуальные машины в общее хранилище, и у меня есть вопрос о том, как работать с виртуальной машиной MySQL:

В настоящее время размер образа виртуальной машины составляет 100 ГБ, где большая часть пространства занята данными MySQL. Я чувствую, что есть два варианта перехода к общему хранилищу, но я не уверен, что является наиболее распространенной / рекомендуемой практикой:

  1. Просто поместите виртуальную машину объемом 100 ГБ в общее хранилище
  2. Переместите каталог данных 95 ГБ в общее хранилище, измените размер виртуальной машины до 5 ГБ и перейдите в общее хранилище, затем укажите виртуальную машину на каталог данных.

У кого-нибудь есть на это мнение?

Размеры данных и индексов следующие:

+----------------+----------------------+----------------------+----------------------+
| Storage Engine | Data Size            | Index Size           | Table Size           |
+----------------+----------------------+----------------------+----------------------+
| MEMORY         |             0.002 GB |             0.001 GB |             0.003 GB |
| FEDERATED      |             2.198 GB |             0.000 GB |             2.198 GB |
| MyISAM         |             2.258 GB |             0.337 GB |             2.595 GB |
| InnoDB         |            47.249 GB |            30.568 GB |            77.817 GB |
| Total          |            51.706 GB |            30.906 GB |            82.613 GB |
+----------------+----------------------+----------------------+----------------------+

1 ответ

Общая / рекомендуемая практика должна работать просто отлично. Просто убедитесь, что вы запускаете это

chown -R mysql:mysql /var/lib/mysql

АЛЬТЕРНАТИВА

На основании результатов запроса и размера каталога данных у вас есть 13 ГБ потерянного пространства из-за некоторой фрагментации. Теперь у вас есть шанс устранить эту фрагментацию.

mysqldump ваши данные и распакуйте их

MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
MYSQLDUMP_OPTIONS="--routines --triggers --single-transaction --all-databases"
mysqldump ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} | gzip > MySQLData.sql.gz

Настройте инстанс MySQL с помощью datadir в общем хранилище

Загрузите эту резервную копию в экземпляр MySQL

gzip -d < MySQLData.sql.gz | mysql ${MYSQL_CONN}

Таким образом, каталог данных должен быть 82 ГБ при перезагрузке, вместо 95 ГБ

Другие вопросы по тегам