日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql-mmm高可用架构

發(fā)布時間:2024/4/13 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql-mmm高可用架构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、說明

1、本文將介紹如何使用mysql-mmm搭建數(shù)據(jù)庫的高可用架構(gòu),MMM即Master-Master?Replication?Manager?for?MySQL(mysql主主復(fù)制管理器)關(guān)于mysql主主復(fù)制配置的監(jiān)控、故障轉(zhuǎn)移和管理的一套可伸縮的腳本套件(在任何時候只有一個節(jié)點可以被寫入),這個套件也能對居于標準的主從配置的任意數(shù)量的從服務(wù)器進行讀負載均衡,所以你可以用它來在一組居于復(fù)制的服務(wù)器啟動虛擬ip,除此之外,它還有實現(xiàn)數(shù)據(jù)備份、節(jié)點之間重新同步功能的腳本。MySQL本身沒有提供replication?failover的解決方案,通過MMM方案能實現(xiàn)服務(wù)器的故障轉(zhuǎn)移,從而實現(xiàn)mysql的高可用。MMM不僅能提供浮動IP的功能,更可貴的是如果當前的主服務(wù)器掛掉后,會將你后端的從服務(wù)器自動轉(zhuǎn)向新的主服務(wù)器進行同步復(fù)制,不用手工更改同步配置。這個方案是目前比較成熟的解決方案(上面這段話從網(wǎng)上載錄)。至于mmm的具體介紹我這里就不多講了,詳情請看官網(wǎng):http://mysql-mmm.org。2、該方案的優(yōu)缺點:優(yōu)點:穩(wěn)定性高,可擴展性好,高可用,當主服務(wù)器掛掉以后,另一個主立即接管,其他的從服務(wù)器能自動切換,不用人工干預(yù)。缺點:monitor節(jié)點是單點,不過這個你也可以結(jié)合keepalived或者haertbeat做成高可用二、環(huán)境1、服務(wù)器列表
服務(wù)器主機名IPserverIDmysql版本系統(tǒng)
master1db1172.28.26.101101mysql5.5.15Centos?6.4
master2db2172.28.26.102102mysql5.5.15Centos?6.4
slave1db3172.28.26.188188mysql5.5.15Centos?6.4
slave2db4172.28.26.189189mysql5.5.15Centos?6.4
monitormonitor172.28.26.103?Centos?6.4
2、虛擬IP列表
VIPRoledescription
172.28.26.104write應(yīng)用配置的寫入VIP
172.28.26.105read應(yīng)用配置的讀入VIP
172.28.26.106read應(yīng)用配置的讀入VIP

三、mysql的安裝1、只在master1上安裝即可,其他機器scp過去就好,最好用rsynctar -zxvf mysql-5.5.15.tar.gz cd mysql-5.5.15 cmake -DCMAKE_INSTALL_PREFIX:PATH=/data/mysql/navy1 -DMYSQL_DATADIR=/data/mysql/navy1/db -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 make make install useradd mysql -s /sbin/nologin; cd /data/mysql/navy1; chown mysql:mysql db/ logs/ -R

?

vi?/data/mysql/navy1/my.cnf?(cp一份線上的配置文件修改一下)[mysqld_safe] log-error=/data/mysql/navy1/logs/mysqld.log pid-file=/data/mysql/navy1/logs/mysqld.pid [client] port = 3306 socket = /data/mysql/navy1/logs/mysql.sock [mysqld] port = 3306 socket = /data/mysql/navy1/logs/mysql.sock key_buffer = 384M max_allowed_packet = 1M table_cache = 512 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 64M basedir=/data/mysql/navy1 datadir=/data/mysql/navy1/db thread_concurrency = 8 log-bin=mysql-bin binlog_format = mixed server-id = 101 max_connections=2048 character_set_server=utf8 wait_timeout=1800 interactive_timeout=1800 skip-show-database skip-name-resolve tmp_table_size = 512M max_heap_table_size = 512M binlog-ignore-db = mysql replicate-ignore-db = mysql binlog-ignore-db = information_schema replicate-ignore-db = information_schema binlog-ignore-db = performance_schema replicate-ignore-db = performance_schema binlog-ignore-db = test replicate-ignore-db = test innodb_data_home_dir = /data/mysql/navy1/db #innodb_data_file_path = ibdata1:4000M;ibdata2:10M:autoextend innodb_file_per_table=1 innodb_log_group_home_dir = /data/mysql/navy1/db innodb_buffer_pool_size = 2000M innodb_additional_mem_pool_size = 20M innodb_log_file_size = 100M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 50 #default-storage-engine = MyISAM default-storage-engine = InnoDB [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [isamchk] key_buffer = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout

?

初始化數(shù)據(jù)庫:/data/mysql/navy1/scripts/mysql_install_db --user=mysql --basedir=/data/mysql/navy1 --datadir=/data/mysql/navy1/db/

?

啟動數(shù)據(jù)庫:cd /data/mysql/navy1; /data/mysql/navy1/bin/mysqld_safe --defaults-extra-file=/data/mysql/navy1/my.cnf --user=mysql &

