MySQL - данные внутри vm на общем хранилище?
Я планирую переместить все свои виртуальные машины в общее хранилище, и у меня есть вопрос о том, как работать с виртуальной машиной MySQL:
В настоящее время размер образа виртуальной машины составляет 100 ГБ, где большая часть пространства занята данными MySQL. Я чувствую, что есть два варианта перехода к общему хранилищу, но я не уверен, что является наиболее распространенной / рекомендуемой практикой:
- Просто поместите виртуальную машину объемом 100 ГБ в общее хранилище
- Переместите каталог данных 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 ГБ