问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql-mha从库能有多少

发布网友 发布时间:2022-04-26 10:43

我来回答

3个回答

懂视网 时间:2022-04-30 06:45

-----构建mysql高可用系列(共9篇)

    上一篇文章介绍了本次架构中的Mysql源码安装。本篇文章主要介绍本次架构中的ABBB复制。

    首先我们先介绍什么是MySql AB复制????

        AB复制又称主从复制,实现的是数据同步。如果要做MySQL AB复制,数据库版本尽量保持一致。如果版本不一致,从服务器版本高于主服务器,但是版本不一致不能做双向复制。

    MySQL AB复制有什么好处呢?

        a.解决宕机带来的数据不一致,因为MySQL AB复制可以实时备份数据。

        b.减轻数据库服务器压力,这点很容易想到,多台服务器的性能一般比单台要好。

    AB复制主要通过2个线程实现:

        a.I/O线程:从主库上把bin-log下载到从库后,放到从库的Relay-log中。(从库中的)

        b.SQL线程:把Relay-log中的动作,在从库上做一次。(从库中的)

    AB复制的3个主要步骤

        a.主服务器把数据更改记录到二进制日志中,这个操作叫做二进制日志事件。

        b.从服务器把主服务器的二进制日志事件拷贝到自己的中继日志(relay log)中。

        c.从服务器执行中继日志中的事件,把更改应用到自己的数据上。

    修改主库和从库的参数文件(/etc/my.cnf)

        主库:10.142.132.52    #[mysqld]标签下追加

server_id =1         #表示是本机的序号为1,一般来讲就是master的意思
wait_timeout=360000  #服务器在关闭它之前在一个连接上等待行动的秒数。
log-bin=binlog#开启Binlog日志
log-bin-index=binlog.index  #开启Binlog日志的索引文件
log_slave_updates=1     #表示slave将复制事件写进自己的二进制日志
sync-binlog = 1     #当每进行1次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
auto_increment_offset = 2  #表示自增长字段从那个数开始,他的取值范围是1 .. 65535
auto_increment_increment = 2 #表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

        从库1:10.142.132.51(备主)    #[mysqld]标签下追加

relay_log_purge=0     #是否自动清空不再需要中继日志时,0不启动
server_id =2
wait_timeout=360000   #服务器在关闭它之前在一个连接上等待行动的秒数。
log-bin=binlog        #开启Binlog日志
log-bin-index=binlog.index  #开启Binlog日志的索引文件
log_slave_updates=1    #表示slave将复制事件写进自己的二进制日志
sync-binlog = 1    #当每进行1次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
auto_increment_offset = 1    #表示自增长字段从那个数开始,他的取值范围是1 .. 65535
auto_increment_increment = 2   #表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

        从库2:10.142.132.48    #[mysqld]标签下追加

read_only=1    #只读操作控制
relay_log_purge=0   #是否自动清空不再需要中继日志时,0不启动
server_id = 3
relay_log = /app/mysql/mysql-relay-bin   #定义relay_log的位置和名称
relay_log_index=/app/mysql/mysql-relay-bin.index  #定义relay_log的索引文件位置和名称
wait_timeout=360000  #服务器在关闭它之前在一个连接上等待行动的秒数。

        从库3:10.142.132.47    #[mysqld]标签下追加

read_only=1    #只读操作控制
relay_log_purge=0   #是否自动清空不再需要中继日志时,0不启动
server_id = 4
relay_log = /app/mysql/mysql-relay-bin   #定义relay_log的位置和名称
relay_log_index=/app/mysql/mysql-relay-bin.index   #定义relay_log的索引文件位置和名称
wait_timeout=360000   #服务器在关闭它之前在一个连接上等待行动的秒数。

        主库    #创建用AB复制所需的用户

mysql> GRANT replication slave ON *.* TO ‘lipengfei‘@‘%‘ identified by ‘lipengfei‘;
mysql> flush privileges;

        所有从库    #如果从库以前有数据,要干掉原有数据,保持从库是干净的

service mysql stop  #停止Mysql服务
cd /app/mysql/data  #进入数据目录
rm -fr 数据库目录   #删除数据库目录
service mysql restart  #启动Mysql服务

        主库    #主库的数据导出,并导入所有从库,保持数据一致

mysqldump -u root -pmysql m >/tmp/full.sql  #主库导出数据
scp /tmp/full.sql root@从库IP:/tmp/    #主库导出的数据通过scp传送到所有从库

        所有从库    #导入主库传过来的数据

 mysql -u root -pmysql m < /tmp/full.sql  #导入主库传递过来的数据

        主库    #为主库加上只读锁,查看当前Binlog日志情况

mysql> flush tables with read lock; #给主库加上读锁
mysql> show master status;  #查看Bin-log状态
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000001 |      402 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
mysql>unlock tables;   #给主库解锁

        所有从库    #向主库做同步操作,开启AB复制

mysql> change master to master_host=‘主库IP‘, master_port=主库端口, master_user=‘同步用户‘, master_password=‘同步用户的密码‘, master_log_file=‘主库Binlog‘,master_log_pos=主库Binlog位置;    #向主库做同步操作
mysql> start slave;  #启动AB复制

        所有从库    #查看AB复制的状态

