Mysql主主复制汇总整理

一、Mysql主主、主从复制主要思路:
1、mysql复制实质:
就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍,因此非常重要的一点是mysql数据库中必须要开启二进制日志;

2、Mysql主从复制:
就是A为主数据库,B为从数据库,B将A中数据变更的二进制日志在它数据库中重新执行一遍;(B只会随着A改变,A不会随着B改变)

3、Mysql主主复制:
就是A数据库、B数据库互相同步数据,A与B都将彼此的数据变更的二进制日志在自身数据库中重新执行一遍,就是两个主从复制的整合;(A与B互相跟随彼此进行改变)

二、Mysql主主复制操作步骤:
假定A库、B库要实现主主复制:

1、在主库中创建从库登录的账号、密码,并对账号进行授权:
创建账号:

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

授权:

2、修改mysql配置文件:
一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件为mysql.ini)

A库配置文件增加以下配置信息:
(信息见mysql_copy_update_info.txt文件)

注意在mysql配置文件中填写一下信息的位置,必须为此位置,即[mysqld]标签下面

[mysqld]

任意自然数n,只要保证两台MySQL主机不重复就可以了

server-id=1

起始值。一般填第n台主MySQL。此时为第一台主MySQL

auto_increment_offset=1

步进值auto_imcrement。一般有n台主MySQL就填n

auto_increment_increment=2

开启二进制日志

log-bin=mysql-bin

log-error=/mysqldata/mysqld.log

pid-file=/mysqldata/mysqld.pid

与此从库相对应的主库的ip地址

master-host=192.168.15.185

在相对应的主库中,此库可登录的账号

master-user=backup

在相对应的主库中,此库可登录的密码

master-password=123456

在相对应的主库中登录的端口号

master-port=3306

要同步的数据库,默认所有库,指定多个库添加新行就可以

replicate-do-db=phpcmsv9

不要同步的数据库,指定多个库添加新行就可以

replicate-ignore-db=mysql

master-connect-retry=60
B库配置文件增加的配置信息:

与A库中增加信息完全一致,除了server-id与auto_increment_offset不同外;

3、设置编码格式(否则中文容易出现乱码):
增加的配置信息如下圈出信息,如果有些标签[]中在mysql配置文件中默认没有的,自己手动添加(详情见character_encoding_info.txt文件)

[mysql]

default-character-set=utf8

[mysqld]

default-character-set = utf8
character_set_server = utf8

[mysqld_safe]

default-character-set = utf8

[mysql.server]

default-character-set = utf8

[client]

default-character-set = utf8
4、重新启动mysql数据库:

Mysql命令:service mysqld restart;

5、查看相对应的主库的二进制文件名及其位置:
在主库中用mysql命令:show master status;

6、在本库中告知相对应主库二进制文件名及其位置的信息:
A为主库,B为从库时,在B库中执行mysql命令:(详细信息请见文件change_master_to_info.txt文件)

change master to master_host='172.20.109.14',master_user='mysql913',master_password='123456',master_log_file='mysql-bin.000056',master_log_pos=151744220;

B为主库,A为从库,在A库中执行同上命令,参数进行适当修改;

7、分别启动各自的slave:
分别在各自库中执行mysql命令:slave start;

8、查看slave启动后的状态:
分别在各自库中执行mysql命令:SHOW SLAVE STATUS\G;

主要是观察:

(1)红圈的两个参数是否都是YES,如果不是,那么就是出现了异常,查看第一行的错误提示,进行异常处理,对于常见的异常处理见四中进行解决;

(2)红线为复制的数据库,查看是否是自己需要复制的数据库,如果不正确,那么久需要修改mysql的配置文件中的信息,重新从头执行一遍;

9、完成主主复制配置,进行数据测试:
三、Mysql主从复制操作步骤:
与上述主主复制步骤类似,只是主主复制对两个库都进行操作,主从复制只需要对从库进行change master to操作,对主库只需要配置开启二进制、server-id即可,对从库配置信息同上;

