繁体   English   中英

在带有 EBS 的 Amazon EC2 上运行 MySQL

[英]Running MySQL on Amazon EC2 with EBS

我有一台生产服务器,其 MYSQL 可能无法备份。 有问题的实例有一个 EBS 支持的根设备 (/dev/sda1),它永久存储文件。 我不清楚它是否自然地永久存储了我的 MYSQL 数据和二进制日志文件。

如果它安装在根目录下,它应该这样做吗? 我会这么认为。

我是否应该附加并安装另一个卷,然后将 MYSQL 服务器指向新位置?

我的命令如下所示(加上在创建快照时锁定 MYSQL 表)

    sudo mkdir /vol/etc /vol/lib /vol/log
    sudo mv /etc/mysql     /vol/etc/
    sudo mv /var/lib/mysql /vol/lib/
    sudo mv /var/log/mysql /vol/log/

    sudo mkdir /etc/mysql
    sudo mkdir /var/lib/mysql
    sudo mkdir /var/log/mysql

    echo "/vol/etc/mysql /etc/mysql     none bind" | sudo tee -a /etc/fstab
    sudo mount /etc/mysql

    echo "/vol/lib/mysql /var/lib/mysql none bind" | sudo tee -a /etc/fstab
    sudo mount /var/lib/mysql

    echo "/vol/log/mysql /var/log/mysql none bind" | sudo tee -a /etc/fstab
    sudo mount /var/log/mysql 

我不是系统管理员专家,我不想搞砸我现有的数据库。 这里有风险吗? 我应该在这里使用额外的设备还是坚持使用内置的根设备?

我将 /etc/mysql 和 /var/lib/mysql 目录移动到我的 EBS 并在它们以前的位置创建了符号链接。

这样我就不必修改配置文件或担心找不到文件。

我还移动 /etc/mysql 的原因是,如果我将 EBS 附加到另一个实例,配置文件和维护脚本不会丢失。

至于该数据的备份,最好创建另一个实例并创建主/主配置,这样您也可以获得故障转移的好处。

如果您担心数据持久性:

拍摄 /dev/sda1 的快照,创建一个完全独立的实例(t1.micro 非常适合),根据您拍摄的 /dev/sda1 的快照创建一个新卷,然后将该新卷挂载到新的单独实例上? 如果您的数据存在于新卷上,它肯定会存储在 /dev/sda1 上的 EBS 中。

话虽如此:很多默认的 Linux 映像设置为在实例终止时自动终止根 (/dev/sda1) 卷。 含义:如果您丢失了一个实例,如果您没有在其他地方备份它,那么您也将丢失该卷上的所有数据。 保留备份的一种简单方法是每天使用 EC2 工具拍摄卷的快照。 创建一个拍摄快照并在新快照完成后删除旧的每日定期快照的脚本非常容易。 如果您正在寻找更小的备份大小或增量备份策略,您可以编写更高级的脚本,在备用可用区或区域中启动 t1.micro,通过您喜欢的任何机制仅对 MySQL 数据执行备份,然后关闭 t1.micro 实例。

如果您停止实例,它将类似于定期关闭,并且 EBS 卷应保留所有数据。 如果您终止实例,我认为,自快照以来的所有数据都将消失。

但通常我认为没有太多理由终止它。 无论如何,在测试实例上进行尝试应该很简单。 你可以只写一些文件,看看在不同的用例下会发生什么。

这样你也会感觉比仅仅依靠某人的回答更安全。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM