选择

选择

我计划将所有虚拟机移至共享存储,并且我有一个关于如何处理 MySQL 虚拟机的问题:

目前,VM 映像的大小为 100GB,其中大部分空间被 MySQL 数据占用。我觉得迁移到共享存储时有两种选择,但我不确定哪种是最常见/推荐的做法:

  1. 只需将 100GB 虚拟机放在共享存储上
  2. 将 95GB 数据目录移至共享存储,将虚拟机大小调整为 5GB 并移至共享存储,然后将虚拟机指向数据目录

有人对此有什么看法吗?

数据和索引大小如下:

+----------------+----------------------+----------------------+----------------------+
| 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

选择

根据查询输出和数据目录大小,由于某些碎片,您浪费了 13GB 的空间。现在正是消除这些碎片的机会。

mysqldump 您的数据并对其进行 gzip

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

在共享存储中使用 datadir 设置 MySQL 实例

将该备份加载到 MySQL 实例中

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

这样,重新加载时数据目录应该是 82GB,而不是 95GB

相关内容