首页 > 解决方案 > 在 Cloud SQL (MySQL) 上仅复制某些表 (replicate-do-table)

问题描述

所以我创建了一个 Cloud SQL (MySQL) DBsomedb和它的只读副本somedb-replica,我怎样才能只复制它的一些表(比如replicate-do-table)?

我想要做

replicate-do-table=somedb.table1
replicate-do-table=somedb.table2

标签: mysqldatabasegoogle-cloud-platformreplicationgoogle-cloud-sql

解决方案


恐怕这是不可能的,至少在你提议的方式上是不可能的。要将复制过滤器应用于只读副本,您需要--replicate-do-table=somedb.sometbl在启动副本实例时传递标志,或者稍后连接到实例并发出命令CHANGE REPLICATION FILTER REPLICATE_DO_TABLE = somedb.sometbl(可从 MySQL 5.7 获得)。

  1. 现在,关于第一个选项, CloudSQL 文档的这个页面列出了您可以用来启动 Cloud SQL MySQL 实例的所有标志。到目前为止,您无法设置replicate-do-table选项,因此第一个选项是不可行的。
  2. 对于第二个选项,您需要 SUPER 特权。在 CLoudSQL 中,即使是 root 用户也没有 SUPER 权限。所以这个选项也是不可行的。

推荐阅读