Bota5ky

DBS学习笔记(三):RDS 备份

RDS 备份

  • RDS 支持自动备份
  • 实时捕获事务日志
  • 默认情况下启用,保留期为7天(0-35天保留期,0=禁用自动备份)
  • 您可以提供备份窗口时间和备份保留天数
  • 第一个备份是完整备份,后续备份是增量备份
  • 数据存储在 S3 存储桶中(由 RDS 服务拥有和管理,您不会在 S3 控制台中看到它们)
  • 建议使用 Multi-AZ 选项来避免备份运行时的性能问题
  • 与 AWS Backup 服务集成以实现集中管理
  • 支持 PITR,而快照则不支持
  • 复制备份会变为快照,可以跨越账号、region
  • Point-In-Time Recovery 时间间隔为 5 分钟

从快照还原

  • 只能恢复到新实例

  • 一个实例可以有一个或多个数据库,所有这些数据库都将被恢复

  • 要保留相同的名称,请先删除或重命名现有实例

  • 无法直接从共享和加密的快照中恢复(先复制,然后从副本中恢复)

  • 无法直接从另一个区域恢复(先复制,然后从副本恢复)

  • 可以从 VPC 外的数据库实例快照恢复到 VPC 内(但相反则不行)

  • 默认情况下,还原的集群使用:

    • 新建安全组
    • 默认参数组
    • 与快照关联的选项组
  • 从快照恢复时,请确保

    • 选择正确的安全组以确保恢复的数据库的连接
    • 为还原的数据库选择正确的参数组
    • 建议保留快照的参数组,以帮助使用正确的参数组进行恢复

导出快照到 S3

  • 可以导出所有类型的备份(自动/手动或使用 AWS 备份服务创建的备份)
  • 如何出口?
    • 设置具有适当 IAM 权限的 S3 存储桶,并为 SSE 创建KMS密钥
    • 使用控制台(Actions -> Export to Amazon S3)或使用 start Export task CLI 命令导出快照
  • 导出在后台运行
  • 不会影响数据库性能
  • 以 Apache Parquet 格式导出的数据(压缩、一致)
  • 允许您使用 Athena 或 Redshift Spectrum 分析数据库数据

比较 RDS DR 策略

RTO
Recovery time objective
RPO
Recovery point object
Cost Scope
Automated backups Good Better Low Single Region
Manual snapshots Better Good Medium Cross-Region
Read replicas Best Best High Cross-Region

如何解决复制错误的建议

  • 调整副本的大小以匹配源数据库(存储大小和数据库实例类)
  • 对源数据库和副本使用兼容的数据库参数组设置
  • 例如,读取副本允许的最大数据包必须与源数据库实例的数据包相同
  • 监视副本实例的 Replication State 字段
  • 如果 Replication State = Error,然后查看 Replication Error 字段中的错误详细信息
  • 使用 RDS 事件通知获取有关此类副本问题的警报
  • 写入读取复制副本上的表
    • 将只读设置为0以使读取副本可写
    • 仅用于维护任务(如仅在复制副本上创建索引)
    • 如果您在读取副本上写入表,可能会使其与源数据库不兼容并破坏复制
    • 因此,在完成维护任务后立即设置read-only=1
  • 只有像lnnoDB这样的事务存储引擎才支持复制,使用MylSAM这样的引擎会导致复制错误
  • 使用不安全的非确定性查询(如SYSDATE)(可能会破坏复制)
  • 您可以跳过复制错误(如果不是主要错误),也可以删除并重新创建复制副本

对于MySQL:

  • 错误或数据不一致b/w源实例和replica
    • 可能是由于 binlog 事件或 lnnoDB 重做日志在 replica 或源实例失败期间未刷新而发生的
    • 必须手动删除并重新创建复制
  • 预防性建议:
    • sync_binlog=1
    • innodb_flush_log_at_trx_commit=1
    • innodb_support_xa=1
  • 这些设置可能会降低性能(因此在转到生产前进行测试)
posted @ 2023-07-08 20:07  Bota5ky  阅读(92)  评论(0编辑  收藏  举报