mysql> show slave status G
Slave_IO_Running: Yes  #I/O线程状态OK
Slave_SQL_Running: Yes  #SQL线程状态OK
Seconds_Behind_Master: 0  #同步效率非常好,没有延迟

        主库   #模拟产生数据

mysql> create database slave;  #创建数据库
mysql> use slave;       #选择数据库
mysql> create table a(a int);   #创建表
mysql> insert into a values(1);  #插入数据
mysql> insert into a values(2);  #插入数据

        所有从库    #查看数据同步状态

mysql> show databases;  #查看当前有哪些数据库(主库新建的slave库同步过来了)
mysql> use slave;   #选择数据库
mysql> select * from a;  #查看a表数据

    如果从库的同步进程停止了,主库的操作还会往从库中同步吗?会丢数据吗?

        所有从库    #模拟服务出现问题 

 service mysql stop   #停止mysql服务,模拟从库出现问题

        主库    #从库出现问题,此期间主库正常操作

use slave;    #选择数据库
insert into a values(3);    #插入数据
insert into a values(4);    #插入数据

        所有从库  #问题解决,查看有没有丢数据

service mysql start   #启动Mysql服务
mysql >use slave;   #选择数据库
mysql >select * from a;  #数据自动同步过来了,主库的数据没有丢失

    上面的结果说明了,从库中肯定保存着主库相关的配置:

/app/mysql/data/master.info

    到此为止,咱们的AB复制操作就结束了!

    只要朋友们仔细点按着我写的文章一步一步操作,相信你也可以成功搭建AB复制的,加油吧!



本文出自 “走不完的路,看不完的书!” 博客,请务必保留此出处http://51power.blog.51cto.com/3549599/1671641

探索MySQL高可用架构之MHA(4)

标签:ha   高可用   keepalived   读写分离   mha   

热心网友 时间:2022-04-30 03:53

它由日本DeNA公司youshimaton(现就职于*公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。
在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

热心网友 时间:2022-04-30 05:11

我们知道,MHA是基于MySQL Replication环境的,在该环境中,不管是Master角色,还是Slave角色,都称为Node,是被监控管理的对象节点。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招投标技术负责人是什么证 欧美的经典的线稿漫画 推荐几款欧美漫画,跪求!!! 十大DC漫画推荐 DC漫画必看经典盘点 dc好看的漫画有哪些 十大欧美漫画推荐 欧洲经典漫画盘点 欧洲好看的漫画有哪些 欧美有哪些经典的漫画作品? 十大美国漫画推荐 美国漫画经典作品 美国著名的漫画有哪些 音悦台mini客户端为什么不能记住账号自动登录呢,,,每次都要重新输~郁... 请问 音悦台 和 百度 怎样解绑手机? 如何注册音悦台账号 微信算那种知识产权 为什么要搭建&quot;mysql-lvs+keepalived+mha 微信图片怎样加注释 怎么微信后面有时候有标注 微信小程序中的什么没有房产证? 公众号怎样做才能受法律保护,知识产权保护; 佛山陶瓷机械厂家有那些? 陶瓷机械主要是指什么? 陶瓷机械加工在哪里? 制作陶瓷的主要设备是什么? 验厂流程 请介绍一下陶瓷的制造过程? 安佳黄油保质期多久 我公司是陶瓷厂,做地板砖的,现在购入一批五金配件一批入仓库,五金配件是10000元,车间领用了5000元 陶瓷厂成型车间设备介绍 我想开个小一点的生产瓷砖的厂。我想问一下。要什么设备。大约多少钱。 从面包房买的散装黄油,怎么保存?能保存多长时间? 塑胶五金厂的PMC怎样开展工作的? 求陶瓷厂车间管理制度? 陶瓷管生产厂家盘点 怎么看待腾讯表示微信持所有权,而消费者只有使用权? java怎么连接mysql-mha集群 resin日志报以下错误, 数据库用的Mysql,atlas做的读写分离,主从的max... mysql mha网络故障时会切换吗 求助,mysql MHA masterha mysql mha pxc哪个更好 atlas做mysql的读写分离 怎么验证是否成功 excel表格怎么设置公式在一个范围内能自动刷新然后能保留到五或者十? 怎么把excel表格中的公式引用从手动改成自动?急 请问如何设置函数中引用工作表且自动更新: CorelDRAW 9怎么竖着打字 cdr4打出来的一行字是横的,怎样把它变一行竖的 coreldraw x7字体怎么竖着打 coreldraw中 怎样把打出来的字从横的变成竖的,每次都要调,能不能调一次就不用调了? CDR中字体怎么都正不过来 coreldraw12怎么竖着打字 coreldrawx4打字可以竖排但字不竖 如何设置CDR的文字一点击就是打横的 为什么我在cdr里面制作表格输入文字,怎么每次的光标都是竖式的? 笔记本电脑更改储存空间时为什么一直显示错误代码0x80070002?