中文字幕人妻中文_99精品欧美一区二区三区综合在线_精品久久久久一区二区_色月丁香_免费福利在线视频_欧美大片免费观看网址_国产伦精品一区二区三区在线播放_污污污污污污www网站免费_久久月本道色综合久久_色69激情爱久久_尹人香蕉久久99天天拍_国产美女www_亚洲国产精品无码7777一线_五月婷婷六月激情_看免费一级片_精品久久久久久成人av_在线色亚洲_女人另类性混交zo_国产精品青青在线观看爽香蕉_人人澡人人添人人爽一区二区

主頁 > 知識庫 > MySQL高可用解決方案MMM(mysql多主復制管理器)

MySQL高可用解決方案MMM(mysql多主復制管理器)

熱門標簽:怎么申請400電話申請 龍圖酒吧地圖標注 好搜地圖標注 百度地圖標注地方備注 電銷機器人價格多少錢一臺 怎么辦理400電話呢 400電話申請什么好 電話機器人免費嗎 地圖標注圖標素材入駐

一、MMM簡介:

MMM即Multi-Master Replication Manager for MySQL:mysql多主復制管理器,基于perl實現,關于mysql主主復制配置的監控、故障轉移和管理的一套可伸縮的腳本套件(在任何時候只有一個節點可以被寫入),MMM也能對從服務器進行讀負載均衡,所以可以用它來在一組用于復制的服務器啟動虛擬ip,除此之外,它還有實現數據備份、節點之間重新同步功能的腳本。MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現服務器的故障轉移,從而實現mysql的高可用。MMM不僅能提供浮動IP的功能,如果當前的主服務器掛掉后,會將你后端的從服務器自動轉向新的主服務器進行同步復制,不用手工更改同步配置。這個方案是目前比較成熟的解決方案。詳情請看官網:http://mysql-mmm.org

優點:高可用性,擴展性好,出現故障自動切換,對于主主同步,在同一時間只提供一臺數據庫寫操作,保證的數據的一致性。當主服務器掛掉以后,另一個主立即接管,其他的從服務器能自動切換,不用人工干預。

缺點:monitor節點是單點,不過這個你也可以結合keepalived或者haertbeat做成高可用;至少三個節點,對主機的數量有要求,需要實現讀寫分離,還需要在前端編寫讀寫分離程序。在讀寫非常繁忙的業務系統下表現不是很穩定,可能會出現復制延時、切換失效等問題。MMM方案并不太適應于對數據安全性要求很高,并且讀、寫繁忙的環境中。

適用場景:

MMM的適用場景為數據庫訪問量大,并且能實現讀寫分離的場景。
Mmm主要功能由下面三個腳本提供:
mmm_mond 負責所有的監控工作的監控守護進程,決定節點的移除(mmm_mond進程定時心跳檢測,失敗則將write ip浮動到另外一臺master)等等
mmm_agentd 運行在mysql服務器上的代理守護進程,通過簡單遠程服務集提供給監控節點
mmm_control 通過命令行管理mmm_mond進程
在整個監管過程中,需要在mysql中添加相關授權用戶,授權的用戶包括一個mmm_monitor用戶和一個mmm_agent用戶,如果想使用mmm的備份工具則還要添加一個mmm_tools用戶。

二、部署實施

1、環境介紹

OS:centos7.2(64位)數據庫系統:mysql5.7.13

關閉selinux

配置ntp,同步時間

角色

IP

hostname

Server-id

Write vip

Read vip

Master1

192.168.31.83

master1

1

192.168.31.2


Master2(backup)

192.168.31.141

master2

2


192.168.31.3

Slave1

192.168.31.250

slave1

3


192.168.31.4

Slave2

192.168.31.225

slave2

4


192.168.31.5

monitor

192.168.31.106

monitor1


2、在所有主機上配置/etc/hosts文件,添加如下內容:

192.168.31.83 master1
192.168.31.141 master2
192.168.31.250 slave1
192.168.31.225 slave2
192.168.31.106 monitor1

在所有主機上安裝perl、perl-develperl-CPAN libart_lgpl.x86_64 rrdtool.x86_64 rrdtool-perl.x86_64包
#yum -y install perl-* libart_lgpl.x86_64 rrdtool.x86_64 rrdtool-perl.x86_64

注:使用centos7在線yum源安裝

安裝perl的相關庫

#cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::Ping Proc::Daemon Time::HiRes Params::Validate Net::ARP

3、在master1、master2、slave1、slave2主機上安裝mysql5.7和配置復制

master1和master2互為主從,slave1、slave2為master1的從
在每個mysql的配置文件/etc/my.cnf中加入以下內容, 注意server_id不能重復。

master1主機:

log-bin = mysql-bin
binlog_format = mixed
server-id = 1
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
log-slave-updates = 1
auto-increment-increment = 2
auto-increment-offset = 1
master2主機:
log-bin = mysql-bin
binlog_format = mixed
server-id = 2
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
log-slave-updates = 1
auto-increment-increment = 2
auto-increment-offset = 2
slave1主機:
server-id = 3
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
read_only  = 1
slave2主機:
server-id = 4
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
read_only  = 1

在完成了對my.cnf的修改后,通過systemctl restart mysqld重新啟動mysql服務

4臺數據庫主機若要開啟防火墻,要么關閉防火墻或者創建訪問規則:

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
主從配置(master1和master2配置成主主,slave1和slave2配置成master1的從):
在master1上授權:
mysql> grant replication slave on *.* to rep@'192.168.31.%' identified by '123456';
在master2上授權:
mysql> grant replication slave on *.* to rep@'192.168.31.%' identified by '123456';
把master2、slave1和slave2配置成master1的從庫:
在master1上執行show master status; 獲取binlog文件和Position點
mysql> show master status;
+------------------+----------+--------------+------------------+--------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+---------------------------------------------------+
| mysql-bin.000001 | 452 | | | |
+------------------+----------+--------------+------------------+-----------------------------------------------------+
在master2、slave1和slave2執行

mysql> change master to master_host='192.168.31.83',master_port=3306,master_user='rep',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=452;
mysql>slave start;
驗證主從復制:
master2主機:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.83
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 452
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
slave1主機:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.83
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 452
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
slave2主機:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.83
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 452
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果Slave_IO_Running和Slave_SQL_Running都為yes,那么主從就已經配置OK了
把master1配置成master2的從庫:
在master2上執行show master status ;獲取binlog文件和Position點
mysql> show master status;
+------------------+----------+--------------+------------------+--------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+---------------------------------------------------+
| mysql-bin.000001 | 452 | | | |
+------------------+----------+--------------+------------------+----------------------------------------------------+
在master1上執行:
mysql> change master to master_host='192.168.31.141',master_port=3306,master_user='rep',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=452;
mysql> start slave;
驗證主從復制:
master1主機:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.141
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 452
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果Slave_IO_Running和Slave_SQL_Running都為yes,那么主從就已經配置OK了
4、mysql-mmm配置:
在4臺mysql節點上創建用戶
創建代理賬號:
mysql> grant super,replicationclient,process on *.* to 'mmm_agent'@'192.168.31.%' identified by '123456';
創建監控賬號:
mysql> grant replication client on *.* to 'mmm_monitor'@'192.168.31.%' identified by '123456';
注1:因為之前的主從復制,以及主從已經是ok的,所以我在master1服務器執行就ok了。
檢查master2和slave1、slave2三臺db上是否都存在監控和代理賬號
mysql> select user,host from mysql.user where user in ('mmm_monitor','mmm_agent');
+-------------+----------------------------+
| user | host |
+-------------+----------------------------+
| mmm_agent | 192.168.31.% |
| mmm_monitor | 192.168.31.% |
+-------------+------------------------------+