四、如何在现有主主上添加库:
1、在使用的mysql上先根据需要创建库,并创建需要的表添加数据;

2、在另一台mysql上同样创建对应的库,并将对应库中的数据copy过来;

3、分别修改mysql的配置文件中的replicate-do-db新增加一行,值就是要新添加的库,然后重新启动mysql服务;

4、然后通过linux命令进入mysql,查看slave是否正确启动,如果启动有异常进行处理,确保正常启动;

5、新添加的库就到了主主复制链中,进行测试即可;

五、如何在现有主主上去掉某个库:
1、分别修改mysql对应的配置文件,将需要去掉的库的replicate-do-db注释掉或者删掉;

2、重新启动mysql服务;

3、进去mysql中,分别查看mysql的日志文件信息:change master status;

4、分别重新执命令行start slave until MASTER_LOG_FILE="mysql-bin.000075", MASTER_LOG_POS=216,将从库中读取二进制日志信息位置切换到对应主库现有位置中去;

5、完成对某个库的去掉功能;

六、Mysql主主和主从复制常见异常处理:
1、Slave_IO_State: Waiting to reconnect after a failed registration on master异常:

解决方法:

在对应主库上从新对对应账号执行授权命令

grant replication slave on . to "repl'@'%' identified by 'sangfordb';

FLUSH PRIVILEGES;

然后重新stop slave 和start slave就可以

2、Slave_IO_State:connecting to master

解决方法:

原因是此账号无法连接主库,查看账号远程登录?Linux防火墙端口开放?

3、slave_sql_running:NO异常:

解决方法:

跳过执行报错的sql就好了,在从库中执行mysql命令:

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1(等号后为几看自己有几个错误了,不知道的就尝试,直到SHOW SLAVE STATUS查看结果该异常解决掉为止)

4、Slave启动正常,就是不同步数据:

原因:出现此情况的原因就是,从库中获取主库的二进制信息的文件名和位置与主库中最新数据位置不一致;

解决方法:查看主库的二进制文件名和信息:change master status;然后在从库中执行:start slave until MASTER_LOG_FILE="mysql-bin.000075", MASTER_LOG_POS=216;命令,将从库中获取主库二进制文件信息更新到主库现有状态,如果是主主复制那就在两台mysql中分别执行即可;

七、Mysql主主和主从复制服务器异常停止后处理思路:
(1)mysql或slave出现异常管理员如何获知:
1、slave异常获知:编写一个shell脚本,用nagios监控slave的两个yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主主或主从出问题了,发短信警报;

(2)管理员手动处理异常的步骤:
直接将出现异常的那台服务器或mysql重新启动就好了,另一台数据库中改动的数据会自动同步到重新启动的mysql库中;

八、Mysql主主复制中某个库或某个表因为数据原因不能同步异常:
1、将该库或该表未同步的数据导出.sql文件,通过命令:

mysqldump -uroot -p --master-data --single-transaction -R --databases zzcp03 > zzcp03.sql

2、在导出的sql里面查找当前的日志文件以及位置(change master to …)

3、将另外对应的数据库中slave stop了,然后让salve从sql文件中的位置处开始,通过命令实现:

start slave until MASTER_LOG_FILE="mysql-bin.000075", MASTER_LOG_POS=769;

4、然后让salve start起来;

5、查看两台mysql中的slave是否正常启动,不是不正常进行处理,确保正常启动,这样就可以完成该表的数据同步了;

附加代码:

在slave停止期间操作某个库或表的数据,带有日志导出信息:

mysqldump -uroot -p --master-data --single-transaction -R --databases zzcp03 > zzcp03.sql

如何将slave在指定的二进制文件位置处启动:

start slave until MASTER_LOG_FILE="mysql-bin.000075", MASTER_LOG_POS=769;
————————————————
版权声明:本文为CSDN博主「LSY_csdn_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LSY_CSDN_/article/details/79033523

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容