MySQL之——基於Keepalived實現雙機HA
1、環境描述:
OS:CentOS6.5_X64
MASTER:192.168.0.202
BACKUP:192.168.0.203
VIP:192.168.0.204
2、配置兩臺Mysql主主同步
關於MySQL的安裝大家也可以參考《 MySQL之——CentOS6.5 編譯安裝MySQL5.6.16 》,主主同步在主從同步的基礎上將從伺服器配置為之前主伺服器的Master,相當於在原來主從同步的基礎上,將原來的Slave設定為了原來Master的Master,大家也可以參考《MySQL之——MS主從複製(讀寫分離)實現》
,設定A為B的Master,B為A的Slave後,然後再將B設定為A的Master,A設定為B的Slave。
[[email protected] ~]# yum install mysql-server mysql -y
[[email protected] ~]# service mysqld start
[[email protected] ~]# mysqladmin -u root proot
[[email protected] ~]# vi /etc/my.cnf #開啟二進位制日誌,設定id
[mysqld]
server-id = 1 #backup這臺設定2
log-bin = mysql-bin
binlog-ignore-db = mysql,information_schema #忽略寫入binlog日誌的庫
auto-increment-increment = 2 #欄位變化增量值
auto-increment-offset = 1 #初始欄位ID為1
slave-skip-errors = all #忽略所有複製產生的錯誤
[ [email protected] ~]# service mysqld restart
#先檢視下log bin日誌和pos值位置master配置如下:
backup配置如下:[[email protected] master ~]# mysql -u root -proot mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED BY 'replication'; mysql> flush privileges; mysql> change master to -> master_host='192.168.0.203', -> master_user='replication', -> master_password='replication', -> master_log_file='mysql-bin.000002', -> master_log_pos=106; #對端狀態顯示的值 mysql> start slave; #啟動同步
[[email protected] ~]# mysql -u root -proot
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
-> master_host='192.168.0.202',
-> master_user='replication',
-> master_password='replication',
-> master_log_file='mysql-bin.000002',
-> master_log_pos=106;
mysql> start slave;
#主主同步配置完畢,檢視同步狀態Slave_IO和Slave_SQL是YES說明主主同步成功。在master插入資料測試下:
在backup檢視是否同步成功:
可以看到已經成功同步過去,同樣在backup插入到user表資料,一樣同步過去,雙主就做成功了。
3、配置keepalived實現熱備
[[email protected] ~]# yum install -y pcre-devel openssl-devel popt-devel #安裝依賴包
[[email protected] ~]# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
[[email protected] ~]# tar zxvf keepalived-1.2.7.tar.gz
[[email protected] ~]# cd keepalived-1.2.7
[[email protected] ~]#./configure --prefix=/usr/local/keepalived
make
#將keepalived配置成系統服務[[email protected] ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[[email protected] ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[[email protected] ~]# mkdir /etc/keepalived/
[[email protected] ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[[email protected] ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[[email protected] ~]# vi /etc/keepalived/keepalived.conf
! Configuration File forkeepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MYSQL_HA #標識,雙主相同
}
vrrp_instance VI_1 {
state BACKUP #兩臺都設定BACKUP
interface eth0
virtual_router_id 51 #主備相同
priority 100 #優先順序,backup設定90
advert_int 1
nopreempt #不主動搶佔資源,只在master這臺優先順序高的設定,backup不設定
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.204
}
}
virtual_server 192.168.0.204 3306 {
delay_loop 2
#lb_algo rr #LVS演算法,用不到,我們就關閉了
#lb_kind DR #LVS模式,如果不關閉,備用伺服器不能通過VIP連線主MySQL
persistence_timeout 50 #同一IP的連線60秒內被分配到同一臺真實伺服器
protocol TCP
real_server 192.168.0.202 3306 { #檢測本地mysql,backup也要寫檢測本地mysql
weight 3
notify_down /usr/local/keepalived/mysql.sh #當mysq服down時,執行此指令碼,殺死keepalived實現切換
TCP_CHECK {
connect_timeout 3 #連線超時
nb_get_retry 3 #重試次數
delay_before_retry 3 #重試間隔時間
}
}
[[email protected] ~]# vi /usr/local/keepalived/mysql.sh
#!/bin/bash
pkill keepalived
[[email protected] ~]# chmod +x /usr/local/keepalived/mysql.sh
[[email protected] ~]# /etc/init.d/keepalived start
#backup伺服器只修改priority為90、nopreempt不設定、real_server設定本地IP。#授權兩臺Mysql伺服器允許root遠端登入,用於在其他伺服器登陸測試!
mysql> grant all on *.* to'root'@'192.168.0.%' identified by 'root';
mysql> flush privileges;
4、測試高可用性
1)通過Mysql客戶端通過VIP連線,看是否連線成功。2)停止master這臺mysql服務,是否能正常切換過去,可通過ip addr命令來檢視VIP在哪臺伺服器上。
3)可通過檢視/var/log/messges日誌,看出主備切換過程
4)master伺服器故障恢復後,是否主動搶佔資源,成為活動伺服器。
注意:服務啟動的順序:先啟動MySQL,後啟動Keepalived。
相關推薦
MySQL之——基於Keepalived實現雙機HA
1、環境描述: OS:CentOS6.5_X64 MASTER:192.168.0.202 BACKUP:192.168.0.203 VIP:192.168.0.204 2、配置兩臺Mysql主主同步 關於MySQL的安裝大家也可以參考《
keepalived實現雙機熱備
lin fire per 安裝 arp index 正常 綁定 type keepalived的作用是檢測後端TCP服務的狀態,如果有一臺提供TCP服務的後端節點死機,或者工作出現故障,keepalived會及時檢測到,並將有故障的節點從系統中剔除,當提供TCP服務的節
使用keepalived實現雙機熱備
figure 設置 dha boa message mtu hat 並不是 pid 通常說的雙機熱備是指兩臺機器都在運行,但並不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上自動接管並且提供服務,而且切換的時間非常短。下面來以keepalived
MySQL之——基於Amoeba實現讀寫分離
今天,我們繼續MySQL的話題,今天為大家帶來一篇基於Amoeba實現MySQL讀寫分離的方案文章,好我們直接進入今天的正題吧。 一、伺服器規劃 主機名 IP地址 節點 liuyazhuang152 192.168.0.152 amoeba liuyazhuang153
Mycat+Mysql主從復制實現雙機熱備
偏移 官方 搭建 jdk1 stat 普通用戶 系統 sch 支持 Mycat+Mysql主從復制實現雙機熱備 一、mysql主從配置原理 雙機熱備的概念簡單說一下,就是要保持兩個數據庫的狀態自動同步。對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持
Nginx+keepalived做雙機熱備,實現負載均衡(主主模式)
nginx keepalive Keepalived: 簡介:Keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後Keepali
解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡及高可用
解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡及高可用 IP 伺服器 服務 192.168.1.10 lb-node1 Nginx、kee
Mysql + keepalived 實現雙主熱備讀寫分離
架構圖 系統:CentOS6.4_X86_64 軟體版本:Mysql-5.6.12,Keepalived-1.2.7 環境簡介: 1.Master-A 192.168.1.168 (Mysql+Keepalived) 2.Ma
JAVA之氣泡排序—實現雙色球機選小程式
紅球6位:1~33 中不重複的遞增陣列 ,籃球1位:1~16 廢話不多說,上程式碼 pojo package pojo; public class Lottery {public int red;public int blue;public int startRed
Linux 雙機HA的功能實現
基於heartbeat方式 HeartBeat運行於備用主機上的Heartbeat可以通過乙太網連線檢測主伺服器的執行狀態,一旦其無法檢測到主伺服器的“心跳”則自 動接管主伺服器的資源。通常情況下,主、備伺服器間的心跳連線是一個獨立的物理連線,這個連線可以是序列線纜、一個
mysql的主從備份和雙機互備實現
雙機互備和熱備的區別: 互備所指的是backup,保證資料的完整性而做的備份。主要目的是防止資料丟失。 熱備是為了保證應用的連續性。利用故障轉移的方法實現。 Linux下實現的雙機互備: 主從備份: 1、設定同步Master 修改
搭建MySql資料庫的主從及實現雙機熱備(資料庫的高可用)
1. 用的CentOS7,因為CentOS7自帶mariadb,所以首先解除安裝mariadb.不解除安裝安裝mysql會有衝突,以前安裝過mysql也要解除安裝 2. 解除安裝mariadb 執行命令(會列出所有的mariad
keepalived + rsync +inotify-tools實現雙機熱備
## 1.需求 實現資料交換系統的主備自動切換功能,當資料交換的master主機故障,網路故障以及資料交換mysql服務出現故障時,能自動切換到備機執行。 ## 2.實現思路 採用keepalived+rsync+ inotify雙backup模式,並設定不搶佔資源。當ma
keepalived+nginx雙機熱備+負載均衡
ethernet auth 超時任務 collision boot .rpm ocl bnl host keepalived+nginx雙機熱備+負載均衡最近因業務擴展,需要將當前的apache 轉為nginx(web), 再在web前端放置nginx(負載均衡)。同時結合
實驗:基於keepalived實現兩臺realserver服務器中的nginx和php-fpm服務互為主從
基於keepalived實現nginx和php-fpm互為主從 基於keepalived實現兩臺realserver服務器中的nginx和php-fpm服務互為主從 思路:利用兩個VIP,一個定位nginx,一個定位php-fpm步驟:1、準備兩臺基於LNMP架構的服務器(能夠提供正常的web服務)2、在ng
基於keepalived實現多種模式的高可用集群網站架構
keepalived 一、 實現主從服務器高可用技術。 大概網絡拓撲圖: 前提準備條件: 準備四臺機器,一臺為keepalived的master,一臺為keepalived的backup,一臺為rs1,一臺為rs2,同時都關閉防火墻和selinux。 ①安裝包。 yum install kee
Linux學習總結(五十四)keepalived+lvs 雙機熱備負載均衡架構
DR LVS keepalived+lvs 一 LVS IP tunnel 模式介紹 IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的數據報文能被封裝和轉發到另一個IP地址。IP隧道技術亦稱為IP封裝技術(IP encapsulatio
.NET Core微服務之基於Consul實現服務治理
請求轉發 1.0 asp.net AC port prefix 我們 tle nan 一、Consul基礎介紹 Consul是HashiCorp公司推出的開源工具,用於實現分布式系統的服務發現與配置。與其他分布式服務註冊與發現的方案,比如 Airbnb的Smart
MySQL之MHA+keepalived方案演示(一)
keygen centos6.5 out too send 停止 keepaliv o_direct failover 整個MHA集群環境搭建過程演示 一. 實驗環境說明 安裝MHA操作步驟MHA節點包含三個腳本,依賴perl模塊。save_binary_logs:保
MySQL之MHA+keepalived方案演示(二)
file diff bin-log 問題 glob user 文件系統 ply repo 一、配置MHA工作環境 192.168.2.130機器操作:1.1.創建MHA的工作目錄,並且創建相關配置文件(在軟件包解壓後的目錄裏面有樣例配置文件)。指的是可以下載 mha4mys