mysql> show grants for 'mmm_agent'@'192.168.31.%';
+-----------------------------------------------------------------------------------------------------------------------------+
| Grants for mmm_agent@192.168.31.% |
+-----------------------------------------------------------------------------------------------------------------------------+
| GRANT PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'mmm_agent'@'192.168.31.%' |
+-----------------------------------------------------------------------------------------------------------------------------+
mysql> show grants for 'mmm_monitor'@'192.168.31.%';
+-----------------------------------------------------------------------------------------------------------------------------+
| Grants for mmm_monitor@192.168.31.% |
+-----------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'192.168.31.%' |
注2:
mmm_monitor用戶:mmm監控用于對mysql服務器進程健康檢查
mmm_agent用戶:mmm代理用來更改只讀模式,復制的主服務器等
5、mysql-mmm安裝
在monitor主機(192.168.31.106) 上安裝監控程序
cd /tmp
wget http://pkgs.fedoraproject.org/repo/pkgs/mysql-mmm/mysql-mmm-2.2.1.tar.gz/f5f8b48bdf89251d3183328f0249461e/mysql-mmm-2.2.1.tar.gz
tar -zxf mysql-mmm-2.2.1.tar.gz
cd mysql-mmm-2.2.1
make install
在數據庫服務器(master1、master2、slave1、slave2)上安裝代理
cd /tmp
wget http://pkgs.fedoraproject.org/repo/pkgs/mysql-mmm/mysql-mmm-2.2.1.tar.gz/f5f8b48bdf89251d3183328f0249461e/mysql-mmm-2.2.1.tar.gz
tar -zxf mysql-mmm-2.2.1.tar.gz
cd mysql-mmm-2.2.1
make install

6、配置mmm

編寫配置文件,五臺主機必須一致:
完成安裝后,所有的配置文件都放到了/etc/mysql-mmm/下面。管理服務器和數據庫服務器上都要包含一個共同的文件mmm_common.conf,內容如下:
active_master_rolewriter#積極的master角色的標示,所有的db服務器要開啟read_only參數,對于writer服務器監控代理會自動將read_only屬性關閉。
host default>
cluster_interfaceeno16777736#群集的網絡接口
pid_path /var/run/mmm_agentd.pid#pid路徑
bin_path /usr/lib/mysql-mmm/#可執行文件路徑
replication_user rep#復制用戶
replication_password 123456#復制用戶密碼
agent_usermmm_agent#代理用戶
agent_password 123456#代理用戶密碼
/host>
host master1>#master1的host名
ip 192.168.31.83#master1的ip
mode master#角色屬性,master代表是主
peer master2#與master1對等的服務器的host名,也就是master2的服務器host名
/host>
host master2>#和master的概念一樣
ip 192.168.31.141
mode master
peer master1
/host>
host slave1>#從庫的host名,如果存在多個從庫可以重復一樣的配置
ip 192.168.31.250#從的ip
mode slave#slave的角色屬性代表當前host是從
/host>
host slave2>#和slave的概念一樣
ip 192.168.31.225
mode slave
/host>
role writer>#writer角色配置
hosts master1,master2#能進行寫操作的服務器的host名,如果不想切換寫操作這里可以只配置master,這樣也可以避免因為網絡延時而進行write的切換,但是一旦master出現故障那么當前的MMM就沒有writer了只有對外的read操作。
ips 192.168.31.2#對外提供的寫操作的虛擬IP
mode exclusive#exclusive代表只允許存在一個主,也就是只能提供一個寫的IP
/role>
role reader>#read角色配置
hosts master2,slave1,slave2#對外提供讀操作的服務器的host名,當然這里也可以把master加進來
ips 192.168.31.3, 192.168.31.4, 192.168.31.5#對外提供讀操作的虛擬ip,這三個ip和host不是一一對應的,并且ips也hosts的數目也可以不相同,如果這樣配置的話其中一個hosts會分配兩個ip
mode balanced#balanced代表負載均衡
/role>
同時將這個文件拷貝到其它的服務器,配置不變
#for host in master1 master2 slave1 slave2 ; do scp /etc/mysql-mmm/mmm_common.conf $host:/etc/mysql-mmm/ ; done
代理文件配置
編輯 4臺mysql節點機上的/etc/mysql-mmm/mmm_agent.conf
在數據庫服務器上,還有一個mmm_agent.conf需要修改,其內容是:
includemmm_common.conf
this master1
注意:這個配置只配置db服務器,監控服務器不需要配置,this后面的host名改成當前服務器的主機名。
啟動代理進程
在 /etc/init.d/mysql-mmm-agent的腳本文件的#!/bin/sh下面,加入如下內容
source /root/.bash_profile
添加成系統服務并設置為自啟動
#chkconfig --add mysql-mmm-agent
#chkconfigmysql-mmm-agent on
#/etc/init.d/mysql-mmm-agent start
注:添加source /root/.bash_profile目的是為了mysql-mmm-agent服務能啟機自啟。
自動啟動和手動啟動的唯一區別,就是激活一個console 。那么說明在作為服務啟動的時候,可能是由于缺少環境變量
服務啟動失敗,報錯信息如下:
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Starting MMM Agent daemon... Can't locate Proc/Daemon.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/sbin/mmm_agentd line 7.
BEGIN failed--compilation aborted at /usr/sbin/mmm_agentd line 7.
failed

解決方法:

# cpanProc::Daemon
# cpan Log::Log4perl
# /etc/init.d/mysql-mmm-agent start
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Starting MMM Agent daemon... Ok
# netstat -antp | grep mmm_agentd
tcp 0 0 192.168.31.83:9989 0.0.0.0:* LISTEN 9693/mmm_agentd
配置防火墻
firewall-cmd --permanent --add-port=9989/tcp
firewall-cmd --reload
編輯 monitor主機上的/etc/mysql-mmm/mmm_mon.conf
includemmm_common.conf

monitor>
ip 127.0.0.1##為了安全性,設置只在本機監聽,mmm_mond默認監聽9988
pid_path /var/run/mmm_mond.pid
bin_path /usr/lib/mysql-mmm/
status_path/var/lib/misc/mmm_mond.status
ping_ips192.168.31.83,192.168.31.141,192.168.31.250,192.168.31.225#用于測試網絡可用性 IP 地址列表,只要其中有一個地址 ping 通,就代表網絡正常,這里不要寫入本機地址
auto_set_online 0#設置自動online的時間,默認是超過60s就將它設置為online,默認是60s,這里將其設為0就是立即online
/monitor>

check default>
check_period 5
trap_period 10
timeout 2
#restart_after 10000
max_backlog 86400
/check>
check_period
描述:檢查周期默認為5s
默認值:5s
trap_period
描述:一個節點被檢測不成功的時間持續trap_period秒,就慎重的認為這個節點失敗了。
默認值:10s
timeout
描述:檢查超時的時間
默認值:2s
restart_after
描述:在完成restart_after次檢查后,重啟checker進程
默認值:10000
max_backlog
描述:記錄檢查rep_backlog日志的最大次數
默認值:60

host default>
monitor_usermmm_monitor#監控db服務器的用戶
monitor_password 123456#監控db服務器的密碼
/host>
debug 0#debug 0正常模式,1為debug模式
啟動監控進程:
在 /etc/init.d/mysql-mmm-agent的腳本文件的#!/bin/sh下面,加入如下內容
source /root/.bash_profile
添加成系統服務并設置為自啟動
#chkconfig --add mysql-mmm-monitor
#chkconfigmysql-mmm-monitor on
#/etc/init.d/mysql-mmm-monitor start

啟動報錯:

Starting MMM Monitor daemon: Can not locate Proc/Daemon.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/sbin/mmm_mond line 11.
BEGIN failed--compilation aborted at /usr/sbin/mmm_mond line 11.
failed
解決方法:安裝下列perl的庫
#cpanProc::Daemon
#cpan Log::Log4perl
[root@monitor1 ~]# /etc/init.d/mysql-mmm-monitor start
Daemon bin: '/usr/sbin/mmm_mond'
Daemon pid: '/var/run/mmm_mond.pid'
Starting MMM Monitor daemon: Ok
[root@monitor1 ~]# netstat -anpt | grep 9988
tcp 0 0 127.0.0.1:9988 0.0.0.0:* LISTEN 8546/mmm_mond
注1:無論是在db端還是在監控端如果有對配置文件進行修改操作都需要重啟代理進程和監控進程。
注2:MMM啟動順序:先啟動monitor,再啟動 agent

檢查集群狀態:

[root@monitor1 ~]# mmm_control show
master1(192.168.31.83) master/ONLINE. Roles: writer(192.168.31.2)
master2(192.168.31.141) master/ONLINE. Roles: reader(192.168.31.5)
slave1(192.168.31.250) slave/ONLINE. Roles: reader(192.168.31.4)
slave2(192.168.31.225) slave/ONLINE. Roles: reader(192.168.31.3)

如果服務器狀態不是ONLINE,可以用如下命令將服務器上線,例如:

#mmm_controlset_online主機名

