真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql5.6部署集群基礎(chǔ)環(huán)境

建站服務(wù)器

mysql5.6部署集群基礎(chǔ)環(huán)境

成都創(chuàng)新互聯(lián)服務(wù)項目包括明水網(wǎng)站建設(shè)、明水網(wǎng)站制作、明水網(wǎng)頁制作以及明水網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,明水網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到明水省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

-----------------------------

部署集群基礎(chǔ)環(huán)境

Mysql-MMM架構(gòu)部署

MYSQL-MMM架構(gòu)使用

部署集群基礎(chǔ)環(huán)境

192.168.4.10 master1

192.168.4.11 master2

192.168.4.12 slave1

192.168.4.13 slave2

192.168.4.100 monitor

使用5臺mysql5.6 其中192.168.4.10、192.168.4.11作為mysql雙主服務(wù)器,192.168.4.12、 192.168.4.13作為主服務(wù)器的從服務(wù)器。

192.168.4.100 作為mysql-MMM架構(gòu)中管理監(jiān)控服務(wù)器,

步驟一:配置hosts本地解析

1.配置本機hosts解析記錄

[root@master1 ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.4.10 master1 master1.tarena.com

192.168.4.11 master2 master2.tarena.com

192.168.4.12 slave1 slave1.tarena.com

192.168.4.13 slave2 slave2.tarena.com

192.168.4.100 monitor monitor.tarena.com

2.測試hosts解析成功

[root@master1 ~]# ping -c 3 master1

PING master1 (192.168.4.10) 56(84) bytes of data.

64 bytes from master1 (192.168.4.10): icmp_seq=1 ttl=64 time=0.019 ms

64 bytes from master1 (192.168.4.10): icmp_seq=2 ttl=64 time=0.019 ms

64 bytes from master1 (192.168.4.10): icmp_seq=3 ttl=64 time=0.022 ms

--- master1 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 0.019/0.020/0.022/0.001 ms

---------------------------------------------------

步驟二:部署數(shù)據(jù)庫主機

http://xmomo.blog.51cto.com/5994484/1939747

步驟三:部署雙主多從結(jié)構(gòu)

1)數(shù)據(jù)庫授權(quán)(4臺數(shù)據(jù)庫主機master1,master2,slave1,slave2執(zhí)行以下操作)

部署主從同步只需要授權(quán)一個主從同步用戶即可,但是我們要部署mysql-MMM架構(gòu),

所以在這里我們將mysql-MMM所需用戶一并進(jìn)行授權(quán)設(shè)置。再授權(quán)一個測試用戶,在架構(gòu)搭建完成時測試使用。

master1設(shè)置:

[root@master1 ~]# mysql -uroot -ppwd123

數(shù)據(jù)庫授權(quán)部分為了方便試驗我直接允許所有地址訪問了,生產(chǎn)環(huán)境需謹(jǐn)慎

mysql> grant replication slave on *.* to slaveuser@% identified by pwd123; //主從同步授權(quán)

Query OK,0 rows affected(0.00 sec)

mysql> grant replication client on *.* to monitor@% identified by monitor; //MMM所需架構(gòu)用戶授權(quán)

Query OK,0 rows affected(0.06 sec)

mysql> grant replication client,process,super on *.* to agent@% identified by agent; //MMM所需架構(gòu)用戶授權(quán)

Query OK,0 rows affected(0.00 sec)

mysql> grant all on *.* to root@% identified by pwd123; //測試用戶授權(quán)

Query OK,0 rows affected(0.00 sec)

mysql>

2)開啟主數(shù)據(jù)庫bin-log日志、設(shè)置server_id(master1,master2)

master1設(shè)置:

[root@master1 ~]# vi /etc/my.cnf

[mysqld]

server_id=100 //設(shè)置server_id,服務(wù)器唯一ID,必須是1至232-1之間的整數(shù)

log-bin //(主庫必須開啟)開啟bin-log日志

