Mariadb复制过滤与监控维护

1.复制中的过滤

 

有时候我们只需要slave仅复制有限的几个数据库或表,而非所有;

有两种实现思路:

(1)主服务器仅向二进制日志中记录有特定数据库相关的写操作;

问题:即时点还原将无法全面实现;

binlog_do_db=    # 数据库白名单

binlog_ignore_db=  # 数据库黑名单

(2)从服务器的SQL_THREAD仅在中继日志中读取特定数据相关的语句并应用在本地;

问题:会造成网络带宽和磁盘IO的浪费;

replicate_do_db=dbname#只复制某个库

replicate_ignore_db=dbname#不复制某个库

replicate_do_table=tablename#只复制某个表

replicate_ignore_table=tablename#不复制某个表

replicate_wild_do-table=tablename%#只复制某些表(可用匹配符)

replicate_wild_ignore_table=tablename%#不复制某些表

设置方法:

setglobal replicate_do_db=testdb;

或加到my.cnf [mysqld]中

注意:

使用replicate_do_db和replicate_ignore_db时有一个隐患,跨库更新时会出错。

例1:

如设置replicate_do_db=test

usemysql;

updatetest.table1 set ......

第二句将不会被执行

例2:

如设置replicate_ignore_db=mysql

usemysql;

updatetest.table1 set ......

第二句会被忽略执行

原因是设置replicate_do_db或replicate_ignore_db后,MySQL执行sql前检查的是

当前默认数据库,所以跨库更新语句被忽略。

可以使用replicate_wild_do_table 和 replicate_wild_ignore_table 来解决跨库更新的问题,

如:

replicate_wild_do_table=test.%

replicate_wild_ignore_table=mysql.%

这样就可以避免出现上述问题了

2.复制的监控维护

  • 清理日志:PURGE
  • 复制监控
    SHOW MASTER STATUS    #查看主服务器状态信息
    SHOW SLAVE STATUS     #查看从服务器状态信息
    SHOW BINLOG EVENTS   #查看处于由mysqld维护状态中的二进制日志文件信息

例:show binlog events in ‘mysql-bin.000001‘ from 351 limit 2;

SHOW BINARY | MASTER LOGS  #查看所有的二进制日志文件

  • 如何判断slave是否落后于master

show slave status\G;中有一项

Seconds_Behind_Master: 0

  • 如何确定主从节点数据是否一致?

创建表createtable的时候有一个选项 checksum,如果启用了就可以通过表自身的 CHECKSUM检查,show tablestatus\G查看,这个项的内容主从服务器要一致

使用percona-tools中pt-table-checksum

  • 数据不一致的修复方法:

重复复制;

  • 跟复制功能相关的文件:

master.info:用于保存slave连接至master时的相关信息(只有从服务器上才有);

relay-log.info:保存了当前slave节点上已经复制的当前二进制日志和本地relay log日志对应关系(只有从服务器上才有);

时间: 2024-12-23 07:17:48

Mariadb复制过滤与监控维护的相关文章

MySQL 复制过滤器、监控维护及主从复制的读写分离

