mysql主从复制中的几个DB

本文深入探讨了MySQL复制过程中关键配置参数的作用,包括Binlog记录的数据库、默认登录数据库、SQL语句使用的数据库以及从机中需要复制的数据库。通过合理设置这些参数,可以显著减少不必要的日志记录、I/O读取和网络流量,从而提高复制效率和资源利用率。此外,文章提供了一个实例,展示了如何在实际环境中应用这些配置技巧,以实现更高效的数据复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 主机中默认DB
● Binlog_Do_DB:设定哪些数据库(Schema)需要记录Binlog;
● Binlog_Ignore_DB:设定哪些数据库(Schema)不要记录Binlog;
好处:
可以减少主机中记录不需要的日志
可以减少从机中的I/O读取量,sql执行量
减少网络流量。
坏处:复制某个EVENT时需要判断2中的DB和1中DB是否一致,一致时主机I/O线程才将该EVENT读取给从机的I/O线程
2 主机登录时默认DB和USE DB
分别为用户登录时指定的数据库或在使用时用USE DB改变所在的数据库
3 SQL语句中用到的DB
SQL语句中用到的数据库名。比如:dbname.table-name
4 从机中默认DB
● Replicate_Do_DB:设定需要复制的数据库(Schema),多个DB 用逗号(“,”)分隔;
● Replicate_Ignore_DB:设定可以忽略的数据库(Schema);
● Replicate_Do_Table:设定需要复制的Table;
● Replicate_Ignore_Table:设定可以忽略的Table;
● Replicate_Wild_Do_Table:功能同Replicate_Do_Table,但可以带通配符来进行设置;
● Replicate_Wild_Ignore_Table:功能同Replicate_Ignore_Table,可带通配符设置;
在Slave 端设置复制过滤机制,可以保证不会出现因为默认Schema 的问题而造成Slave 和Master 数据不一致或者复制出错的问题。
但会因主机没有过滤而产生大量的中继日志,并伴随着过多的I/O和网络流量。


注:A:当2中DB与1中DB不一致时,不会记录此时3中的语句;
      当2中DB与1中DB一致时,会记录此时3中语句;但3中DB与1中DB不一致时,会终止同步,此时可以4中加入3中DB来解决。
      B:一般设置1中DB比设置4中DB更有利于节省资源。

附:应用一例#!/bin/sh
## 忽略主库中ba这样的库
mysql_bin=/app/mysql/bin
mysql_sock=/tmp/mysql.sock
#sed -i  '/replicate-wild-ignore-table=mysql.%/a\replicate-ignore-db=ba%\nreplicate-wild-ignore-table=ba%.%\n' /etc/my.cnf
sed -i  's/replicate-ignore-db=mir3_backup/replicate-ignore-db=mir3_back%/g' /etc/my.cnf
sed -i  's/replicate-wild-ignore-table=mir3_backup.%/replicate-wild-ignore-table=mir3_back%.%/g' /etc/my.cnf
#${mysql_bin}/mysqld_multi start
for i in `ls -l /tmp|grep mysql.sock|awk -F'sock' '{print $2}'`
do
${mysql_bin}/mysql -uroot -S ${mysql_sock}$i -pmysql -e "slave stop;"
sleep 1
${mysql_bin}/mysqladmin -S ${mysql_sock}$i -pmysql shutdown
sleep 1
${mysql_bin}/mysqld_multi start $i
sleep 1
${mysql_bin}/mysql -uroot -S ${mysql_sock}$i -pmysql -e "slave start;"
done
sleep 1

echo `ls -l /tmp|grep sock|awk -F'sock' '{print $2}'`


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值