具有相同规格的 Amazon RDS 之间的单个 MySQL 数据库迁移

Single MySQL Database Migration Between Amazon RDS With Same Specifications

大家好,我的数据库问题如下:

  1. 在我的 RDS A 中,我有几个数据库,但我只对迁移一个数据库感兴趣,其中最大的一个(大约 95GB)。

  2. 该数据库有大约 700 个表、3000 个过程和一些触发器和函数(少于 20 个)。使用 DBForge Studio 2020 MySQL 在 RDS B 中备份大约需要 1.5 小时,恢复大约需要 10 小时以上(我用 mysqldump 得到了类似的时间结果)。

  3. 两个 RDS 都有 MySQL 引擎 8.0.23、8 CPU 和 32GB RAM (db.m5.2xlarge),唯一的区别是存储,它是迁移的主要原因,第一个有900GB,第二个有300GB,那是因为我删除了一些无用的数据库,我有很多多余的space,我无法降级RDS存储,我想省钱,所以,唯一的办法就是移民。

现在我的问题是:在 2 MySQL RDS 之间恢复数据库是否有比 2 中描述的更快更有效的方法?

我愿意接受您的建议,很乐意测试您的解决方案并分享结果。提前谢谢你。

根据 Wilson Hauck 的建议,我正在分享我的 RDS B 的其他信息:

在这种情况下,RDS B 没有额外的数据库,只有 Amazon RDS 安装程序创建的基本系统数据库,这是因为我想首先恢复最重的数据库。

Global Variables RDS B

为您的 RDS B 参数组考虑的建议

innodb_io_capacity=500  # from 200 to use more of available IOPS based on leased 300GB
read_rnd_buffer_size=128K  # from 512K to conserve RAM per connection and handler_read_rnd_next count
innodb_lru_scan_depth=100  # from 1024 to conserve 90% of RAM cycles used for function
innodb_flush_neighbors=2  # from 0 to push all rows for EXTENT in 1 sweep
innodb_buffer_pool_size=22G  # from ~ 48G for ~ 70% of available 32G on B server
innodb_change_buffer_max_size=50  # from 25 percent for higher rows added per second
innodb_concurrency_tickets=20000  # for reduce reque frequency 

有更多提高性能的机会,我们有可免费下载的实用程序脚本来协助性能调整,请参阅配置文件。