MySQL - 将数据库表分区为Amazon EC2实例中的不同EBS卷

时间:2012-03-12 13:50:17

标签: mysql amazon-ec2 amazon-ebs

我有一个Amazon EC2 Server实例,它附有五个EBS卷,如

  1. ebsvol1
  2. ebsvol2
  3. ebsvol3
  4. ebsvol4
  5. ebsvol5
  6. 配置此服务器时我需要安装MySQL服务器并需要设置我的数据库。在这里,我需要将一些表安装到一个EBS卷(例如ebsvol1),将其他表安装到另一个卷(比如ebsvol2)。

    我是这个亚马逊环境的初学者。请指导我如何继续。

1 个答案:

答案 0 :(得分:4)

此答案适用于基于LINUX的实例。

this article at Amazon开始,解释如何设置MySQL以在EBS卷上运行。这不是绝对必要的 - 以下步骤应该可以与标准的MySQL安装一起使用。

您需要为每个EBS卷/表组创建新的架构。我不相信您可以将表保留在一个模式中,而是将它们分布在多个EBS卷上。每个空模式由 / var / lib / mysql / 中的文件夹表示,该文件夹包含名为 db.opt 的单个文件。

要将架构移动到它自己的EBS卷,需要执行以下步骤(使用架构 my_schema ):

  • 安装EBS卷(如果尚未安装)(假设安装为 / ebsvol1 );确保该卷列在 / etc / fstab 中,以便在重新启动时自动挂载

  • 更改已安装文件夹的权限以匹配当前架构文件夹

   chmod 700 /ebsvol1
   chown mysql /ebsvol1
   chgrp mysql /ebsvol1
  • db.opt 文件从架构文件夹复制到新卷(如果您已经在架构下创建了表,那些也需要复制)
   cp /var/lib/mysql/my_schema/db.opt /ebsvol1/
   chmod 660 /ebsvol1/db.opt
   chown mysql /ebsvol1/db.opt
   chgrp mysql /ebsvol1/db.opt
  • 使用指向EBS卷的符号链接替换原始架构文件夹
   cd /var/lib/mysql
   rm -fr my_schema
   ln -s /ebsvol1 my_schema

如果您的操作系统使用AppArmor,您可能需要在允许MySQL写入的文件夹列表中包含/ ebsvol1。有关详细信息,请参阅the article here

现在在 my_schema 下创建的任何表都将存储在/ ebsvol1上。