?

2、其他三天機器的mysql的安裝僅需四步:A、把已經(jīng)安裝好的master上的mysql停掉,rsync到master2、和兩臺slave的對應(yīng)目錄下(/data/mysql/navy1)B、建用戶、改權(quán)限useradd mysql -s /sbin/nologin; cd /data/mysql/navy1; chown mysql:mysql db/ logs/ -RC、修改/data/mysql/navy1/my.cnf中的serverIDD、啟動數(shù)據(jù)庫:cd /data/mysql/navy1; /data/mysql/navy1/bin/mysqld_safe --defaults-extra-file=/data/mysql/navy1/my.cnf --user=mysql &

?

四、主從配置(master1和master2配置成主主,slave1和slave2配置成master1的從):1、在master1上授權(quán):grant replication slave on *.* to slave@'172.28.26.102' identified by "123456"; grant replication slave on *.* to slave@'172.28.26.188' identified by "123456"; grant replication slave on *.* to slave@'172.28.26.189' identified by "123456";

?

2、在master2上授權(quán):grant replication slave on *.* to slave@'172.28.26.101' identified by "123456"; grant replication slave on *.* to slave@'172.28.26.188' identified by "123456"; grant replication slave on *.* to slave@'172.28.26.189' identified by "123456";

?

3、把master2、slave1和slave2配置成master1的從庫:A、在master1上執(zhí)行show?master?status?\G?獲取binlog文件和Position點mysql> show master status \G ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 3974 Current database: *** NONE *** *************************** 1. row *************************** File: mysql-bin.000024 Position: 107 Binlog_Do_DB: Binlog_Ignore_DB: mysql,information_schema,performance_schema,test,mysql,information_schema,performance_schema,test 1 row in set (0.00 sec)

?

B、在master2、slave1和slave2執(zhí)行change master to master_host='172.28.26.101', master_Port=3306, master_user='slave', master_password='123456', master_log_file='mysql-bin.000024', master_log_pos=107; slave start;

?

4、把master1配置成master2的從庫:A、在master2上執(zhí)行show?master?status?\G?獲取binlog文件和Position點mysql> show master status \G *************************** 1. row *************************** File: mysql-bin.000025 Position: 107 Binlog_Do_DB: navy Binlog_Ignore_DB: mysql,mysql,information_schema,performance_schema,test,mysql,information_schema,performance_schema,test 1 row in set (0.00 sec)

?

B、在master1上執(zhí)行:change master to master_host='172.28.26.101', master_Port=3306, master_user='slave', master_password='123456', master_log_file='mysql-bin.000025', master_log_pos=107; slave start;

?

5、在各個機器上執(zhí)行:mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.28.26.102 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000025 Read_Master_Log_Pos: 107 Relay_Log_File: mysqld-relay-bin.000015 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000025 Slave_IO_Running: Yes Slave_SQL_Running: Yes

?

如果Slave_IO_Running和Slave_SQL_Running都為yes,那么主從就已經(jīng)配置OK了

?

五、mysql-mmm安裝1、db節(jié)點:yum -y install mysql-mmm-agent

?

2、monitor節(jié)點:yum -y install mysql-mmm*

?

六、mysql-mmm的配置:1、在4個db節(jié)點授權(quán):GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'172.28.26.%' IDENTIFIED BY '123456'; GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'172.28.26.%' IDENTIFIED BY '123456';

?

2、修改配置文件vi?/etc/mysql-mmm/mmm_common.conf?(db、monitor一樣樣的)active_master_role writer <host default> cluster_interface eth1 pid_path /var/run/mysql-mmm/mmm_agentd.pid bin_path /usr/libexec/mysql-mmm/ replication_user slave replication_password 123456 agent_user mmm_agent agent_password 123456 </host> <host db1> ip 172.28.26.101 mysql_port 3306 mode master peer db2 </host> <host db2> ip 172.28.26.102 mysql_port 3306 mode master peer db1 </host> <host db3> ip 172.28.26.188 mysql_port 3306 mode slave peer db3 </host> <host db4> ip 172.28.26.189 mysql_port 3306 mode slave peer db4 </host> <role writer> hosts db1, db2 ips 172.28.26.104 mode exclusive </role> <role reader> hosts db3, db4 ips 172.28.26.105,172.28.26.106 mode balanced </role>

?

PS:

peer的意思是等同,表示db1db2是同等的。

ips指定VIP

mode?exclusive?只有兩種模式:exclusive是排他,在這種模式下任何時候只能一個host擁有該角色

balanced模式下可以多個host同時擁有此角色。一般writerexclusivereaderbalanced

