设为首页 收藏本站
查看: 805|回复: 0

[经验分享] Mariadb复制过滤与监控维护

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-8 09:42:16 | 显示全部楼层 |阅读模式
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日志对应关系(只有从服务器上才有);




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161737-1-1.html 上篇帖子: mysql,show processlist,查询一直sending data,影响查询性能 下篇帖子: 二进制格式安装mariadb-5.5.36 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表