例如:[root@monitor1 ~]#mmm_controlset_onlinemaster1
從上面的顯示可以看到,寫請求的VIP在master1上,所有從節點也都把master1當做主節點。
查看是否啟用vip
[root@master1 ~]# ipaddr show dev eno16777736
eno16777736: BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
link/ether 00:0c:29:6d:2f:82 brdff:ff:ff:ff:ff:ff
inet 192.168.31.83/24 brd 192.168.31.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet 192.168.31.2/32 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe6d:2f82/64 scope link
valid_lft forever preferred_lft forever
[root@master2 ~]# ipaddr show dev eno16777736
eno16777736: BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
link/ether 00:0c:29:75:1a:9c brdff:ff:ff:ff:ff:ff
inet 192.168.31.141/24 brd 192.168.31.255 scope global dynamic eno16777736
valid_lft 35850sec preferred_lft 35850sec
inet 192.168.31.5/32 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe75:1a9c/64 scope link
valid_lft forever preferred_lft forever
[root@slave1 ~]# ipaddr show dev eno16777736
eno16777736: BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
link/ether 00:0c:29:02:21:19 brdff:ff:ff:ff:ff:ff
inet 192.168.31.250/24 brd 192.168.31.255 scope global dynamic eno16777736
valid_lft 35719sec preferred_lft 35719sec
inet 192.168.31.4/32 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe02:2119/64 scope link
valid_lft forever preferred_lft forever
[root@slave2 ~]# ipaddr show dev eno16777736
eno16777736: BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
link/ether 00:0c:29:e2:c7:fa brdff:ff:ff:ff:ff:ff
inet 192.168.31.225/24 brd 192.168.31.255 scope global dynamic eno16777736
valid_lft 35930sec preferred_lft 35930sec
inet 192.168.31.3/32 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee2:c7fa/64 scope link
valid_lft forever preferred_lft forever
在master2,slave1,slave2主機上查看主mysql的指向
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.83
Master_User: rep
Master_Port: 3306
Connect_Retry: 60

MMM高可用性測試:

服務器讀寫采有VIP地址進行讀寫,出現故障時VIP會漂移到其它節點,由其它節點提供服務。
首先查看整個集群的狀態,可以看到整個集群狀態正常
[root@monitor1 ~]# mmm_control show
master1(192.168.31.83) master/ONLINE. Roles: writer(192.168.31.2)
master2(192.168.31.141) master/ONLINE. Roles: reader(192.168.31.5)
slave1(192.168.31.250) slave/ONLINE. Roles: reader(192.168.31.4)
slave2(192.168.31.225) slave/ONLINE. Roles: reader(192.168.31.3)
模擬master1宕機,手動停止mysql服務,觀察monitor日志,master1的日志如下:
[root@monitor1 ~]# tail -f /var/log/mysql-mmm/mmm_mond.log
2017/01/09 22:02:55 WARN Check 'rep_threads' on 'master1' is in unknown state! Message: UNKNOWN: Connect error (host = 192.168.31.83:3306, user = mmm_monitor)! Can't connect to MySQL server on '192.168.31.83' (111)
2017/01/09 22:02:55 WARN Check 'rep_backlog' on 'master1' is in unknown state! Message: UNKNOWN: Connect error (host = 192.168.31.83:3306, user = mmm_monitor)! Can't connect to MySQL server on '192.168.31.83' (111)
2017/01/09 22:03:05 ERROR Check 'mysql' on 'master1' has failed for 10 seconds! Message: ERROR: Connect error (host = 192.168.31.83:3306, user = mmm_monitor)! Can't connect to MySQL server on '192.168.31.83' (111)
2017/01/09 22:03:07 FATAL State of host 'master1' changed from ONLINE to HARD_OFFLINE (ping: OK, mysql: not OK)
2017/01/09 22:03:07 INFO Removing all roles from host 'master1':
2017/01/09 22:03:07 INFO Removed role 'writer(192.168.31.2)' from host 'master1'
2017/01/09 22:03:07 INFO Orphaned role 'writer(192.168.31.2)' has been assigned to 'master2'
查看群集的最新狀態
[root@monitor1 ~]# mmm_control show
master1(192.168.31.83) master/HARD_OFFLINE. Roles:
master2(192.168.31.141) master/ONLINE. Roles: reader(192.168.31.5), writer(192.168.31.2)
slave1(192.168.31.250) slave/ONLINE. Roles: reader(192.168.31.4)
slave2(192.168.31.225) slave/ONLINE. Roles: reader(192.168.31.3)
從顯示結果可以看出master1的狀態有ONLINE轉換為HARD_OFFLINE,寫VIP轉移到了master2主機上。
檢查所有的db服務器群集狀態
[root@monitor1 ~]# mmm_control checks all
master1 ping [last change: 2017/01/09 21:31:47] OK
master1 mysql [last change: 2017/01/09 22:03:07] ERROR: Connect error (host = 192.168.31.83:3306, user = mmm_monitor)! Can't connect to MySQL server on '192.168.31.83' (111)
master1 rep_threads [last change: 2017/01/09 21:31:47] OK
master1 rep_backlog [last change: 2017/01/09 21:31:47] OK: Backlog is null
slave1 ping [last change: 2017/01/09 21:31:47] OK
slave1mysql [last change: 2017/01/09 21:31:47] OK
slave1 rep_threads [last change: 2017/01/09 21:31:47] OK
slave1 rep_backlog [last change: 2017/01/09 21:31:47] OK: Backlog is null
master2 ping [last change: 2017/01/09 21:31:47] OK
master2 mysql [last change: 2017/01/09 21:57:32] OK
master2 rep_threads [last change: 2017/01/09 21:31:47] OK
master2 rep_backlog [last change: 2017/01/09 21:31:47] OK: Backlog is null
slave2 ping [last change: 2017/01/09 21:31:47] OK
slave2mysql [last change: 2017/01/09 21:31:47] OK
slave2 rep_threads [last change: 2017/01/09 21:31:47] OK
slave2 rep_backlog [last change: 2017/01/09 21:31:47] OK: Backlog is null
從上面可以看到master1能ping通,說明只是服務死掉了。

查看master2主機的ip地址:

[root@master2 ~]# ipaddr show dev eno16777736
eno16777736: BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
link/ether 00:0c:29:75:1a:9c brdff:ff:ff:ff:ff:ff
inet 192.168.31.141/24 brd 192.168.31.255 scope global dynamic eno16777736
valid_lft 35519sec preferred_lft 35519sec
inet 192.168.31.5/32 scope global eno16777736
valid_lft forever preferred_lft forever
inet 192.168.31.2/32 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe75:1a9c/64 scope link
valid_lft forever preferred_lft forever
slave1主機:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.141
Master_User: rep
Master_Port: 3306
slave2主機:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.141
Master_User: rep
Master_Port: 3306
啟動master1主機的mysql服務,觀察monitor日志,master1的日志如下:
[root@monitor1 ~]# tail -f /var/log/mysql-mmm/mmm_mond.log
2017/01/09 22:16:56 INFO Check 'mysql' on 'master1' is ok!
2017/01/09 22:16:56 INFO Check 'rep_backlog' on 'master1' is ok!
2017/01/09 22:16:56 INFO Check 'rep_threads' on 'master1' is ok!
2017/01/09 22:16:59 FATAL State of host 'master1' changed from HARD_OFFLINE to AWAITING_RECOVERY
從上面可以看到master1的狀態由hard_offline改變為awaiting_recovery狀態
用如下命令將服務器上線:
[root@monitor1 ~]#mmm_controlset_onlinemaster1
查看群集最新狀態
[root@monitor1 ~]# mmm_control show
master1(192.168.31.83) master/ONLINE. Roles:
master2(192.168.31.141) master/ONLINE. Roles: reader(192.168.31.5), writer(192.168.31.2)
slave1(192.168.31.250) slave/ONLINE. Roles: reader(192.168.31.4)
slave2(192.168.31.225) slave/ONLINE. Roles: reader(192.168.31.3)
可以看到主庫啟動不會接管主,只到現有的主再次宕機。
總結
(1)master2備選主節點宕機不影響集群的狀態,就是移除了master2備選節點的讀狀態。
(2)master1主節點宕機,由master2備選主節點接管寫角色,slave1,slave2指向新master2主庫進行復制,slave1,slave2會自動change master到master2.
(3)如果master1主庫宕機,master2復制應用又落后于master1時就變成了主可寫狀態,這時的數據主無法保證一致性。
如果master2,slave1,slave2延遲于master1主,這個時master1宕機,slave1,slave2將會等待數據追上db1后,再重新指向新的主node2進行復制操作,這時的數據也無法保證同步的一致性。
(4)如果采用MMM高可用架構,主,主備選節點機器配置一樣,而且開啟半同步進一步提高安全性或采用MariaDB/mysql5.7進行多線程從復制,提高復制的性能。

