1. 程式人生 > >keepalived 實現mysql主從自動切換

keepalived 實現mysql主從自動切換

3.1安裝KEEPALIVED軟體:
wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
tar zxvf keepalived-1.2.7.tar.gz 
cd keepalived-1.2.7
./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.18-194.el5-x86_64

  3.2設定KEEPALIVED開機自啟動:
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ 
 cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 
 cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ 
 chkconfig keepalived on

  3.3編寫主從庫上的配置檔案:
mkdir /etc/keepalived
vi /etc/keepalived/keepalived.conf
資料庫角色	配置檔案內容



192.168.137.212 VIP
 
192.168.137.3  master

192.168.137.4  slave

主	! Configuration File for keepalived
global_defs {
   router_id MySQL-ha
}

#global_defs {
#notification_email {
#
[email protected]
} #當主、備份裝置發生改變時,通過郵件通知 #notification_email_from [email protected] #smtp_server stmp.126.com #smtp_connect_timeout 30 #router_id MySQL-ha #} vrrp_instance VI_1{ # 在初始化狀態下定義為主裝置 state BACKUP # 注意網絡卡介面 interface eth0 virtual_router_id 51 # 優先順序,另一臺改為90 priority 100 advert_int 1 # 不主動搶佔資源 nopreempt authentication { # 認證方式,可以是PASS或AH兩種認證方式 auth_type PASS # 認證密碼 auth_pass 1111 } virtual_ipaddress { # 虛擬IP地址,隨著state的變化而增加刪除 192.168.137.212 } } virtual_server 192.168.137.212 3306 { # 每個2秒檢查一次real_server狀態 delay_loop 2 # LVS演算法 lb_algo wrr # LVS模式 lb_kind DR # 會話保持時間 persistence_timeout 60 protocol TCP real_server 192.168.137.3 3306 { # 權重 weight 3 # 檢測到服務down後執行的指令碼 notify_down /etc/keepalived/keepalived.sh TCP_CHECK { # 連線超時時間 connect_timeout 10 # 重連次數 nb_get_retry 3 # 重連間隔時間 delay_before_retry 3 # 健康檢查埠 connect_port 3306 } } } 從! Configuration File for keepalived global_defs { router_id MySQL-ha } vrrp_instance VI_1{ # 在初始化狀態下定義為主裝置 state BACKUP # 注意網絡卡介面 interface eth0 virtual_router_id 51 # 優先順序,另一臺改為90 priority 90 advert_int 1 # 不主動搶佔資源 nopreempt authentication { # 認證方式,可以是PASS或AH兩種認證方式 auth_type PASS # 認證密碼 auth_pass 1111 } virtual_ipaddress { # 虛擬IP地址,隨著state的變化而增加刪除 192.168.137.212 } notify_master /etc/keepalived/modifyreadonly.sh } virtual_server 192.168.137.212 3306 { # 每個2秒檢查一次real_server狀態 delay_loop 2 # LVS演算法 lb_algo wrr # LVS模式 lb_kind DR # 會話保持時間 persistence_timeout 60 protocol TCP real_server 192.168.137.4 3306 { # 權重 weight 3 # 檢測到服務down後執行的指令碼 notify_down /etc/keepalived/keepalived.sh TCP_CHECK { # 連線超時時間 connect_timeout 10 # 重連次數 nb_get_retry 3 # 重連間隔時間 delay_before_retry 3 # 健康檢查埠 connect_port 3306 } } } /etc/keepalived/keepalived.sh 內容: /get_ssh.exp 192.168.137.4 xxxx "/apps/svr/mysql5.6/bin/mysql -uroot -pxxxxxxx -S /apps/dbdat/mysql_3306data/mysql_3306.sock -e 'set global read_only=0;'" /etc/keepalived/modifyreadonly.sh 內容: /usr/local/mysql/bin/mysql -uroot -pxxxxx -S /data/mysqldata/3306/mysql.sock -e 'set global read_only=0;' 192.168.137.212 192.168.137.3 主 192.168.137.4 從 3.4配置檢測主庫DOWN後執行的指令碼: 指令碼一 #!/bin/sh /etc/init.d/keepalived stop #在停止KEEPALIVED後遠端將第二節點改為可寫 /get_ssh.exp 192.168.137.4 xxxx "/apps/svr/mysql5.6/bin/mysql -uroot -pxxxxxxx -S /apps/dbdat/mysql_3306data/mysql_3306.sock -e 'set global read_only=0;'" 指令碼二 get_ssh.exp 的內容如下: 要先安裝軟體:expect #!/usr/bin/expect -f set timeout -1 if { [llength $argv] < 3} { puts "usage: $argv0 ip pass cmd" exit 1 } set ip [lindex $argv 0 ] set password [lindex $argv 1 ] set cmd [lindex $argv 2 ] spawn ssh $ip $cmd expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "$password\r" } } expect eof 指令碼三 當從庫的狀態變為MASTER後所要執行的指令碼: #!/bin/bash /usr/local/mysql/bin/mysql -uroot -pxxxxx -S /data/mysqldata/3306/mysql.sock -e 'set global read_only=0;'

相關推薦

keepalived 實現mysql主從自動切換

3.1安裝KEEPALIVED軟體: wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz tar zxvf keepalived-1.2.7.tar.gz cd keepalived-1.2.7

redis sentinel的指令碼機制及實現twemproxy主從自動切換

redis sentinel 指令碼機制 1).sentinel notification-script   通知型指令碼:當sentinel有任何警告級別的事件發生時(比如說redis例項的主觀失效和客觀失效等等),將會去呼叫這個指令碼,這時這個指令碼應該通

利用mha實現mysql主從自動切換

ssh免密連線: [[email protected] etc]# ssh-keygen [[email protected] etc]# ssh-copy-id -i /root/

