将 MySQL 数据库目录存储在单独的 RAID 1 设备上是否更好?

将 MySQL 数据库目录存储在单独的 RAID 1 设备上是否更好?

我们有一台 Linux 服务器,它使用两块硬盘组成 RAID 1,运行着一个 Apache 服务器,管理多个站点和一些其他服务,这些服务与数据库密切交互并产生大量日志。由于驱动器不是 SSD 而是 HDD,数据库变得非常大,服务器上的 I/O 负载非常高,数据库性能非常差。我们设法让托管公司为服务器添加两块硬盘。

现在我有两个问题:

  1. 提高服务器 I/O 性能的最佳设置是什么?我认为最好将两个添加的 HDD 放入另一个 RAID 1 阵列,并仅将 MySQL 数据库移动到新的 RAID 设备。这样,数据库就不会受到其他因素的影响,例如某些服务产生的大量日志。有没有更好的选择?(重新安装操作系统不是一个选择,我需要尽可能少的停机时间)

  2. 这样做安全吗?如果将整个 MySQL 数据目录移动到另一个设备,是否存在数据丢失的风险?(我知道如何做到这一点)

答案1

  1. 不,没有更好的选择。我的意思是,如果使用 RAID 0(条带),您可以从系统中获得更多功能,但这在数据库服务器下不是一个聪明的主意,因为在 RAID 0 中,如果只有一个磁盘发生故障:您将丢失所有内容。因此,创建一个 RAID 1 设备,关闭数据库,复制文件,检查权限,然后将新设备安装在 /var/lib/mysql(或您的数据目录)下并启动 mysql 服务器。我还将从原始位置删除所有旧文件,以避免安装错误 - 我指的是旧数据。(在 MySQL 中,您可以通过为服务器提供更多 RAM 并增加缓冲池来获得越来越多的性能)

  2. 这是安全的。如果在复制操作期间 MySQL 服务器停止。

相关内容