千家信息网

replicate-rewrite-db和Replicate_Wild_Do_Table如何实现表级别映射复制

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关replicate-rewrite-db和Replicate_Wild_Do_Table如何实现表级别映射复制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇
千家信息网最后更新 2026年11月01日replicate-rewrite-db和Replicate_Wild_Do_Table如何实现表级别映射复制

这期内容当中小编将会给大家带来有关replicate-rewrite-db和Replicate_Wild_Do_Table如何实现表级别映射复制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

将3306实例下sakila的两张表actor同步到5725实例下的ming数据库中。

初始化数据

mysqldump -uroot -poracle -q --single-transaction -n -B sakila --tables actor --master-data=2 > sakila.sql

注意添加-n,不生成创建database的语句。

mysql> create database ming;

Query OK, 1 row affected (0.00 sec)

mysql> use ming

Database changed

mysql> source /root/sakila.sql

修改从库参数文件,并重启从库

添加:

replicate-rewrite-db = sakila -> ming

CHANGE MASTER TO

MASTER_HOST='192.168.61.2',

MASTER_USER='repl',

MASTER_PASSWORD='oracle',

MASTER_LOG_FILE='mysql-bin.000013',

MASTER_LOG_POS=154;

如果只添加replicate-rewrite-db这个参数,只是实现了数据库级别的复制,还不是表级别。这样会很容易复制其他操作到从库,导致sql thread报错。

比如主库执行

mysql> use sakila

mysql> create table actor_bak like actor;

Query OK, 0 rows affected (0.31 sec)

mysql> insert into actor_bak select * from actor;

Query OK, 200 rows affected (0.17 sec)

Records: 200 Duplicates: 0 Warnings: 0

mysql> update tt.test01 set c2=10 where c1=9;

Query OK, 1 row affected (0.12 sec)

Rows matched: 1 Changed: 1 Warnings: 0

有关actor_bak的动作会被传递到从库。但是从库没有tt数据库,那么就会sql thread进程就会报错。

Last_SQL_Error: Error 'Unknown database 'tt'' on query. Default database: 'ming'. Query: 'create table tt.t1 like actor_bak'

所以完整的写法应该是;

replicate-rewrite-db = sakila -> ming

replicate-wild-do-table=ming.actor

主库执行

mysql> use sakila

mysql> insert into tt.t1 select * from actor_bak;

Query OK, 200 rows affected (0.00 sec)

Records: 200 Duplicates: 0 Warnings: 0

从库不会再报错。

添加如上参数后,可以在show slave status中看到。

mysql [localhost] {msandbox} ((none)) > show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.61.2

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000013

Read_Master_Log_Pos: 9815

Relay_Log_File: relay-bin.000004

Relay_Log_Pos: 4683

Relay_Master_Log_File: mysql-bin.000013

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table: ming.actor

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 9815

Relay_Log_Space: 4884

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1051295

Master_UUID: 4c312339-ab38-11e9-86a8-000c29050245

Master_Info_File: /root/sandboxes/msb_5_7_25/data/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

Replicate_Rewrite_DB: (sakila,ming)

Channel_Name:

Master_TLS_Version:

1 row in set (0.00 sec)

在线修改参数前,需要先暂停SQL thread进程:

mysql [localhost] {msandbox} ((none)) > stop slave sql_thread;

Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} ((none)) > change replication filter replicate_rewrite_db=((sakila,ming));

Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} ((none)) > start slave sql_thread;

Query OK, 0 rows affected (0.00 sec)

Remove参数

CHANGEREPLICATIONFILTER REPLICATE_DO_DB=(),REPLICATE_IGNORE_DB=();

其它写法:

CHANGE REPLICATION FILTER

REPLICATE_WILD_IGNORE_TABLE = ('db1.new%', 'db2.new%');

如果相同的过滤规则出现了多次,那么只有最后一个规则会生效:

CHANGE REPLICATION FILTER

REPLICATE_DO_DB = (db1, db2), REPLICATE_DO_DB = (db3, db4);

CHANGE REPLICATION FILTER

REPLICATE_DO_DB = (db3,db4);

CHANGE REPLICATION FILTER

REPLICATE_DO_DB = (d1), REPLICATE_IGNORE_DB = (d2);

上述就是小编为大家分享的replicate-rewrite-db和Replicate_Wild_Do_Table如何实现表级别映射复制了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

参数 级别 数据 数据库 内容 写法 实例 规则 进程 分析 有关 相同 专业 中小 内容丰富 动作 只是 只有 如上 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 互联网科技工作委员会 互联网科技垄断 互联网科技卖菜 互联网科技股票 友谊互联网络科技 上游互联网科技 互联网科技的未来发展 互联网科技公司介绍 联恩商钥互联网科技有限公司 汉立互联网科技有限公司联系电话 北京华百购互联网科技有限公司 赶超互联网科技 微信多开 996高科技互联网公司 西安小鹰速贷互联网科技有限公司 21世纪互联网科技成就 北京互联网科技类企业分布 易租星互联网科技有限公司 数字互联网科技有限公司 颐高云石互联网科技 百单网互联网科技有限公司怎么样 互联网科技公司华为 互联网和高科技公司 华夏恒生科技与互联网科技 中和天地互联网科技有限公司 下一代互联网重大应用科技园 新氧科技和美国互联网有关系吗 福仕德教育科技互联网 美国五大互联网科技公司市值多少 每日互联网科技新闻
0