附:

1、日志文件:
日志文件往往是分析錯誤的關鍵,所以要善于利用日志文件進行問題分析。
db端:/var/log/mysql-mmm/mmm_agentd.log
監控端:/var/log/mysql-mmm/mmm_mond.log
2、命令文件:
mmm_agentd:db代理進程的啟動文件
mmm_mond:監控進程的啟動文件
mmm_backup:備份文件
mmm_restore:還原文件
mmm_control:監控操作命令文件
db服務器端只有mmm_agentd程序,其它的都是在monitor服務器端。
3、mmm_control用法
mmm_control程序可以用于監控群集狀態、切換writer、設置online\offline操作等。
Valid commands are:
help - show this message #幫助信息
ping - ping monitor #ping當前的群集是否正常
show - show status #群集在線狀態檢查
checks [host>|all [check>|all]] - show checks status#執行監控檢查操作
set_onlinehost> - set host host> online #將host設置為online
set_offlinehost> - set host host> offline #將host設置為offline
mode - print current mode. #打印輸出當前的mode
set_active - switch into active mode.

set_manual - switch into manual mode.
set_passive - switch into passive mode.
move_role [--force] role>host> - move exclusive role role> to host host> #移除writer服務器為指定的host服務器(Only use --force if you know what you are doing!)
set_ipip>host> - set role with ipip> to host host>
檢查所有的db服務器群集狀態:
[root@monitor1 ~]# mmm_control checks all
檢查項包括:ping、mysql是否正常運行、復制線程是否正常等
檢查群集環境在線狀況:
[root@monitor1 ~]# mmm_control show
對指定的host執行offline操作:
[root@monitor1 ~]# mmm_controlset_offline slave2
對指定的host執行onine操作:
[root@monitor1 ~]# mmm_controlset_online slave2
執行write切換(手動切換):
查看當前的slave對應的master
[root@slave2 ~]# mysql -uroot -p123456 -e 'show slave status\G;'
mysql: [Warning] Using a password on the command line interface can be insecure.
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.141
writer切換,要確保mmm_common.conf文件中的writer屬性有配置對應的host,否則無法切換
[root@monitor1 ~]# mmm_controlmove_role writer master1
OK: Role 'writer' has been moved from 'master2' to 'master1'. Now you can wait some time and check new roles info!
[root@monitor1 ~]# mmm_control show
master1(192.168.31.83) master/ONLINE. Roles: writer(192.168.31.2)
master2(192.168.31.141) master/ONLINE. Roles: reader(192.168.31.5)
slave1(192.168.31.250) slave/ONLINE. Roles: reader(192.168.31.4)
slave2(192.168.31.225) slave/ONLINE. Roles: reader(192.168.31.3)
save從庫自動切換到了新的master
[root@slave2 ~]# mysql -uroot -p123456 -e 'show slave status\G;'
mysql: [Warning] Using a password on the command line interface can be insecure.
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.83

4、其它處理問題

如果不想讓writer從master切換到backup(包括主從的延時也會導致寫VIP的切換),那么可以在配置/etc/mysql-mmm/mmm_common.conf時,去掉role write>中的backup
role writer>#writer角色配置
hosts master1 #這里只配置一個Hosts
ips 192.168.31.2#對外提供的寫操作的虛擬IP
mode exclusive #exclusive代表只允許存在一個主,也就是只能提供一個寫的IP
/role>
這樣的話當master1出現故障了writer寫操作不會切換到master2服務器,并且slave也不會指向新的master,此時當前的MMM之前對外提供寫服務。

5、總結

1.對外提供讀寫的虛擬IP是由monitor程序控制。如果monitor沒有啟動那么db服務器不會被分配虛擬ip,但是如果已經分配好了虛擬ip,當monitor程序關閉了原先分配的虛擬ip不會立即關閉外部程序還可以連接訪問(只要不重啟網絡),這樣的好處就是對于monitor的可靠性要求就會低一些,但是如果這個時候其中的某一個db服務器故障了就無法處理切換,也就是原先的虛擬ip還是維持不變,掛掉的那臺DB的虛擬ip會變的不可訪問。

2.agent程序受monitor程序的控制處理write切換,從庫切換等操作。如果monitor進程關閉了那么agent進程就起不到什么作用,它本身不能處理故障。

3.monitor程序負責監控db服務器的狀態,包括Mysql數據庫、服務器是否運行、復制線程是否正常、主從延時等;它還用于控制agent程序處理故障。

4.monitor會每隔幾秒鐘監控db服務器的狀態,如果db服務器已經從故障變成了正常,那么monitor會自動在60s之后將其設置為online狀態(默認是60s可以設為其它的值),有監控端的配置文件參數“auto_set_online”決定,群集服務器的狀態有三種分別是:HARD_OFFLINE→AWAITING_RECOVERY→online
5.默認monitor會控制mmm_agent會將writer db服務器read_only修改為OFF,其它的db服務器read_only修改為ON,所以為了嚴謹可以在所有的服務器的my.cnf文件中加入read_only=1由monitor控制來控制writer和read,root用戶和復制用戶不受read_only參數的影響。

您可能感興趣的文章:
  • MySQL之高可用集群部署及故障切換實現
  • MySQL之MHA高可用配置及故障切換實現詳細部署步驟
  • MySQL數據庫實現MMM高可用群集架構
  • 基于mysql+mycat搭建穩定高可用集群負載均衡主備復制讀寫分離操作
  • Oracle和MySQL的高可用方案對比分析
  • MySQL系列之十四 MySQL的高可用實現

標簽:溫州 防疫工作 浙江 內江 廣西 固原 汕尾 撫順

