You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EC2(非RDS)实例上从S3中的MariaDB快照恢复数据库?

在EC2上从S3的MariaDB快照恢复数据库

是的,你需要先启动EC2实例、安装匹配版本的MariaDB,再将S3中的快照数据导入到EC2的MariaDB服务中。下面分两种常见快照类型给出具体操作步骤:

一、如果是逻辑备份(比如mysqldump导出的.sql文件)

  • 启动EC2实例:选择合适的Linux发行版(如Amazon Linux 2、Ubuntu),确保实例具备S3访问权限(优先通过IAM角色授予,而非硬编码Access Key)。
  • 安装对应版本MariaDB:安装版本必须和快照生成时的MariaDB版本一致,避免兼容性问题。
    以Amazon Linux 2为例:
    sudo yum install mariadb-server mariadb
    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    
  • 下载备份文件:用AWS CLI将S3上的.sql文件拉到EC2本地:
    aws s3 cp s3://your-bucket/path/to/backup.sql /home/ec2-user/
    
  • 创建目标数据库:若备份文件未包含建库语句,需手动创建:
    mysql -u root -p
    CREATE DATABASE your_db_name;
    exit
    
  • 导入数据:执行导入命令完成数据恢复:
    mysql -u root -p your_db_name < /home/ec2-user/backup.sql
    
  • 验证恢复:登录数据库检查表结构和数据是否正常。

二、如果是物理备份(整个MariaDB数据目录的镜像文件夹,如/var/lib/mysql)

物理备份直接复制了数据库的底层数据文件,对版本一致性要求极高:

  • 启动EC2并安装同版本MariaDB:安装完成后不要启动服务,先停止:
    sudo systemctl stop mariadb
    
  • 替换默认数据目录:备份原有默认目录后清空,准备接收镜像文件:
    sudo mv /var/lib/mysql /var/lib/mysql_backup
    sudo mkdir /var/lib/mysql
    
  • 同步S3镜像文件夹:将S3上的整个数据目录镜像同步到EC2的MariaDB数据目录:
    aws s3 sync s3://your-bucket/path/to/mysql-mirror/ /var/lib/mysql/
    
  • 修复目录权限:MariaDB运行用户(通常为mysql)需要拥有数据目录的完整权限:
    sudo chown -R mysql:mysql /var/lib/mysql
    sudo chmod -R 750 /var/lib/mysql
    
  • 启动服务并验证:
    sudo systemctl start mariadb
    mysql -u root -p
    # 检查数据库状态
    SHOW DATABASES;
    

关键注意事项

  • 版本严格匹配:无论哪种备份类型,MariaDB的主版本、小版本都要和快照生成时完全一致,否则可能导致恢复失败或数据损坏。
  • 权限配置:EC2实例的S3访问权限优先用IAM角色配置,避免密钥泄露;物理备份恢复后必须修正目录权限,否则服务无法启动。
  • 完整性校验:恢复完成后一定要执行数据验证,比如查询关键业务表、运行测试脚本确认数据可用。

内容的提问来源于stack exchange,提问作者josepmaria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:25:22