master2設(shè)置:

[root@master2 ~]# vi /etc/my.cnf

[mysqld]

server_id=101

log-bin

重啟兩臺主庫的mysql服務(wù)

3)從庫設(shè)置server_id(slave1,slave2)

slave1設(shè)置:

[root@slave1 ~]#vi /etc/my.cnf

[mysqld]

log-bin //主庫必須開啟

server-id=102

注意:在集群,所有的服務(wù)器ID編號都必須是唯一的。

mysql主庫的二進(jìn)制日志必須要開啟,從服務(wù)器上二進(jìn)制日志功能是不需要開啟的。

但是,你也可以通過啟用從服務(wù)器的二進(jìn)制日志功能,實現(xiàn)數(shù)據(jù)備份與恢復(fù),此外在一些更復(fù)雜的拓?fù)洵h(huán)境中,mysql從服務(wù)器也可以扮演其他從服務(wù)器的主服務(wù)器。

slave2設(shè)置:

[root@slave2 ~]#vi /etc/my.cnf

[mysqld]

log-bin

server-id=103

重啟兩臺從庫的mysql服務(wù)

4)配置主從從從關(guān)系

配置master2、slave1、slave2成為master1的從服務(wù)器

查看master1服務(wù)器bin-log日志使用節(jié)點信息:

[root@master1 ~]# mysql -uroot -ppwd123

....

mysql> flush tables with read lock;

mysql> show master status\\G

***************************1. row ***************************

File: master1-bin.000001

Position:120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row inset(0.00 sec)

mysql>

mysql> unlock tables;

注意:執(zhí)行完此步驟后不要再操作主服務(wù)器mysql,防止主服務(wù)器狀態(tài)值變化

防止其他主機操作主數(shù)據(jù)庫,可以用只讀鎖表的方式來防止數(shù)據(jù)庫被修改。

flush tables with read lock; 命令的作用是對所有數(shù)據(jù)庫的所有表執(zhí)行只讀鎖定,

只讀鎖定后所有數(shù)據(jù)庫的寫操作將被拒絕,但讀操作可以繼續(xù)。

執(zhí)行鎖定可以防止在查看二進(jìn)制日志信息的同時有人對數(shù)據(jù)進(jìn)行修改操作,

最后使用unlock tables; 語句對全局鎖執(zhí)行結(jié)束操作。

設(shè)置master2為master1的從庫:

[root@master2 ~]# mysql -uroot -ppwd123

....

mysql> change master to master_host=\'192.168.4.10\',master_user=\'slaveuser\',master_password=\'pwd123\',master_log_file=\'master1-bin.000001\',master_log_pos=120;

數(shù)據(jù)復(fù)制的關(guān)鍵操作是配置從服務(wù)器去連接主服務(wù)器進(jìn)行數(shù)據(jù)復(fù)制,我們需要告知從服務(wù)器建立網(wǎng)絡(luò)連接所有必要的信息。

使用CHANGE MASTER TO 語句即可完成該項工作,

MASTER_HOST 指定主服務(wù)器主機名或IP地址,

MASTER_USER 為主服務(wù)器上創(chuàng)建的擁有復(fù)制權(quán)限的賬戶名稱,

MASTER_PASSWORD 為該賬戶的密碼,

MASTER_LOG_FILE 指定主服務(wù)器二進(jìn)制日志文件名稱,

MASTER_LOG_POS 為主服務(wù)器二進(jìn)制日志當(dāng)前記錄的位置。

mysql> start slave; //啟動同步進(jìn)程

注:以為我之前做過主從,在啟動同步進(jìn)程的時候報錯(1872)。可以用命令 reset slave; 然后在change master to重新連接。

mysql> show slave status\\G //查看主從是否成功

....

啟動同步進(jìn)程后查看IO節(jié)點和SQL節(jié)點是否為Yes如果均為Yes表示主從正常。