MySQL 复制过滤器.监控维护及基于SSL的主从复制 =============================================================================== 概述: 本章将主要介绍MySQL复制中如何过滤,监控维护,以及基于SSL的主从复制,具体内容如下: MySQL 复制过滤器 ·从服务器库级别过滤 MySQL 清理日志:PURGE 复制监控 ·Master ·Slave 如何确定主从节点的数据是否一致 MySQL基于SSL的主从复制(

MariaDB(MySQL):半同步复制+ssl+复制过滤

一.半同步复制   1.mysql的复制 通过记录主服务器的二进制日志,并在从服务器上进行重放(replay)完成复制,默认都是异步进行的. 2.半同步复制 半同步复制是google贡献给MySQL的一个补丁,在MySQL 5.5之后就支持了,MariaDB都是支持的. MySQL的插件,一般在MySQL安装目录下; 半同步复制插件默认没有启用,需要自己安装,/usr/local/mysql/lib/plugin可以看到semisync_master.so和semisync_slave.so和其

MySQL 5.5主从关于‘复制过滤’的深入探究

关于MySQL主从复制的过滤,例如通过binlog-ignore-db.replicate-do-db.replicate-wild-do-table等.如果不好好研究过这些过滤选项就用的话,是有可能造成主从数据不一致问题的.本文将参考MySQL-5.5官方文档并结合实验,和各位一起探讨下这里的各个设置. 以下内容参考5.5官方文档 binlog_format的设置会导致一些复制执行上的差异. 格式有三种(STATEMENT,ROW,MIXED,5.5默认为STATEMENT) 当使用MIXED

mysql半同步复制及复制过滤

配置mysql半同步,前提是已经有master和slave环境. MySQL半同步配置 Master配置 安装semisync_master插件 mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; Query OK, 0 rows affected (0.02 sec) mysql>show plugins; +----------------------------+----------+------

MySQL-5.5 主从关于复制过滤的深入探究

之前也用过不同形式的'复制过滤'条件,例如binlog-ignore-db.replicate-do-db.replicate-wild-do-table等.没出问题,所以也没太深究这几个选项.最近用pt-table-checksum做例行检查的时候,发现主从竟然有不一样的块,惊出一身冷汗之余,照着官方文档配合实验好好整理了下. 以下内容参考5.5官方文档 binlog_format(STATEMENT,ROW,MIXED,5.5默认为STATEMENT)的设置会导致一些复制执行上的差异. 当使

MySQL5.7 设置同步复制过滤不用重启mysql服务进程了

在MySQL5.5/5.6里版本里,设置同步复制过滤,例如设置忽略掉test库的t2表,你需要在my.cnf配置文件里增加: replicate-ignore-table=test.t2 必须重启mysql服务进程才能生效. 在MySQL5.7里,通过一个新的命令,可以支持在线动态修改,而不须重启mysql进程就生效. Example: CHANGE REPLICATION FILTER REPLICATE_DO_DB=(db1,db2); CHANGE REPLICATION FILTER R

第四阶段 (七)MySQL REPLICATION(主从复制、半同步复制、复制过滤)

Linux运维 第四阶段 (七)MySQL REPLICATION(主从复制.半同步复制.复制过滤) 一.MySQL Replication相关概念: 1.复制的作用:辅助实现备份:高可用HA:异地容灾:分摊负载(scaleout):rw-spliting(mysql proxy工作在应用层). 2.master有多个CPU允许事务并行执行,但往二进制日志文件只能一条条写:slave比master要慢:master-slave默认异步方式传送. 3.半同步:仅负责最近一台slave同步成功,其它

MySQL 5.7在线设置复制过滤【转】

转自 MySQL 5.7在线设置复制过滤 - yayun - 博客园 https://www.cnblogs.com/gomysql/p/4991197.html 5.7也GA了,有许多新的特性,其中现在可以进行在线设置复制过滤了.但是还是得停复制,不过不用重启实例了.方便了DBA们进行临时性的调整.下面就简单的测试一下.MySQL 5.7的安装有了很大的变化,我主要是安装的二进制版本.关于如何安装以及如何搭建好复制这种小事,相信聪明的你可以很快搞定.安装请参考http://dev.mysql.

mariadb复制——加密复制

背景 本来也是一时兴起打算抓包玩,但是没想到却在无意之间抓到了mariadb复制的明文报文.于是乎便到mysql官方文档看看有没有关于数据加密的信息,毕竟复制过程之接明文还是挺不安全的:在mysql的参考文档中还真找到了加密复制的实现,下面便开始具体的实现流程. 环境 CA 192.168.99.131 Master 192.168.99.135 Slave 192.168.99.150 CA:用来给master和slave节点签发证书Maser:作为主节点数据库服务器slave:作为从节点数据