巨人網絡通訊聲明:本文標題《MySQL高可用解決方案MMM(mysql多主復制管理器)》,本文關鍵詞  MySQL,高可用,高,可用,解決方案,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL高可用解決方案MMM(mysql多主復制管理器)》相關的同類信息!
  • 本頁收集關于MySQL高可用解決方案MMM(mysql多主復制管理器)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 合肥旭龙机械有限公司| 北京印刷机械有限公司| 河北坤达起重设备有限公司 | 东莞市瑞沧机械设备有限公司| 河南龙工机械制造有限公司| 顺兴机械制造有限公司| 宁波江北机械有限公司| 青岛恒林机械有限公司| 汕头市伟力塑料机械厂有限公司 | 上海轻工机械有限公司| 郑州同鼎机械设备有限公司| 佛山市宝索机械制造有限公司| 台州市鲨鱼食品机械有限公司| 航星洗涤机械(泰州)有限公司| 潍坊山水环保机械制造有限公司| 山东杰卓机械有限公司| 济宁华珠机械有限公司| 鹤壁市双信矿山机械有限公司 | 宁波雄腾机械有限公司| 宁波立强机械有限公司| 黄石华旦机械制造有限公司| 昆山之富士机械制造有限公司| 常州东进机械有限公司| 新乡市利尔机械有限公司| 江苏润明机械设备有限公司怎么样 | 江阴博纬机械有限公司| 诸暨市 机械有限公司| 扬州中孚机械有限公司| 杭州纳源传动机械有限公司| 惠州机械设备有限公司| 上海嘉亿机械有限公司| 桂林橡胶机械有限公司| 宁波钢铁有限公司地址| 深圳市环球同创机械有限公司| 富利源机械有限公司| 沧州凯德机械有限公司| 常州常发动力机械有限公司| 昆山来运机械设备有限公司| 深圳精密达机械有限公司| 常州拓美威精密机械有限公司 | 曲阜市机械有限公司| 东莞市旭田包装机械有限公司| 烨隆精密机械有限公司| 广州市日富包装机械有限公司| 机械租赁有限公司名字| 力邦 机械有限公司| 上海鸿尔机械有限公司| 诸城市中天机械有限公司| 山东宇龙机械有限公司| 浙江瑞浦机械有限公司| 河南华北起重吊钩有限公司| 优瑞纳斯液压机械有限公司| 合肥福晟机械制造有限公司 | 迁安荣信钢铁有限公司| 武汉食品机械有限公司| 华亿机械制造有限公司| 东泰盛机械有限公司| 湖北鄂钢扬子重型机械制造有限公司| 江苏诺森重工有限公司| 深圳市高士达精密机械有限公司 | 同安木工机械有限公司| 海安机械制造有限公司| 无锡东元精密机械有限公司| 青州康达机械有限公司| 史陶比尔精密机械电子有限公司 | 浙江邦泰机械有限公司| 济南艺高数控机械有限公司| 上海嘉倍德塑胶机械有限公司| 艾珍机械设备制造有限公司| 哈尔滨工程机械有限公司| 众力达机械有限公司| 石家庄工程机械有限公司| 新乡高服筛分机械有限公司| 青岛新型建设机械有限公司| 佛山玻璃机械有限公司| 浙江矿山机械有限公司| 起帆电缆有限公司上市| 宁波液压机械有限公司| 利德盛机械有限公司| 山东通用机械有限公司| 玉环宝捷机械有限公司| 杭州联德机械有限公司| 宁波金记机械有限公司| 昆山河海精密机械有限公司| 阿特拉斯工程机械有限公司| 杭州春江制药机械有限公司| 北京雄伟京发机械加工有限公司| 浙江荣亿精密机械有限公司| 南京海威机械有限公司| 农业机械有限公司招聘| 唐山燕山钢铁有限公司| 上海诚达机械有限公司| 南京科倍隆机械有限公司| 青岛华牧机械有限公司| 龙工江西机械有限公司| 上海起泽起重机械有限公司| 长春机械制造有限公司| 徐州中嘉工程机械有限公司| 曲阜圣达机械有限公司| 郑州一本机械设备有限公司 | 安徽金丰机械有限公司| 无锡布勒机械有限公司| 佛山市劲雄机械有限公司| 张家港市旺巴巴机械有限公司| 青岛金越隆机械有限公司| 佛山精密机械有限公司| 濮阳市机械有限公司| 郑州机械设备有限公司| 青岛谊金华塑料机械有限公司| 德龙钢铁有限公司地址| 杭州永创机械有限公司| 四川欧曼机械有限公司| 山西中德科工机械制造有限公司| 青岛昌源隆纺织机械有限公司 | 南阳 机械制造有限公司| 荣嘉精密机械有限公司| 河南飞马起重机械有限公司| 浙江矿山机械有限公司| 上海精工机械有限公司| 山东锐驰机械有限公司| 上海服装机械有限公司| 河北永洋钢铁有限公司| 杭州杭重机械有限公司| 机械自动化有限公司| 南京嘉诚机械有限公司| 河南红星矿山机械有限公司| 新乡市先锋振动机械有限公司| 靖江市机械制造有限公司| 广州机械设备制造有限公司| 柳州商泰机械有限公司| 兰州兰石重工有限公司| 长葛市机械有限公司| 济宁矿山机械有限公司| 涂装机械设备有限公司| 北京起重机械有限公司| 常州市龙鑫化工机械有限公司 | 上海隆康机械设备有限公司| 汕头市机械有限公司| 唐山市德龙钢铁有限公司| 江阴惠尔信机械有限公司| 东风悦达起亚汽车有限公司| 深圳旭生机械有限公司| 济南卓恒膨化机械有限公司| 上海玉兆精密机械有限公司| 中石化机械有限公司| 昆山市机械有限公司| 上海乾承机械设备有限公司| 镇田机械平湖有限公司| 广州美特机械有限公司| 华隆 机械有限公司| 武汉环卫机械有限公司| 鸿源机械制造有限公司| 山东和晟机械设备有限公司| 亿煤机械装备制造有限公司| 浙江常至机械有限公司| 丝网机械 有限公司| 肯拉铎机械有限公司| 唐山利丰机械有限公司| 海南建设工程机械施工有限公司| 杭州博阳机械有限公司| 河北冀工机械制造有限公司| 唐山津西钢铁有限公司| 枣庄誉源挂车机械有限公司| 上海沪工起重机械有限公司| 昆山富邦机械有限公司| 常州起重机械有限公司| 上海食品机械有限公司| 临西中伟机械有限公司| 浙江远信印染机械有限公司| 无锡市川中五金机械有限公司| 安徽 机械设备有限公司| 江苏巨风机械制造有限公司| 天重江天重工有限公司| 海顺机械台州有限公司| 大方起重机器有限公司| 太原市 机械有限公司| 东莞市新望包装机械有限公司| 上海板换机械设备有限公司| 河南三星机械有限公司| 江苏沃得农业机械有限公司| 无锡兆立精密机械有限公司| 杭州建泰机械有限公司| 温州佳诚机械有限公司| 济南液压机械有限公司| 河南安普包装机械制造有限公司 | 南京苏荣机械有限公司| 浙江东雄重工有限公司| 佛山 机械有限公司| 浙江工程机械有限公司| 嘉兴市机械有限公司| 河北清大环保机械有限公司| 天津钢管钢铁贸易有限公司| 无锡印染机械有限公司| 海瑞克隧道机械有限公司| 河南世博机械工程有限公司| 南通丰威机械有限公司| 浩博机械制造有限公司| 建湖华祥机械有限公司| 济宁萨奥机械有限公司| 常州杰和机械有限公司| 曲阜圣达机械有限公司| 广州市 包装机械有限公司| 山东明威起重设备有限公司| 杭州力诺机械设备有限公司| 丰机械有限公司怎么样| 无锡水登机械有限公司| 青岛永强木工机械有限公司| 浙江佑天元包装机械制造有限公司| 有限公司发起人协议| 无锡六叶机械有限公司| 河南省邦恩机械制造有限公司 | 南阳医疗机械有限公司| 山东机械 有限公司| 卓郎新疆智能机械有限公司| 安徽国梁机械设备有限公司 | 珠海市机械有限公司| 盘江矿山机械有限公司| 杭州大精机械制造有限公司| 邢台凌远机械制造有限公司| 天工工程机械有限公司| 杭州冠浩机械设备有限公司 | 西安环宇机械制造有限公司| 常州杰和机械有限公司| 无锡东源机械制造有限公司| 昆山鹤鑫精密机械有限公司| 鹤壁市豫星机械制造有限公司 | 上海奎星包装机械有限公司 | 山东鲁成起重机械有限公司| 江苏苏盐阀门机械有限公司| 山东宇冠机械有限公司| 上海合升机械有限公司| 济宁朝阳机械有限公司| 江门市科杰机械自动化有限公司 | 江阴宗承钢铁有限公司| 无锡森本精密机械有限公司 | 嘉兴敏实机械有限公司| 青岛大牧人机械有限公司招聘| 眉山千层弹花机械有限公司| 济南启正机械工业有限公司| 嘉兴格鲁博机械有限公司| 诸城市日通机械有限公司| 东方液压机械有限公司| 广州东升机械有限公司| 佛山市包装机械有限公司| 宁波市凯博数控机械有限公司| 沂南县宏发机械有限公司| 宁波旭升机械有限公司| 富华重工制造有限公司| 上海紫永机械有限公司| 湖北华伟石化机械设备制造有限公司 | 浙江宏华机械塑胶有限公司| 上海昊宇机械有限公司| 宝索机械制造有限公司| 新力机械制造有限公司| 明辉机械设备制造有限公司| 江阴精力机械有限公司| 青岛辉腾机械有限公司| 河北神耕机械有限公司| 广东科杰机械自动化有限公司 | 江西鑫通机械制造有限公司| 青岛胜代机械有限公司| 德阳思远重工有限公司| 安徽佳乐建设机械有限公司| 江苏鑫锋重工机床有限公司| 贵州机械设备有限公司| 南京机械设备制造有限公司| 宣城 机械有限公司| 厦门众达钢铁有限公司| 广州惠辉机械设备有限公司| 洛阳友建工程机械有限公司| 邢台凌远机械制造有限公司| 湖南金塔机械制造有限公司| 诸城市鼎康机械有限公司 | 瑞达机械制造有限公司| 靖江 机械有限公司| 中山 机械有限公司| 广东海天机械有限公司| 杭州千和精密机械有限公司| 南通佳宝机械有限公司| 机械有限公司 法兰| 派克包装机械有限公司| 浙江包装机械有限公司| 上海国翔包装机械制造有限公司| 江阴市机械制造有限公司| 磊蒙机械设备有限公司| 汕头市包装机械有限公司| 东莞市高臻机械设备有限公司| 邯郸市复液液压机械有限公司| 江苏大圣机械制造有限公司| 东莞市金坤机械设备有限公司| 山东天路重工有限公司| 扬州永瑞机械有限公司| 潍坊钰兴机械有限公司| 范斯特机械有限公司| 南京力霸起重设备机械有限公司| 江苏机械设备制造有限公司| 无锡海龙机械有限公司| 上海起鑫贸易有限公司| 青岛新大成塑料机械有限公司| 佛山机械制造有限公司| 镇江机械设备有限公司| 大明钢铁实业有限公司| 长春泰盟机械制造有限公司| 烟台鼎科机械有限公司| 斯特精密机械有限公司| 嘉兴机械有限公司招聘| 中车南口机械有限公司| 山东锦坤机械有限公司| 上海盾克机械有限公司| 迪砂常州机械有限公司| 济南钢铁 有限公司| 重庆恒科机械制造有限公司| 大连亨益机械有限公司| 衡阳运输机械有限公司| 精密机械配件有限公司| 广东力源液压机械有限公司| 农业机械设备有限公司| 青岛辉特重工有限公司| 西安筑路机械有限公司| 深圳精密达机械有限公司| 嵊州市龙威机械制造有限公司 | 天津动力机械有限公司| 日照港达船舶重工有限公司| 新乡市豫成振动机械有限公司| 苏州德派机械有限公司| 江苏科威机械有限公司| 大连矢岛机械有限公司| 咸阳经纬纺织机械有限公司| 溧阳市机械有限公司| 东莞市鸿企机械有限公司| 江苏祥达机械制造有限公司| 上海中吉机械制造有限公司| 东莞机械设备制造有限公司| 常德烟草机械有限公司| 宁波迈拓斯数控机械有限公司| 厦门船舶重工有限公司| 张家港市塑机械有限公司| 扬州恒佳机械有限公司| 兰州长征机械有限公司| 河北冠能石油机械制造有限公司 | 上海竹达机械设备有限公司| 江苏别具匠心机械设备有限公司 | 化工有限公司起名大全| 合肥海源机械有限公司| 山东碧海机械有限公司| 苏州开隆机械有限公司| 江苏鑫林钢铁有限公司| 杭州华驰机械有限公司| 焦作市机械有限公司| 佛山包装机械有限公司| 厦门全新彩钢机械有限公司| 诸城市机械有限公司| 辽宁天亿机械有限公司| 常州市佳凯包装机械有限公司| 常州市昊博机械有限公司| 郑州年旭机械有限公司| 广东巨风机械制造有限公司| 济南泽机械有限公司| 东莞市亿德机械设备有限公司| 上海曼中机械有限公司| 湖北 钢铁有限公司| 机械设备有限公司经营范围| 中山机械制造有限公司| 郑州未来机械制造有限公司| 唐山唐钢钢铁有限公司| 苏州海骏自动化机械有限公司 | 江苏贸隆机械制造有限公司| 长沙力诺机械有限公司| 山东六丰机械有限公司| 江苏 机械有限公司| 苏州威锐机械有限公司| 东莞安默琳机械制造技术有限公司 | 德瑞机械设备有限公司| 峰峰合信钢铁有限公司| 宝鸡 机械有限公司| 北京精密机械有限公司| 浙江东星纺织机械有限公司| 常州耐强传动机械有限公司| 深圳市塑胶机械有限公司| 江苏鑫林钢铁有限公司| 泉州市恒兴工业机械有限公司| 上海大恒光学精密机械有限公司| 江苏利普机械有限公司| 苏州三维精密机械有限公司| 山东鲁丽钢铁有限公司| 浙江君鸿机械有限公司| 张家港 机械设备有限公司| 潍坊西泰机械有限公司| 天津艾尔特精密机械有限公司| 青岛橡胶机械有限公司| 东莞科雄机械有限公司| 唐山市机械有限公司| 宁波健信机械有限公司| 上海法德机械设备有限公司| 盐城市成功机械制造有限公司| 爱可机械深圳有限公司| 青岛华鑫克斯顿机械有限公司| 东莞市科环机械设备有限公司 | 常州柳工机械有限公司| 东莞自动化机械有限公司| 安徽华机械有限公司| 青州矿砂机械有限公司| 恩倍力机械有限公司| 菲特压片机械有限公司| 漳州钜钢机械有限公司| 苏州星光精密机械有限公司| 华盛机械设备有限公司| 福州协展机械有限公司| 卡麦龙机械有限公司| 泉州宝隆机械有限公司| 天津市天机液压机械有限公司| 苏州 机械有限公司| 安丰钢铁有限公司地址| 长沙熙迈机械制造有限公司| 济南金胜星机械设备有限公司| 济南建设机械有限公司| 河南大方起重机有限公司| 郑州华宏机械设备有限公司| 力升机械有限公司.| 航星洗涤机械(泰州)有限公司 | 重庆龙文机械设备有限公司| 安丘市 机械有限公司| 杭州定江机械有限公司| 江阴锦澄钢铁有限公司| 山东白龙机械有限公司| 广东机械设备有限公司| 大连液力机械有限公司| 星 精密机械有限公司| 三和水工机械有限公司| 河南柴油机重工有限公司| 上海先德机械工程有限公司| 无锡聚英机械有限公司| 东莞麒麟机械有限公司| 江阴凯迈机械有限公司| 扬州诺亚机械有限公司| 深圳市合发齿轮机械有限公司 | 昌邑市机械有限公司| 中核华兴达丰工程机械有限公司| 宁波海伯精密机械制造有限公司| 广州市包装机械有限公司| 张家口中煤嘉益机械制造有限公司 | 新乡市利尔机械有限公司| 临沂金立机械有限公司| 全精密机械有限公司| 安阳锻压机械工业有限公司| 山东平安工程机械有限公司| 广州易鸿机械有限公司| 福建海源机械有限公司| 河北神耕机械有限公司| 辽宁天亿机械有限公司| 河南郑州机械有限公司| 成都市机械有限公司| 宁波巨隆机械有限公司| 湖南宇泰重工有限公司| 上海涟恒精密机械有限公司| 首钢长白机械有限公司| 恒兴兴业机械有限公司| 连云港 机械有限公司| 河南一重起重机有限公司| 三马起重机有限公司| 浙江豪盛印刷机械有限公司| 宁波海雄塑料机械有限公司| 瑞安市华东包装机械有限公司| 瑞特精密机械有限公司| 湖北铁正机械有限公司| 常州度盛机械有限公司| 陕西机械制造有限公司| 台州路桥机械有限公司| 成都诚旭精密机械有限公司| 林州市振晨重工装备制造有限公司 | 江门振达机械有限公司| 常州创领机械有限公司| 济南金胜星机械设备有限公司| 上海港机重工有限公司| 普思信机械部件有限公司| 老挝第一钢铁有限公司| 金泰机械制造有限公司| 青岛九合重工机械有限公司| 葛洲坝能源重工有限公司| 中山中炬精工机械有限公司 | 安徽联塔盛通机械制造有限公司| 唐山众达机械轧辊有限公司| 河北 机械 有限公司| 江门市科杰机械自动化有限公司| 华菱涟源钢铁有限公司| 机械有限公司 南丰| 昆玉钢铁有限公司招聘| 哈尔滨机械制造有限公司| 重庆晨翔机械有限公司| 衡水机械制造有限公司| 山东大信重工有限公司| 青岛科尼乐机械设备有限公司| 广东 钢铁 有限公司| 电子有限公司起名大全| 富杰精密机械有限公司| 广东重工建设监理有限公司| 上海皆力机械设备有限公司| 江苏食品机械有限公司| 温州锐光机械有限公司| 河南省邦恩机械制造有限公司 | 河南工程机械有限公司| 深圳海邻机械设备有限公司| 青岛隆硕农牧机械制造有限公司 | 陕西重型机械制造有限公司| 三联传动机械有限公司| 江苏爱斯特机械有限公司怎么样| 亨沃机械设备有限公司| 山东泰安煤矿机械有限公司 | 威海坤豪机械有限公司| 济南博威液压机械有限公司 | 大洋食品机械有限公司| 川岛洗涤机械有限公司| 烟台拓伟机械有限公司| 宁波钢铁有限公司电话| 勤堡精密机械有限公司| 苏州江源精密机械有限公司| 宁波传动机械有限公司| 旭东机械昆山有限公司| 山东明沃机械有限公司| 金旺机械设备有限公司| 郑州亚美机械制造有限公司| 南京福能机械设备有限公司| 南京 机械有限公司| 湖州市湖州机械有限公司| 中意机械苏州有限公司| 常州市豪乐机械有限公司| 杭州萧山凯兴食品机械有限公司| 蓬莱巨涛海洋工程重工有限公司怎么样| 新乡市振英机械设备有限公司| 浙江嘉元机械制造有限公司| 深圳起航电商有限公司| 无锡光良塑料机械有限公司| 青岛安成食品机械有限公司| 大连正丰机械有限公司| 临清 机械有限公司| 石油机械设备有限公司| 无锡钢铁贸易有限公司| 广东佛山机械有限公司| 东风井关农业机械有限公司 | 伯曼机械制造有限公司| 山东恒升机械有限公司| 唐山津西钢铁有限公司| 沈阳小松工程机械有限公司| 诸城市华钢机械有限公司| 邢台钢铁有限公司官网| 郑州郑瑞机械有限公司| 惠州德钢机械有限公司| 安徽唐兴机械装备有限公司| 杭州春江制药机械有限公司 | 烟台市利达木工机械有限公司| 上海起泽起重机械有限公司| 起步有限公司上市排名| 上海钊凯包装机械有限公司| 上海宝日机械制造有限公司| 浩胜食品机械有限公司| 杭州华兴机械有限公司| 上海天和制药机械有限公司| 深圳市 机械 有限公司| 深圳市鑫宏伟机械设备有限公司| 起帆电线电缆有限公司| 合肥汉杰包装机械喷码有限公司 | 宁波迈拓斯数控机械有限公司| 莱州化工机械有限公司| 常州斯塔克机械设备有限公司| 宁波美宁机械有限公司| 聊城 机械 有限公司| 兖州丰业机械有限公司| 山东源泉机械有限公司| 长沙威重化工机械有限公司| 宝鸡南车时代工程机械有限公司| 长沙起重机厂有限公司| 北京印刷机械有限公司| 东莞共荣精密机械有限公司| 温州正雄机械有限公司| 广西清隆机械制造有限公司| 廊坊百冠包装机械有限公司| 广州精密机械有限公司| 沈阳带锯机械有限公司| 宁波裕民机械工业有限公司| 昆山市烽禾升精密机械有限公司 | 澳太机械制造有限公司| 上海丰禾精密机械有限公司| 苏州凯威塑料机械有限公司| 长城重型机械制造有限公司| 昆山市众捷塑料机械有限公司| 荏原机械烟台有限公司| 浙江雷克机械工业有限公司| 上海捷赛机械有限公司| 上海尼法机械有限公司| 西安筑路机械有限公司| 沈阳联合利邦机械有限公司| 上海连富机械有限公司| 山西 机械设备有限公司| 成都弘林机械有限公司| 盐城丰炜机械制造有限公司| 博硕机械制造有限公司| 大连东拓工程机械制造有限公司| 宁波海雄塑料机械有限公司 | 合肥永升机械有限公司| 东莞亮剑机械有限公司| 开封良益机械有限公司| 金韦尔机械有限公司| 威海祥光机械有限公司| 湖州市湖州机械有限公司| 山东食品机械有限公司| 中阳钢铁有限公司电话| 常州塑料机械有限公司| 唐山国义钢铁有限公司| 昆山铭世特精密机械有限公司| 佛山恒力泰机械有限公司| 上海 包装机械 有限公司| 江阴市联拓重工机械有限公司 | 东台市机械有限公司| 昆山联德精密机械有限公司| 深圳印刷机械有限公司| 合肥二宫机械有限公司| 上海涵延机械有限公司| 河北冀工机械制造有限公司| 中航国际钢铁贸易有限公司| 郑州世纪精信机械制造有限公司| 常州达德机械有限公司| 曼透平机械有限公司| 永川海通机械有限公司| 五矿钢铁西安有限公司| 晶元精密机械有限公司| 合肥浩凯机械有限公司| 常州动力机械有限公司| 洛阳美卓重工机械有限公司 | 山东金奥机械有限公司| 上海冠隆阀门机械有限公司| 诸暨市机械有限公司| 凯达机械制造有限公司| 富信成机械有限公司| 无锡大力起重机械有限公司| 常州立达纺织机械有限公司| 湖北创联重工有限公司| 金华机械 有限公司| 卓轮天津机械有限公司| 德州宝鼎液压机械有限公司| 科瑞森机械有限公司| 沈阳三洋建筑机械有限公司| 昆山铁生机械有限公司| 江阴戎辉机械设备制造有限公司| 泸州长江工程机械成套有限公司 | 百斯特机械有限公司| 江苏力源液压机械有限公司 | 上海板换机械设备有限公司| 江苏方邦机械有限公司| 日照钢铁轧钢有限公司| 河南三兄重工有限公司| 湖南德邦重工机械有限公司| 重庆宏工工程机械有限公司 | 青岛包装机械有限公司| 福州 机械 有限公司| 郑州中嘉重工有限公司| 上海戴服特包装机械有限公司 | 上海颖盛机械有限公司| 江苏中科机械有限公司| 山推楚天工程机械有限公司| 东莞兆恒机械有限公司| 厦门群鑫机械工业有限公司| 广州华劲机械有限公司| 英隆机械昆山有限公司| 青岛精锐机械制造有限公司| 洛阳瑞德机械有限公司| 华通动力重工有限公司| 上海航空机械有限公司| 镇江机械制造有限公司| 河南起重设备有限公司| 德阳 机械有限公司| 福州优利机械有限公司| 滕州三合机械有限公司| 上海新沪机械有限公司| 长春机械设备有限公司| 上海泽泽机械有限公司| 潍坊 机械 有限公司| 唐山安丰钢铁有限公司| 佛山市康思达液压机械有限公司| 海盐鼎盛机械有限公司| 河南耿力支护机械设备有限公司| 烟台万事达金属机械有限公司| 天工机械制造有限公司| 日照山东钢铁有限公司| 天津金都钢铁有限公司| 广州新麦机械有限公司| 浙江机械设备制造有限公司| 辽阳筑路机械有限公司| 浙江科力塑料机械有限公司| 东营 机械制造 有限公司| 山东豪迈机械制造有限公司| 苏州德伊捷自动化机械有限公司| 宁波海伯精密机械制造有限公司 | 环保设备机械有限公司| 南京登峰起重设备制造有限公司| 友嘉精密机械有限公司| 江苏省南扬机械制造有限公司| 焦作机械制造有限公司| 山东大力机械有限公司| 安徽大洋机械有限公司| 河南鼎科机械有限公司| 沈阳恒力机械有限公司| 曲阜兴运输送机械设备有限公司| 无锡通用机械厂有限公司| 成都海科机械设备制造有限公司 | 百超玻璃机械有限公司| 注册机械设备有限公司有什么要求| 江阴万恒机械制造有限公司| 温州正展机械有限公司| 江西柳工机械设备有限公司| 浙江工程机械有限公司| 中海福陆重工有限公司招聘| 云南中拓钢铁有限公司| 盘锦 机械有限公司| 黄石永辉机械有限公司| 沙钢永兴钢铁有限公司| 河南铁山起重设备有限公司 | 南京斯坦福机械有限公司| 杭州天恒机械有限公司| 福建南方路面机械有限公司| 江苏苏盐阀门机械有限公司| 烟台精密机械有限公司| 江阴起重机械有限公司| 河南 机械有限公司| 昆山博通机械设备有限公司 | 莱州日进机械有限公司| 宁波盛技机械有限公司| 东风悦达起亚有限公司| 广州市机械有限公司| 昆成机械昆山有限公司| 济南市恒宇机械有限公司| 禹城通裕新能源机械铸造有限公司| 广州华臻机械设备有限公司| 佛山机械设备有限公司| 河北新钢钢铁有限公司| 广东南桂起重机械有限公司 | 江苏宏博机械制造有限公司 | 山西建龙钢铁有限公司| 中阳钢铁有限公司电话| 杭州起重机械有限公司| 京华机械设备有限公司| 大丰 机械有限公司| 宣化华泰矿冶机械有限公司| 柳州高华机械有限公司| 沧州恒宇机械有限公司| 江苏明珠试验机械有限公司| 浙江宏涛机械有限公司| 合肥精密机械有限公司| 杭州东田机械有限公司| 浙江勇力机械有限公司| 山东莱芜煤矿机械有限公司| 大江重工焦作有限公司| 江苏爱斯特机械有限公司怎么样| 五矿钢铁西安有限公司| 宝鸡至信机械有限公司| 上海美捷伦包装机械有限公司| 英侨机械制造有限公司| 浙江速成精密机械有限公司| 杭州金狮机械有限公司| 东莞市佐臣自动化机械有限公司| 山西风源机械制造有限公司| 上海景林包装机械有限公司| 上海起帆电缆有限公司| 起重设备(上海)有限公司| 温州力冠机械有限公司| 河南豫工机械有限公司| 上海路桥机械有限公司| 上海科纳机械有限公司| 遵化建龙钢铁有限公司| 上海陵城机械有限公司| 纸箱机械设备有限公司| 唐山利军机械有限公司| 北京机械租赁有限公司| 浙江创伟机械有限公司| 福州 机械制造有限公司| 郑州沃尔德机械制造有限公司| 泰钢钢铁贸易有限公司| 江苏佳力起重机械制造有限公司 | 济南快克数控机械有限公司| 申光洗涤机械有限公司| 石家庄博锐食品机械有限公司 | 河南豫弘重型机械有限公司| 广州包装机械有限公司| 浙江美华包装机械有限公司| 唐山龙泉机械有限公司| 运输有限公司起名大全| 上海颍盛机械有限公司| 宜兴市华鼎机械有限公司| 郑州华隆机械制造有限公司| 张家港市亿利机械有限公司| 浙江仁工机械有限公司| 苏州英维特精密机械有限公司 | 长沙天映机械有限公司| 德州力维机械有限公司| 南京金顿重工机械有限公司| 广州振通机械有限公司| 江苏苏盐阀门机械有限公司| 重庆驰骋机械有限公司| 金凯达机械有限公司| 武汉船舶重工有限公司| 矿山机械制造有限公司| 群鑫机械有限公司电话| 贝奇尔机械有限公司| 江阴宏达机械有限公司| 浙江诚泰化工机械有限公司| 重庆洲泽机械制造有限公司| 机械密封件有限公司| 青岛华牧机械有限公司| 襄阳 机械 有限公司| 重庆庆达机械有限公司| 章丘宇龙机械有限公司| 郑州沃尔德机械制造有限公司 | 泰安鑫杰机械有限公司| 温州杰福机械设备有限公司| 杭州通绿机械有限公司| 邯郸海拓机械有限公司| 大连红日机械有限公司| 中意合资 威尼托机械有限公司| 张家港市机械有限公司| 济南大鹏机械设备有限公司| 宿迁 机械 有限公司| 徐工辽宁机械有限公司| 浙江创伟机械有限公司| 常州经编机械有限公司| 苏州琦珏机械有限公司| 大连华锐重工有限公司| 江苏双箭输送机械有限公司| 深圳 机械设备有限公司| 福州展志钢铁有限公司| 温州市鹿城江心服装机械有限公司| 唐山正丰钢铁有限公司| 广州市 工程机械有限公司| 溧阳科华机械制造有限公司| 上海钊凯包装机械有限公司| 青岛德盛机械制造有限公司| 章丘宇龙机械有限公司| 浙江亿森机械有限公司| 浙江新德宝机械有限公司| 成都恒飞机械有限公司| 无锡凯希迪斯机械有限公司 | 深圳步先包装机械有限公司| 唐山经安钢铁有限公司| 荆州石油机械有限公司| 江苏食品机械有限公司| 东莞高臻机械设备有限公司| 人和弹簧机械有限公司| 山东工大机械有限公司| 扬州 机械有限公司| 江阴科盛机械有限公司| 江阴中立机械工业有限公司| 诸城市志诺机械有限公司| 浙江杰豹机械有限公司| 天津百利二通机械有限公司| 无锡鹰普机械有限公司| 泰州 机械有限公司| 东莞市旭田包装机械有限公司| 中核华兴机械化工程有限公司 | 上海皆力机械设备有限公司| 重庆精密机械有限公司| 中核天津机械有限公司| 上海金相机械有限公司| 大连塑料机械有限公司| 保定向阳航空精密机械有限公司| 西安科迅机械制造有限公司| 东莞住重塑胶机械有限公司| 天津市钢铁有限公司| 恒源机械制造有限公司| 佛山突破机械制造有限公司| 上海隆康机械设备有限公司| 常州市瑞州机械有限公司| 上海卓越机械有限公司| 淄博银丰机械有限公司| 江苏恩纳斯重工机械有限公司| 无锡通用机械有限公司| 朗维纺织机械有限公司| 浙江欧耀机械有限公司| 川岛洗涤机械有限公司| 巩义市瑞赛克机械设备有限公司 | 中农丰茂植保机械有限公司| 北京速深机械有限公司| 东莞市浈颖机械设备有限公司| 扬州 机械 有限公司| 江苏方圣机械有限公司| 南京福能机械设备有限公司| 鞍钢朝阳钢铁有限公司| 北京 钢铁贸易有限公司| 苏州动力机械有限公司| 淄博张钢钢铁有限公司| 浙江陀曼精密机械有限公司| 上海 起重设备有限公司| 平湖机械制造有限公司| 浙江阜康机械有限公司| 聊城机械设备有限公司| 重的机械有限公司招聘| 汕头 机械有限公司招聘| 富信成机械有限公司| 山东康弘机械有限公司| 湖北大展钢铁有限公司| 郑州市天赐重工机械有限公司| 无锡森本精密机械有限公司| 沈阳六和机械有限公司| 成都恒飞机械有限公司| 物资有限公司起名大全| 昆山施耐特机械有限公司 | 杭州海铭钢铁有限公司| 广东美特机械有限公司| 郑州市鑫宇机械制造有限公司 | 广东精密机械有限公司| 日发纺织机械有限公司| 邯郸纺织机械有限公司| 宣化金科钻孔机械有限公司| 上海齐耀螺杆机械有限公司| 重庆江增船舶重工有限公司| 宁波立强机械有限公司| 广东恒联食品机械有限公司| 菏泽瑞康机械有限公司| 临沂机械设备有限公司| 成都 机械 有限公司| 天津蓝科机械有限公司| 重庆地泽机械有限公司| 河南三星机械有限公司| 广州力净洗涤机械有限公司| 宝钢湛江钢铁有限公司招聘| 佛山市机械有限公司| 江阴市西城钢铁有限公司 | 青州市远航机械设备有限公司| 延边金科食品机械有限公司| 佛山市优霸机械设备有限公司| 星光传动机械有限公司| 伊之密机械有限公司| 河北敬业钢铁有限公司地址| 江苏银华春翔机械制造有限公司| 上海德采包装机械有限公司| 上海奉业包装机械有限公司| 湖北江汉重工有限公司| 台州迈兴机械有限公司| 鼎业机械设备有限公司| 山东日发纺织机械有限公司| 山东 工程机械有限公司| 广东省重工建筑设计院有限公司| 珠海市机械有限公司| 威海化工机械有限公司招聘| 江苏力威机械有限公司| 河南千里马工程机械有限公司| 精密达机械有限公司| 天工工程机械有限公司| 小森机械南通有限公司| 上海定盛机械有限公司| 唐山国义特种钢铁有限公司| 瑞 机械有限公司| 河北食品机械有限公司| 新昌县蓝翔机械有限公司| 诺曼艾索机械技术(北京)有限公司| 固安嘉峰机械有限公司| 无锡邦得机械有限公司| 上海申克机械有限公司| 阜新恒泰机械有限公司| 通达塑料机械有限公司| 众立机械制造有限公司| 天津伟业钢铁贸易有限公司| 无锡纺织机械有限公司| 建筑工程机械租聘有限公司| 上海天勇机械设备有限公司| 智能机械制造有限公司| 苏州苏鹰机械制造有限公司| 机械有限公司 机械手| 宁波钢铁有限公司地址| 铜陵群力机械有限公司| 昆成机械机械有限公司| 河南千里机械有限公司| 泰田液压机械有限公司| 一帆机械设备有限公司| 常州亚美柯机械设备有限公司| 烟台建筑机械有限公司| 涿州北方重工设备设计有限公司| 丰凯机械制造有限公司| 东莞市茂丰机械有限公司| 常州创领机械有限公司| 潍坊圣旋机械有限公司| 广东佳明重工有限公司| 中山自动化机械有限公司| 青岛昊宇重工有限公司| 石家庄煤矿机械有限公司| 重庆江增船舶重工有限公司| 沈阳联合利邦机械有限公司| 铁岭圣添机械有限公司| 三一汽车起重机械有限公司| 山东永华机械有限公司| 武汉苏源机械设备租赁有限公司| 无锡威马机械有限公司| 巩义市机械有限公司| 淄博宏达钢铁有限公司| 东莞市五全机械有限公司| 东莞市台旺机械有限公司| 济南精美机械设备有限公司| 郑州亚美机械制造有限公司| 浙江路杰机械有限公司| 龙南福鑫钢铁有限公司| 营口京华钢铁有限公司招聘| 漳州 机械有限公司|