Slave_IO_Running: Yes //IO節(jié)點正常

Slave_SQL_Running: Yes //SQL節(jié)點正常

....

設(shè)置slave1為master1從:

[root@slave1 ~]# mysql -uroot -ppwd123

mysql>change master to master_host=\'192.168.4.10\',master_user=\'slaveuser\',master_password=\'pwd123\',master_log_file=\'master1-bin.000001\',master_log_pos=120;

mysql> start slave;

mysql> show slave status\\G

....

Slave_IO_Running: Yes //IO節(jié)點正常

Slave_SQL_Running: Yes //SQL節(jié)點正常

....

mysql>

設(shè)置slave2為master1從:

[root@slave2 ~]# mysql -uroot -ppwd123

....

mysql>change master to master_host=\'192.168.4.10\',master_user=\'slaveuser\',master_password=\'pwd123\',master_log_file=\'master1-bin.000001\',master_log_pos=120;

mysql> start slave;

mysql> show slave status\\G

....

Slave_IO_Running: Yes //IO節(jié)點正常

Slave_SQL_Running: Yes //SQL節(jié)點正常

....

---------------------------------------------------------------------------------------------

5)配置主主從從關(guān)系,將master1配置為master2的從

查看master2的bin-log使用信息:

[root@master2 ~]# mysql -uroot -ppwd123

....

mysql> show master status\\G

***************************1. row ***************************

File: master2-bin.000001

Position:120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row inset(0.00 sec)

設(shè)置master1成為master2的從:

[root@master1 ~]# mysql -uroot -ppwd123

....

mysql> change master to master_host=\'192.168.4.11\',master_user=\'slaveuser\',master_password=\'pwd123\',master_log_file=\'master2-bin.000001\',master_log_pos=120;

mysql> start slave;

Query OK,0 rows affected(0.27 sec)

mysql> show slave status\\G

....

Slave_IO_Running: Yes //IO節(jié)點正常

Slave_SQL_Running: Yes //SQL節(jié)點正常

....

6)測試主主從從架構(gòu)是否成功

master1更新數(shù)據(jù),查看其它主機是否同步:

[root@master1 ~]# mysql -uroot -ppwd123

....

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| test |

+--------------------+

4 rows inset(0.00 sec)

mysql> create database tarena;

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

5 rows inset(0.00 sec)

mysql>

master2主機查看:

[root@master2 ~]# mysql -uroot -ppwd123 -e show databases

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

slave1主機查看:

[root@slave1 ~]# mysql -uroot -ppwd123 -e show databases

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

slave2主機查看:

[root@slave2 ~]# mysql -uroot -ppwd123 -e show databases

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

=============================================================

2 mysql-MMM架構(gòu)部署

使用5臺centos服務(wù)器,其中192.168.4.10、192.168.4.11作為mysql雙主服務(wù)器,192.168.4.12、192.168.4.13作為主服務(wù)器的從服務(wù)器,

192.168.4.100 作為mysql-MMM架構(gòu)中管理監(jiān)控服務(wù)器,實現(xiàn)監(jiān)控mysql主從服務(wù)器的工作狀態(tài)及決定故障節(jié)點的移除或恢復(fù)工作。

步驟一:安裝mysql-MMM

安裝依賴yum源(mysql集群內(nèi)5臺服務(wù)器master1,master2,slave1,slave2,monitor)均需安裝

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

1) 安裝監(jiān)控程序

在管理服務(wù)器(monitor)上,執(zhí)行下面命令:

[root@monitor ~]# yum -y install mysql-mmm-monitor* perl-Time-HiRes*

2) 安裝代理程序

mysql集群內(nèi)4臺服務(wù)器(master1、master2、slave1、slave2)

# yum -y install mysql-mmm-agent*

....

步驟二:修改配置文件

1)修改公共配置文件

本案例中mysql集群的5臺服務(wù)器(master1、master2、slave1、slave2、monitor)都需要配置,可以先配好一臺后使用scp復(fù)制。

