将 RDS 复制到新数据库的最快方法
Quickest way to copy RDS to new database
我在某个地区(比如爱尔兰)有一个生产 RDS。
我想创建一个暂存环境(比如在伦敦)并且我需要生产数据。
解决此问题的一种方法是典型的 mysqldump
/在新区域创建 RDS/mysqlimport
。
我想知道以下是否有效。
a) 创建从我的生产 RDS 到伦敦的只读副本(即我想要暂存环境的区域); (由于上述复制的异步性质,我可以容忍一些轻微的数据丢失)
b) 将新的只读副本(在伦敦)提升到主数据库中;
我唯一担心的是步骤 b 是否会使我在爱尔兰的生产 RDS 失效;我能以某种方式避免这种情况吗?
在 RDS 中将副本提升为主副本(通常 MySQL)对原始主副本没有影响。提升 MySQL 异步副本使其成为独立的主节点,永久断开与其原始上游主节点的连接。生产数据将出现在新实例上,因为它在连接被切断时存在。不支持更新或重新同步,因为升级是一次性和永久的。
这两个实例在集群中不是对等的(即使在同一区域),所以新晋升的主节点在任何意义上都不会 replace/override/modify/invalidate 旧的 - 当然,除非你还更改您的应用程序以指向新实例...您不会这样做。
我在某个地区(比如爱尔兰)有一个生产 RDS。
我想创建一个暂存环境(比如在伦敦)并且我需要生产数据。
解决此问题的一种方法是典型的 mysqldump
/在新区域创建 RDS/mysqlimport
。
我想知道以下是否有效。
a) 创建从我的生产 RDS 到伦敦的只读副本(即我想要暂存环境的区域); (由于上述复制的异步性质,我可以容忍一些轻微的数据丢失)
b) 将新的只读副本(在伦敦)提升到主数据库中;
我唯一担心的是步骤 b 是否会使我在爱尔兰的生产 RDS 失效;我能以某种方式避免这种情况吗?
在 RDS 中将副本提升为主副本(通常 MySQL)对原始主副本没有影响。提升 MySQL 异步副本使其成为独立的主节点,永久断开与其原始上游主节点的连接。生产数据将出现在新实例上,因为它在连接被切断时存在。不支持更新或重新同步,因为升级是一次性和永久的。
这两个实例在集群中不是对等的(即使在同一区域),所以新晋升的主节点在任何意义上都不会 replace/override/modify/invalidate 旧的 - 当然,除非你还更改您的应用程序以指向新实例...您不会这样做。