在线更改复制过滤选项的方法
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,如何在线更改复制过滤选项?针对这个问题,今天小编总结这篇有关修改复制过滤的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。前言:MySQL最常用的架构就是主从复制了,其实主从复制有很多
千家信息网最后更新 2025年01月20日在线更改复制过滤选项的方法
如何在线更改复制过滤选项?针对这个问题,今天小编总结这篇有关修改复制过滤的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。
前言:
MySQL最常用的架构就是主从复制了,其实主从复制有很多选项,特别是在从库端,我们可以设置复制过滤,比如说忽略某张表或某个库。这些过滤选项都是可以在线修改而不用重启的。原来对这块了解不多,最近看了下相关资料,个人觉得这个功能还是很方便的,本篇文章会将这块内容分享给大家。
1.复制过滤参数介绍
首先我们要了解设置复制过滤的不同参数。复制过滤是在从库端设置的,可以只复制某些库或某些表,也可以忽略复制某些库或某些表。这些都是由不同参数控制的,下面简单介绍下不同参数的作用。
- REPLICATE_DO_DB:指定只同步某个库的数据
- REPLICATE_IGNORE_DB:忽略某个库的同步
- REPLICATE_DO_TABLE:指定同步某个表
- REPLICATE_IGNORE_TABLE:忽略某个表的同步
- REPLICATE_WILD_DO_TABLE:指定同步某些表,可以用通配符
- REPLICATE_WILD_IGNORE_TABLE:忽略某些表的同步,可以用通配符
- REPLICATE_REWRITE_DB:从库端替换库名
这些复制过滤参数还是很好理解的,只看名字就能大概了解该参数的作用。默认情况下,这些参数是都没有设置的,开启主从复制后从库端会默认同步全部从主库发来的数据。
2.修改复制过滤选项
当我们想临时调整从库的复制策略时,可以设置上述参数。我们可以将过滤参数写入配置文件然后重启从库即可应用,但这种方法需要重启实例,不做推荐。MySQL5.7版本可以进行在线设置复制过滤了。但是还是得停复制,不过不用重启实例了,方便进行临时性的调整。主要用到的是CHANGE REPLICATION FILTER语句,下面就简单的测试一下:
# 默认未设置复制过滤mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35198 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 910 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 35198 # 设置忽略db1库的复制 mysql> STOP SLAVE SQL_THREAD;Query OK, 0 rows affected (0.00 sec)mysql> CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB = (db1);Query OK, 0 rows affected (0.00 sec)mysql> START SLAVE SQL_THREAD;Query OK, 0 rows affected (0.01 sec)mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35198 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 910 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: db1 Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 35198# 主库创建db1测试从库是否同步mysql> CREATE DATABASE `db1` DEFAULT CHARACTER SET utf8;Query OK, 1 row affected (0.01 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || db1 || mysql || performance_schema || sys || testdb |+--------------------+6 rows in set (0.00 sec)# 查看从库状态mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || testdb |+--------------------+5 rows in set (0.00 sec)mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 33061 Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35383 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 1095 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: db1 Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 35383# 取消复制过滤参数mysql> STOP SLAVE SQL_THREAD;Query OK, 0 rows affected (0.01 sec)mysql> CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB = ();Query OK, 0 rows affected (0.00 sec)mysql> START SLAVE SQL_THREAD;Query OK, 0 rows affected (0.01 sec)mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35383 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 1095 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 35383
上面我们简单演示了下使用CHANGE REPLICATION FILTER语句在线修改复制过滤选项的方法,列举的那些过滤参数都可以使用该语句修改,不过要注意有些选项是互斥的。应该按照实际需求去设置合适的参数,下面给出官方文档中的示范语法:
CHANGE REPLICATION FILTER filter[, filter][, ...]filter: REPLICATE_DO_DB = (db_list) | REPLICATE_IGNORE_DB = (db_list) | REPLICATE_DO_TABLE = (tbl_list) | REPLICATE_IGNORE_TABLE = (tbl_list) | REPLICATE_WILD_DO_TABLE = (wild_tbl_list) | REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list) | REPLICATE_REWRITE_DB = (db_pair_list)db_list: db_name[, db_name][, ...]tbl_list: db_name.table_name[, db_table_name][, ...]wild_tbl_list: 'db_pattern.table_pattern'[, 'db_pattern.table_pattern'][, ...]db_pair_list: (db_pair)[, (db_pair)][, ...]db_pair: from_db, to_db
关于在线更改复制过滤选项的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
参数
同步
在线
方法
不同
主从
文章
更多
语句
还是
不用
作用
内容
实例
数据
是在
通配符
问题
帮助
测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发多少价格要招标
数据库怎么表示总分
未来网络技术研究中心
崩坏三苹果服务器选择
城镇地籍调查数据库每张表
崇明区企业软件开发专业服务
ps数据库变量名称不足
中职网络技术子网划分
360服务器安全卫士
维普数据库什么意思
网络安全审查意见范文
绍兴定制软件开发哪家好
服务器显示错误代码55
数据库er图箭头怎么画
小型数据库系统有哪些
花与剑角色捏脸数据库
mongodb 数据库配置
无畏契约哪个服务器好用
远程访问家里数据库
网络安全行为十禁具体内容
软件开发税率免税
嵌入式系统软件开发环境
金融行业国产数据库有哪些
三级网络技术必备
软件开发参考文献m ol
深圳商城软件开发哪里好
网络安全与道德 课件
学校用的服务器
网络技术4个
浙大网络安全学院研究生住宿