[root@master1 ~]# vim /etc/mysql-mmm/mmm_common.conf

active_master_role writer

cluster_interface eth0

pid_path /var/run/mmm_agentd.pid

bin_path /usr/lib/mysql-mmm/

replication_user slaveuser //設(shè)置主從同步的用戶

replication_password pwd123 //設(shè)置主從同步用戶密碼

agent_user agent //mmm-agent控制數(shù)據(jù)庫用戶

agent_password agent //mmm-agent控制數(shù)據(jù)庫用戶密碼

//設(shè)置第一個主服務(wù)器

ip 192.168.4.10//master1 IP 地址

mode master

peer master2 //指定另外一臺主服務(wù)器

//指定另外一臺主服務(wù)器

ip 192.168.4.11

mode master

peer master1

//設(shè)置第一臺從服務(wù)器

ip 192.168.4.12//slave1 IP 地址

mode slave //本段落配置的是slave服務(wù)器

ip 192.168.4.13

mode slave

//設(shè)置寫入服務(wù)器工作模式

hosts master1,master2 //提供寫的主服務(wù)器

ips 192.168.4.200 //設(shè)置VIP地址

mode exclusive //排他模式

//設(shè)置讀取服務(wù)器工作模式

hosts slave1,slave2 //提供讀的服務(wù)器信息

ips 192.168.4.201,192.168.4.202 //多個虛擬IP

mode balanced //均衡模式

....

2)修改管理主機配置文件(monitor主機配置)

[root@monitor ~]# vim /etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf

ip 192.168.4.100//設(shè)置管理主機IP地址

pid_path /var/run/mmm_mond.pid

bin_path /usr/lib/mysql-mmm/

status_path /var/lib/misc/mmm_mond.status

ping_ips 192.168.4.10,192.168.4.11,192.168.4.12,192.168.4.13 //設(shè)置被監(jiān)控數(shù)據(jù)庫

monitor_user monitor //監(jiān)控數(shù)據(jù)庫mysql用戶

monitor_password monitor //監(jiān)控數(shù)據(jù)庫mysql用戶密碼

debug 0

....

[root@monitor ~]#

3)修改客戶端配置文件

master1配置

[root@master1 ~]# vi /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this master1

master2配置

[root@master2 ~]# vi /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this master2

slave1配置

[root@slave1 ~]# vi /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this slave1

slave2配置

[root@slave2 ~]# vi /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this slave2

==========================================================

3 mysql-MMM架構(gòu)使用

啟動MMM集群架構(gòu)

設(shè)置集群中服務(wù)器為online狀態(tài)

mysql-MMM架構(gòu)部署完成后需要啟動,數(shù)據(jù)庫端啟動mmm-agent進(jìn)程,管理端啟動mmm-monitor進(jìn)程,啟動完成后設(shè)置所有數(shù)據(jù)庫主機狀態(tài)為online。

步驟一:啟動MMM集群架構(gòu)

1)啟動mmm-agent進(jìn)程

master1操作:

[root@master1 ~]# /etc/init.d/mysql-mmm-agent start

master2操作:

[root@master2 ~]# /etc/init.d/mysql-mmm-agent start

slave1操作:

[root@slave1 ~]# /etc/init.d/mysql-mmm-agent start

slave2操作:

[root@slave2 ~]# /etc/init.d/mysql-mmm-agent start

2)啟動mmm-monitor進(jìn)程

monitor主機操作:

[root@monitor ~]# /etc/init.d/mysql-mmm-monitor start

步驟二:設(shè)置集群中服務(wù)器為online狀態(tài)

控制命令只能在管理端monitor服務(wù)器上執(zhí)行。

查看當(dāng)前集群中各服務(wù)器狀態(tài):

[root@monitor ~]# mmm_control show

master1(192.168.4.10)master/AWAITING_RECOVERY. Roles:

