在云 SQL (MySQL) 上仅复制一些 table (replicate-do-table)
Replicate only some table (replicate-do-table) on Cloud SQL (MySQL)
所以我创建了一个 Cloud SQL (MySQL) DB somedb
及其只读副本 somedb-replica
,如何才能只复制其中的一部分 table(例如replicate-do-table
)?
我想做
replicate-do-table=somedb.table1
replicate-do-table=somedb.table2
恐怕这是不可能的,至少在你提议的方式上是不可能的。要将复制过滤器应用于只读副本,您需要在启动副本实例时传递 --replicate-do-table=somedb.sometbl
标志,或者稍后连接到实例并发出命令 CHANGE REPLICATION FILTER REPLICATE_DO_TABLE = somedb.sometbl
(可从 MySQL 5.7).
- 现在,关于第一个选项,CloudSQL docs 的此页面列出了您可以用来启动 Cloud SQL MySQL 实例的所有标志。到目前为止,你无法设置
replicate-do-table
选项,所以第一个选项不可行。
- 对于第二个选项,you need SUPER privileges. In CLoudSQL, not even the root user has SUPER privileges。所以这个选项也不可行
所以我创建了一个 Cloud SQL (MySQL) DB somedb
及其只读副本 somedb-replica
,如何才能只复制其中的一部分 table(例如replicate-do-table
)?
我想做
replicate-do-table=somedb.table1
replicate-do-table=somedb.table2
恐怕这是不可能的,至少在你提议的方式上是不可能的。要将复制过滤器应用于只读副本,您需要在启动副本实例时传递 --replicate-do-table=somedb.sometbl
标志,或者稍后连接到实例并发出命令 CHANGE REPLICATION FILTER REPLICATE_DO_TABLE = somedb.sometbl
(可从 MySQL 5.7).
- 现在,关于第一个选项,CloudSQL docs 的此页面列出了您可以用来启动 Cloud SQL MySQL 实例的所有标志。到目前为止,你无法设置
replicate-do-table
选项,所以第一个选项不可行。 - 对于第二个选项,you need SUPER privileges. In CLoudSQL, not even the root user has SUPER privileges。所以这个选项也不可行