Mysql55主从半同步复制配置流程Word格式.docx

上传人:b****1 文档编号:15391848 上传时间:2022-10-29 格式:DOCX 页数:9 大小:21.33KB
下载 相关 举报
Mysql55主从半同步复制配置流程Word格式.docx_第1页
第1页 / 共9页
Mysql55主从半同步复制配置流程Word格式.docx_第2页
第2页 / 共9页
Mysql55主从半同步复制配置流程Word格式.docx_第3页
第3页 / 共9页
Mysql55主从半同步复制配置流程Word格式.docx_第4页
第4页 / 共9页
Mysql55主从半同步复制配置流程Word格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Mysql55主从半同步复制配置流程Word格式.docx

《Mysql55主从半同步复制配置流程Word格式.docx》由会员分享,可在线阅读,更多相关《Mysql55主从半同步复制配置流程Word格式.docx(9页珍藏版)》请在冰豆网上搜索。

Mysql55主从半同步复制配置流程Word格式.docx

%semi%'

;

showmasterstatus;

showvariableslike'

安装半同步复制插件master端

#在mysql命令行状态下操作

mysql>

installpluginrpl_semi_sync_mastersoname'

semisync_master.so'

修改配置文件f

#开启binlog

log-bin=mysql-bin

#binlog格式:

混合。

如不设置,默认为SBR模式,在导入含innodb表的数据库时会出错

binlog_format=mixed

#master一般设置为1

server-id=1

#开启半同步复制模式,每次重启mysql就不需要手动重新开启半同步复制模式master端

rpl_semi_sync_master_enabled=1

#当slave停机时,master等待6000毫秒(6秒)后,没接收到slave的回应,则切换到异步复制模式

rpl_semi_sync_master_timeout=6000

#需要同步的数据库

binlog-do-db=db1

binlog-do-db=db2

#需要忽略的数据库

binlog-ignore-db=mysql

重启数据库

此时Master需要同步的数据库有任何数据改变,都会被写入binlog日志里,而且此时的slave还没赶上的话,mysql第一条更新类语句执行时会等待6000毫秒(即上面设置的rpl_semi_sync_master_timeout),然后切换为异步复制模式,直到至少有一台slave赶上才转为半同步复制模式。

可以用showstatuslike'

查看,其中比较重要的参数:

Rpl_semi_sync_master_clients代表有几个slave加入半同步复制模式

Rpl_semi_sync_master_status为on代表已开启半同步复制模式,为off代表已切换为异步复制模式

Rpl_semi_sync_master_yes_tx在收到slave确认时master提交事务的数量

Rpl_semi_sync_master_no_tx在未收到slave确认时master提交事务的数量

导出数据库

#--master-data=2表示在导出数据库时会打印CHANGEMASTER指令,并加上注释符号。

一般会记录如下信息:

#MASTER_LOG_FILE='

mysql-bin.000001'

MASTER_LOG_POS=107;

#这个选项还会开启--lock-all-tables,在完成时系统会自动关闭--lock-tables

/usr/local/mysql/bin/mysqldump-ubackup--master-data=2db1>

/home/BACKUP/mysqldata/db1.sql&

/usr/local/mysql/bin/mysqldump-ubackup--master-data=2db2>

/home/BACKUP/mysqldata/db2.sql&

 

传输sql文件到slave