vi?/etc/mysql-mmm/mmm_agent.conf?(master1、master2、slave1和slave2分別修改為:this?db1、db2、db3、db4)vi?/etc/mysql-mmm/mmm_mon.conf(僅monitor節(jié)點有)include mmm_common.conf <monitor> ip 127.0.0.1 pid_path /var/run/mysql-mmm/mmm_mond.pid bin_path /usr/libexec/mysql-mmm status_path /var/lib/mysql-mmm/mmm_mond.status ping_ips 172.28.26.101,172.28.26.102 auto_set_online 10 # The kill_host_bin does not exist by default, though the monitor will # throw a warning about it missing. See the section 5.10 "Kill Host # Functionality" in the PDF documentation. # # kill_host_bin /usr/libexec/mysql-mmm/monitor/kill_host # </monitor> <host default> monitor_user mmm_monitor monitor_password 123456 </host> debug 0

?

七、mmm啟動1、db節(jié)點:/etc/init.d/mysql-mmm-agent start echo "/etc/init.d/mysql-mmm-agent start" >> /etc/rc.local

?

2、?monitor節(jié)點:

?

八、測試1、集群正常啟動:[root@monitor ~]# mmm_control show db1(172.28.26.101) master/ONLINE. Roles: writer(172.28.26.104) db2(172.28.26.102) master/ONLINE. Roles: db3(172.28.26.188) slave/ONLINE. Roles: reader(172.28.26.106) db4(172.28.26.189) slave/ONLINE. Roles: reader(172.28.26.105)

?

2、停掉db1,看172.28.26.104是否漂移到db2上,db3、db4的主是否切換到db2[root@monitor ~]# mmm_control show db1(172.28.26.101) master/HARD_OFFLINE. Roles: db2(172.28.26.102) master/ONLINE. Roles: writer(172.28.26.104) db3(172.28.26.188) slave/ONLINE. Roles: reader(172.28.26.106) db4(172.28.26.189) slave/ONLINE. Roles: reader(172.28.26.105)mysql> show slave status \G Connection id: 5844 Current database: *** NONE *** *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.28.26.102 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000025 Read_Master_Log_Pos: 107 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000025 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB:

?

轉(zhuǎn)載于:https://blog.51cto.com/navyaijm/1230674

總結(jié)

以上是生活随笔為你收集整理的mysql-mmm高可用架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99热这里只有精品9 日韩综合在线 | 男女激情大尺度做爰视频 | 图片区小说区视频区 | 精品乱码一区二区三区 | 日韩精品第一页 | 久久久久久久久久久国产 | 午夜天堂精品久久久久 | 奇米影视9999 | 亚洲手机视频 | 深夜福利视频网站 | 乳揉みま痴汉4在线播放 | 成人福利免费视频 | 黄色av成人 | 日本一区二区在线免费观看 | 在线观看福利视频 | 国产一区二区三区视频免费在线观看 | 成人午夜视频免费看 | 大尺度叫床戏做爰视频 | 成人精品一区二区三区在线 | 亚洲av无码一区二区二三区 | 99精品国产99久久久久久97 | 一级片一区 | 女人十八毛片嫩草av | 中文人妻熟妇乱又伦精品 | 91在线精品一区二区三区 | 亚洲精品热| www.白浆 | 国产精品久久综合视频 | av色成人 | 免费特级毛片 | 少妇一级淫片免费看 | 好吊操这里只有精品 | 欧美国产精品一区二区 | 国产91视频在线观看 | 96在线视频| 永久免费在线播放 | 最新中文字幕免费视频 | 欧美激情亚洲 | 亚洲国产成人精品久久 | 在线观看日本一区 | 久久av不卡 | 久久久欧美精品sm网站 | 欧美拍拍 | 亚洲 欧美 综合 | 欧美激情视频网址 | 波多野结衣网址 | 午夜久久久久 | 成人片片| 天天干b | 亚洲久爱 | 99免费在线观看视频 | 精品久久人人妻人人做人人 | 香蕉久久网站 | 色爱AV综合网国产精品 | 男人免费视频 | 在线看黄网站 | 亚洲一区福利视频 | 日本免费电影一区二区三区 | mm131丰满少妇人体欣赏图 | 久久99热精品 | 国产精品麻豆视频 | 伊人久久婷婷 | 性欧美欧美巨大69 | 波多野结衣亚洲视频 | 亚洲五月激情 | 成人h片在线观看 | 国产只有精品 | 九九热精品在线视频 | 日韩综合精品 | 久久久老司机 | 人妻洗澡被强公日日澡电影 | 五月天婷婷综合网 | 日韩国产二区 | 日韩久久中文字幕 | 91精品久久久久久 | 免费在线观看亚洲 | 国产视频不卡一区 | 国产伦精品一区三区精东 | 久久国产精品国产精品 | 免费网站成人 | 日本一级二级视频 | 河北彩花中文字幕 | 91亚洲精品国偷拍 | 97在线视频人妻无码 | 男人爱看的网站 | 欲涩漫入口免费网站 | www四虎精品视频免费网站 | 成年人黄网站 | 成人自拍偷拍 | 日韩一区二区三区四区 | 羞羞网站在线观看 | 欧美久久久 | 向日葵视频在线播放 | 高清一区二区 | 亚洲性色av| 亚洲日本色 | 精品国产伦一区二区三 | 中文字幕免费高清视频 | 久久久久久国产精品免费播放 |