我大约 2 个月前加入公司。周一,我看到一个从服务器硬盘闪烁着琥珀色灯,我为此打电话给戴尔,工程师过来告诉我无法保存数据。设置是 RAID 10,但同一时间段内有 2 个硬盘发生故障,新磁盘无法从现有磁盘重建,因为两个硬盘都发生故障。因此,戴尔工程师插入了 2 个新硬盘并擦除当前现有配置并重建一个新的 RAID10。无论如何,我的问题是,这台从服务器(运行 ubuntu 12.04)有 3 个分区,
/ --> 根分区(运行通常的 RAID 1)
/dev/sdb1 --> /var/lib/mysql (这是发生故障的磁盘,现在无法读取任何内容)
/dev/sdc1 --> 这是一个SAN存储连接,包含sql的数据。
现在,我是一个纯粹的系统人员,与 mysql 的互动不多(通常有一个 dba 在,而我只排除端口问题或权限等故障)。但是 DBA 休假到下周。
我的问题是,如何在不破坏任何内容的情况下从 master 重建 /var/lib/mysql?我进行了研究并找到了几个步骤,但如果有一个真正的分步指南(命令和所有内容)指导我如何在不破坏任何内容的情况下做到这一点,我将不胜感激。
我的意思是,我可以同时停止主服务器和从服务器,将 /var/lib/mysql 从主服务器 rsync 到从服务器吗?在从服务器上更改权限,以便 mysql 对所有文件夹都有权限。我还能做什么或其他步骤来确保一切尽可能顺利进行吗?主服务器可以在维护窗口停止,我有 2 个维护窗口即将到来。在此上运行的 MySQL 版本是 5.5.40。
如果有人能提供帮助,我将不胜感激。
答案1
我强烈建议为此使用 percona 的 XtraBackup。 https://www.percona.com/doc/percona-xtrabackup/LATEST/howtos/setting_up_replication.html
您可以通过流式传输备份将步骤 1 和 2 合并为一个步骤。
这里有一篇很好的文章 https://www.nadeau.tv/setting-up-a-new-mysql-slave-database-via-streaming-xtrabackup/
任何时候都不应该有理由阻止主人。