keepalived+MHA實現mysql主從高可用集群

keepalived mha mysql主從集群 高可用 本節索引原理分析實驗環境準備主從復制集群安裝MHA包初始化MHA配置Keepalived故障出現故障恢復總結 一 原理分析1 MHA簡介:MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟

我的redis+keepalived主從自動切換配置指令碼

echo "192.168.0.246 redismaster" >> /etc/hosts echo "192.168.0.249 redisslave" >> /etc/hosts echo 1 > /proc/sys/vm/overcom

使用keepalived實現redis主從切換

安裝keepalived和redis主從的過程不再贅述,可參見本人其他部署文章。 主機名 IP地址 所安裝軟體 jia3.ty.com 192.168.10.103 keepalived(backup-高優先順序),redis(master) jia4.ty.com 192

通過Keepalived實現Redis Failover自動故障切換功能(整理中) .

設計思路: redis 主和 redis從  正常同步; redis主keepalived 啟動,執行redis_master.sh指令碼,vip在自己身上; redis 從keepalived 啟動,執行redis_slave.sh指令碼; redis主服務關閉,則redis主執行redis_fau

Dledger是如何實現主從自動切換

  前言 hello小夥伴們,今天王子又來繼續和大家聊RocketMQ了,之前的文章我們一直說Broker的主從切換是可以基於Dledger實現自動切換的,那麼小夥伴們是不是很好奇它究竟是如何實現的呢?今天我們就來聊一聊這個話題。 首先我們回顧一下上一篇文章深入研究Broker是如何持久化的中,pr

shell之路--mysql主從自動部署

shell mysql主從 #!/bin/bash#auto make install Mysql AB Relication#by author max#date 2017-05-04MYSQL_SOFT="mysql mysql-server mysql-devel php-mysql"NUM=`

mysql主從故障切換

mysql主從故障切換一:環境 192.168.1.100 master 192.168.1.101 slave1 192.168.1.102 slave2 slave1,slave2都是連在master上。 二:模擬主故障 關閉master實例 service MySQL stop 此時,slave

MySQL集群(四)之keepalived實現mysql雙主高可用

健康檢查 重連 lose 搶占 pro 資源 交換機 state nec 前面大家介紹了主從、主主復制以及他們的中間件mysql-proxy的使用,這一篇給大家介紹的是keepalived的搭建與使用! 一、keepalived簡介 1.1、keepalived介紹

MySQL(三):MHA實現MySQL主從架構中主服務器的高可用,zabbix完成manager重啟

code parallel 可以登錄 authorize sudo word systemctl 命令 nag MHA(Master High Availability)是目前在MySQL高可用方面相對成熟的一個解決方案,MHA在監控到master節點故障時,會提升其中擁有

Mycat實現Mysql主從讀寫分離

pan 權限 程序 連接 file 只讀 wrapper linux. table 一、概述 關於Mycat的原理網上有很多,這裏不再詳述,對於我來說Mycat的功能主要有如下幾種: 1.Mysql主從的讀寫分離 2.Mysql大表分片 3.其他數據庫例如Oracle,MS

MySQL主主復制+LVS+Keepalived實現MySQL高可用性

reports with server 好的 進入 ring BE failed remote MySQL復制能夠保證數據的冗余的同時可以做讀寫分離來分擔系統壓力,如果是主主復制還可以很好的避免主節點的單點故障。但是MySQL主主復制存在一些問題無法滿足我們的實際需要:未提

Centos6.4 + mysql-5.6.38-linux-glibc2.12-x86_64.tar 實現mysql主從復制

ide mysql-bin log_file color log-bin mysq fig isam 直接 mysql安裝方法:http://www.cnblogs.com/lin3615/p/4376224.html 用到的是兩臺服務器 主:192.168.1.1

基於pt-table-checksum和pt-table-sync實現MySQL主從數據一致性校驗

MySQL 一致性校驗 在基於MySQL邏輯復制原理的下的主從架構,經常會由於某些緣故產生主從數據不一致,從而導致主從復制進程報錯中斷。而基於定期去檢查從庫的show slave status\G的IO線程和SQL線程的狀態,只能確認當前replication是正常的,卻無法確認當前主從數據是否一致。

Docker實現MySQL主從復制(主主復制同理)

clas 文件 mysql的安裝 -- 雙向 res 嘗試 4.0 用戶名   因為最近在學習MySQL,看到很多地方有“分庫分表”,“讀寫分離”的字眼,就想嘗試一下吧! 首先,因為本人經濟能力有限,買不起那麽多服務器,所以就借用Docker來搭建虛擬機來作為兩臺服務器

Amoeba搭建高可用Mysql集群(實現Mysql主從復制、讀寫分離、負載均衡)

proc 分布式數據庫 啟動 parent 分布 技術分享 事務 admin str Amoeba是什麽? Amoeba(變形蟲)項目,該開源框架於2008年 開始發布一款 Amoeba for Mysql軟件。這個軟件致力於MySQL的分布式數據庫前端代理層,它主要在應用

Atlas實現mysql主從分離

load 修改 log res install 修改配置文件 hub top 代碼 目錄.... 1 文檔格式:.... 1 一.介紹Atlas及架構圖.... 2 二.實驗環境.... 3 三.實施案例.... 3 1.目錄結構... 3 2.配置Mysql主從... 4

利用Amoeba實現MySQL主從復制和讀寫分離

生產環境 層級 cal 目錄名 發現 slaves zxvf 同步服務 code 在實際生產環境中,如果對數據庫的讀和寫都在同一個數據庫服務器中操作,無論是在安全性、高可用性,還是高並發等各個方面都是完全不能滿足實際需求的,因此,一般來說都是通過主從復制(Master-Sl