rsync-v--progress/home/BACKUP/mysqldata/*.sql192.169.1.41:

:

data/

前提需要在192.169.1.41配置rsync,并启动rsync--daemon

vi/etc/rsyncd.conf

uid=user

gid=user

usechroot=false

strictmodes=false

usechroot=no

maxconnections=4

logfile=/var/log/rsyncd.log

pidfile=/dev/shm/rsyncd.pid

lockfile=/dev/shm/rsync.lock

[data]

path=/home/BACKUP

readonly=false

uid=user

gid=user

hostsallow=192.169.1.40

hostsdeny=0.0.0.0/0

comment=WebApp

ignoreerrors

Slave操作

导入数据库

/usr/local/mysql/bin/mysql-ubackupdb1<

/home/BACKUP/db1.sql&

/usr/local/mysql/bin/mysql-ubackupdb2<

/home/BACKUP/db2.sql&

showslavestatus\G;

%relay%'

安装半同步复制插件slave端

installpluginrpl_semi_sync_slavesoname'

semisync_slave.so'

如不设置,默认为SBR模式,在导入含innodb的数据库时会出错

#slave一般从2开始

server-id=2

#开启半同步复制模式,每次重启mysql就不需要手动重新开启半同步复制模式slave端

rpl_semi_sync_slave_enabled=1

#在MySQL5.5版本之前,MySQLSlave实例在异常终止服务之后,可能导致复制中断,并且relaybinlog可能损坏,在MySQL再次启动之后并不能正常恢复复制。

#在MySQL5.5中这一问题得到了解决,MySQL可以自行丢弃顺坏的而未处理的数据,重新从master上获取源数据,进而回复复制。

relay_log_recovery=1

#对所有的非临时表进行只读控制。

#但是有两种情况例外:

1.对replicationthreads例外,以保证slave能够正常的进行复制。

#2.对于拥有super权限的用户,可以忽略这个选项。

#可选

#read-only=1

#忽略复制内存表使用这个选项,可选

#replicate-ignore-table=db.memory_table

#需要复制的数据库

replicate-do-db=db1

replicate-do-db=db2

replicate-ignore-db=mysql

startslave

#查看刚才导入的sql文件前30行,找到--CHANGEMASTERTOMASTER_LOG_FILE=这行,并记下mysql-bin文件名和MASTER_LOG_POS位置

head–n30/home/BACKUP/db1.sql

#连接master并开启slave模式

CHANGEMASTERTOMASTER_HOST='

192.169.1.40'

MASTER_USER='

MASTER_PASSWORD='

MASTER_PORT=3306,MASTER_LOG_FILE='

MASTER_LOG_POS=107;

startslave;

附录:

一般情况下,推荐使用MIXEDbinlog的复制。

usesquery-levellogging:

Themasterwritestheexecutedqueriestothebinarylog.Thisisaveryfast,compact,andefficientloggingmethodthatworksperfectlyinmostcases. 

附:

关于MYSQL复制的几种模式

以下转自

从MySQL5.1.12开始,可以用以下三种模式来实现:

–基于SQL语句的复制(statement-basedreplication,SBR),

–基于行的复制(row-basedreplication,RBR),

–混合模式复制(mixed-basedreplication,MBR)。

相应地,binlog的格式也有三种:

STATEMENT,ROW,MIXED。

MBR模式中,SBR模式是默认的。

在运行时可以动态改动binlog的格式,除了以下几种情况:

.存储流程或者触发器中间

.启用了NDB

.当前会话试用RBR模式,并且已打开了临时表

如果binlog采用了MIXED模式,那么在以下几种情况下会自动将binlog的模式由SBR模式改成RBR模式。

.当DML语句更新一个NDB表时

.当函数中包含UUID()时

.2个及以上包含AUTO_INCREMENT字段的表被更新时

.行任何INSERTDELAYED语句时

.用UDF时

.视图中必须要求运用RBR时,例如建立视图是运用了UUID()函数

设定主从复制模式:

log-bin=mysql-bin

#binlog_format="

STATEMENT"

ROW"

binlog_format="

MIXED"

也可以在运行时动态修改binlog的格式。

例如

SETSESSIONbinlog_format='

STATEMENT'

ROW'

MIXED'

两种模式各自的优缺点:

SBR的优点:

历史悠久,技能成熟

binlog文件较小

binlog中包含了所有数据库修改信息,可以据此来审核数据库的安全等情况

binlog可以用于实时的还原,而不仅仅用于复制

主从版本可以不一样,从服务器版本可以比主服务器版本高

SBR的缺点:

不是所有的UPDATE语句都能被复制,尤其是包含不确定操作的时候。

调用具有不确定因素的UDF时复制也可能出疑问

运用以下函数的语句也不能被复制:

*LOAD_FILE()

*UUID()

*USER()

*FOUND_ROWS()

*SYSDATE()(除非启动时启用了–sys

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1