master2(192.168.4.11)master/AWAITING_RECOVERY. Roles:

slave1(192.168.4.12)slave/AWAITING_RECOVERY. Roles:

slave2(192.168.4.13)slave/AWAITING_RECOVERY. Roles:

設(shè)置4臺數(shù)據(jù)庫主機狀態(tài)為online:

[root@monitor ~]# mmm_control set_online master1

OK: State of \'master1\' changed to ONLINE. Now you can wait some time and check its new roles!

[root@monitor ~]# mmm_control set_online master2

OK: State of \'master2\' changed to ONLINE. Now you can wait some time and check its new roles!

[root@monitor ~]# mmm_control set_online slave1

OK: State of \'slave1\' changed to ONLINE. Now you can wait some time and check its new roles!

[root@monitor ~]# mmm_control set_online slave2

OK: State of \'slave2\' changed to ONLINE. Now you can wait some time and check its new roles!

再次查看當(dāng)前集群中各服務(wù)器狀態(tài):

[root@monitor ~]# mmm_control show

master1(192.168.4.10)master/ONLINE. Roles:writer(192.168.4.200)

master2(192.168.4.11)master/ONLINE. Roles:

slave1(192.168.4.12)slave/ONLINE. Roles:reader(192.168.4.201)

slave2(192.168.4.13)slave/ONLINE. Roles:reader(192.168.4.202)

步驟三:測試mysql-MMM架構(gòu)

2)mysql-MMM虛擬IP訪問測試

[root@client ~]# mysql -h292.168.4.200-uroot -ppwd123 -e show databases

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

[root@client ~]#

[root@client ~]# mysql -h292.168.4.201-uroot -ppwd123 -e show databases

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

[root@client ~]#

[root@client ~]# mysql -h292.168.4.202-uroot -ppwd123 -e show databases

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

[root@client ~]#

3)主數(shù)據(jù)庫宕機測試

[root@master1 ~]# service mysql stop //停止master1上服務(wù)

Shutting down mysql....[確定]

[root@monitor ~]# mmm_control show //查看集群內(nèi)服務(wù)器狀態(tài)

通過輸出信息可以看到虛擬IP從master1切換到master2:

master1(192.168.4.10)master/HARD_OFFLINE. Roles:

master2(192.168.4.11)master/ONLINE. Roles:writer(192.168.4.200)

slave1(192.168.4.12)slave/ONLINE. Roles:reader(192.168.4.201)

slave2(192.168.4.13)slave/ONLINE. Roles:reader(192.168.4.202)

[root@client ~]# mysql -h292.168.4.200-uroot -ppwd123 -e show databases //訪問虛擬IP測試

Warning: Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| tarena |

| test |

+--------------------+

[root@client ~]#

MySQL-MMM集群架構(gòu)就完成了。

過程中遇到的問題:

我在第一次 mmm_control show 查看集群服務(wù)器狀態(tài)的時候,發(fā)現(xiàn)除了master1的狀態(tài)為AWAITING_RECOVERY, 其他三臺為HARD_OFFLINE。

這是因為我最開始創(chuàng)建的monitor用戶沒有被同步過去,在主庫master1 重新創(chuàng)建就好。

查看MYSQL數(shù)據(jù)庫中所有用戶 ,

mysql> SELECT DISTINCT CONCAT(\'User: \'\'\',user,\'\'\'@\'\'\',host,\'\'\';\') AS query FROM mysql.user;

還有一個問題,我的環(huán)境是虛擬機克隆的,配置主從的時候遇到UUID沖突的問題,

停止數(shù)據(jù)庫 把數(shù)據(jù)庫所在目錄下的auto.cnf 備份一份之后,刪除。 重啟就好了。

主庫master1 一定要記得開啟 log-slave-updates


文章名稱:mysql5.6部署集群基礎(chǔ)環(huán)境
分享路徑:http://weahome.cn/article/cjsigc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部