我有一个EBS支持的EC2运行实例。 EBS商店拥有一个数据库。我想从中创建一个AMI。有人可以提供指导吗?
感谢您耐心解决一个长期问题。我认识到那里有类似的信息,但没有真正解决可能出错的问题。
这个问题:
特定于ElasticFox,我没有使用任何工具(更喜欢命令行)。我不相信这个问题也得到了回答。
此博客:
http://instantbadger.blogspot.com/2009/09/how-to-create-and-save-ami-image-from.html
虽然有关创建AMI的指导,但根本没有提及EBS,我对所有数据都有点担心。提前致谢!
答案 0 :(得分:3)
亚马逊游戏机为您提供了执行此操作的选项。
只需登录您的aws控制台并导航您想要创建AMI的实例ID。
就是这样。这会产生一个AMI。有关详细信息,请参阅:http://docs.amazonwebservices.com/AWSEC2/2011-05-15/UserGuide/index.html?Tutorial_CreateImage.html。
答案 1 :(得分:1)
在回答您的问题之前,我建议您在开始创建图像之前将MySQL数据库备份到未存储为快照的文件或EBS中。 (当然测试你可以将它恢复到生产系统以外的其他地方。)
我用:
mysqldump --add-drop-table -u root -p databasename > database.sql
备份和:
mysql -u root -p databasename < database.sql
恢复。
更多信息: 在拍摄快照或创建图像时,我更愿意在可能的情况下关闭数据库。这就是说我不是任何MySQL专家,但这是http://aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1
的一些指导使用您在上面设置的密码在实例上启动MySQL会话。
mysql -u root -p
在mysql会话中,将表刷新到磁盘并获取锁。将文件系统刷新到磁盘并冻结它。不要退出MySQL会话,否则您将丢失可能不一致的数据库文件的锁和快照!
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
SYSTEM sudo xfs_freeze -f /vol
答案 2 :(得分:1)
确保始终按照steenhulthin的建议通过转储备份MySQL。
此链接有助于您创建新的EBS支持的AMI: http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html
我还建议将MySQL数据放到单独的EBS卷或更好的RAIDed卷中。
答案 3 :(得分:0)
正如@steenhulthin 提到的,您应该执行 FS 冻结并将数据库置于读锁模式以进行一致的备份,否则您将只有崩溃一致
备份类型 https://asvignesh.in/backup-types-inconsistent-app-consistent-crash-consistent/
您可以使用 SSM 命令来执行 FLUSH 并锁定数据库的表,这将为您带来 MySQL 数据的一致性并从控制台创建映像,一旦触发 AMI 创建,您就可以解锁表 确保在后台脚本中运行 Flush 表,一旦关闭会话,MySQL 中的锁将被释放
您可以找到锁定和解锁您可以通过 SSM 调用的表的脚本 https://asvignesh.in/mysql-app-consistent-backup-using-nimesa/
这是文件系统冻结的脚本 https://asvignesh.in/consistent-backup-of-your-ec2-instance/