问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql keepalived主主同步会有什么问题

发布网友 发布时间:2022-04-08 08:24

我来回答

2个回答

懂视网 时间:2022-04-08 12:45


一、安装mysql,并设置主备服务器


1、将下面的代码复制到一个后缀为.sh的shell脚本文件中(脚本很容易看懂)


# vi /etc/scripts/mysql.sh


##/bin/bash

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


yum -y install mysql mysql-server mysql-devel


#定义一个数值Level(设置数据库主从)

echo "Enter the "Master"(1) or "slave"=(2)"

read Level

#定义一个数值mysql(需要同步的具体某个数据库,需要同步所有数据库,就将这段以及后面有关代码删掉即可)

echo "Enter the Sync database"

read mysql                    


cat > /etc/my.cnf <<Eof


#做一些数据库优化

[mysql]


# CLIENT #

port                           = 3306

socket                         = /var/lib/mysql/mysql.sock


[mysqld]


# GENERAL #

user                           = mysql

default-storage-engine         = InnoDB

socket                         = /var/lib/mysql/mysql.sock

pid-file                       = /var/lib/mysql/mysql.pid


# MyISAM #

key-buffer-size                = 32M

myisam-recover                 = FORCE,BACKUP


# SAFETY #

max-allowed-packet             = 16M

max-connect-errors             = 1000000


# DATA STORAGE #

datadir                        = /var/lib/mysql/


# BINARY LOGGING #

log-bin                        = /var/lib/mysql/mysql-bin

expire-logs-days               = 14

sync-binlog                    = 1


# REPLICATION #

relay-log                      = /var/lib/mysql/relay-bin

slave-net-timeout              = 60


# CACHES AND LIMITS #

tmp-table-size                 = 32M

max-heap-table-size            = 32M

query-cache-type               = 0

query-cache-size               = 0

max-connections                = 500

thread-cache-size              = 50

open-files-limit               = 65535

table-definition-cache         = 4096

table-open-cache               = 4096


# INNODB #

innodb-flush-method            = O_DIRECT

innodb-log-files-in-group      = 2

innodb-log-file-size           = 128M

innodb-flush-log-at-trx-commit = 2

innodb-file-per-table          = 1

innodb-buffer-pool-size        = 2G


# LOGGING #

log-error                      = /var/lib/mysql/mysql-error.log

log-queries-not-using-indexes  = 1

slow-query-log                 = 1

slow-query-log-file            = /var/lib/mysql/mysql-slow.log



srver-id = $Level


#需要同步整个数据库就将下面两段代码删掉


binlog-do-db = $mysql

replicate-do-db = $mysql


log-slave-updates

sync_binlog = 1

auto_increment_offset = $Level

auto_increment_increment = 2


Eof


service mysqld restart

chkconfig mysqld on


2、添加脚本执行权限


# chmod  /etc/scripts/mysql.sh


二、安装keepalived


1、将如下代码复制到后缀名为.sh的shell脚本文件


# vi /etc/scripts/keepalived.sh


##!/bin/bash


yum install keepalived -y


#定义keepalived的虚拟IP

echo "VIP:"

read VIP


#定义主服务器,还是备份服务器

echo "MASTER OR BACKUP:"

read state


#定义优先级

echo "priority: (MASTER:100 BACKUP:99)"

read priority


#定义虚拟路由,主备要一样

echo "virtual_router_id:"

read virtual_router_id



cat > /etc/keepalived/keepalived.conf <<Eof

#! Configuration File for keepalived

global_defs {

#router_id mysql-ha1 #修改为自己的主机名

             }

vrrp_script chk_haproxy {

    script "/etc/keepalived/chk_slave.sh"

    interval 2

    weight 2

}

 

 

vrrp_instance VI_1 {

     state $state #都修改成BACKUP

     interface eth0

     virtual_router_id $virtual_router_id #默认51 主从都修改为60

     priority $priority #在mysql-ha2上LVS上修改成80

     advert_int 1

#     nopreempt #不抢占资源,意思就是它活了之后也不会再把主抢回来

     authentication {

     auth_type PASS

     auth_pass 1111

     }

    track_script {

        chk_haproxy

    }

virtual_ipaddress {

     $VIP

     }

}

Eof



echo "Enter the database password"

read password



cat /etc/keepalived/check_slave.sh <<Eof

##/bin/bash

    Mysql=$(mysql -uroot -p$password -N -s -e "select 10")

    if [ $? -ne 0 ] || [ "$Mysql" -ne "10" ];then

      service keepalived stop

      exit 1

    else

      SlaveStatus=($(mysql -uroot -p$password -e "show slave statusG;"|grep "_Running"|awk ‘{print  $NF}‘))

            if [ "$SlaveStatus[0]" = "No" ] || [  "${SlaveStatus[1]}" = "No" ];then

                    service keepalived stop

            fi

    fi

Eof


2、添加脚本执行权限


# chmod  /etc/scripts/keepalived.sh



本文出自 “流星宇” 博客,谢绝转载!

keepalived+mysql主从实现数据库冗余

标签:keepalived+mysql主从实现数据库冗余

热心网友 时间:2022-04-08 09:53

keepalived的mysql主挂掉后,主上的keepalived应该调用脚本将自己的VIP down掉,从上的keepalived会检测的VIP消失,然后把自己的VIP加上,然后执行master脚本。

keepalived只是用来切换VIP的,如果要是mysql有从变成主,则需要将所有的更改操作写到脚本中,在脚本里调用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
网络宣传文案心碎,句句获赞! 关于朋友圈上万人点赞转发的说说 人生看的很透彻的经典句子 超现实超扎心的说说大全2019最新 心脏血管堵塞吃什么食物 投资理财有什么前景 pp理财什么情况 P2P理财行业的前景如何? 中国目前的财富管理现状是什么情况? 呼吸皮沙发寿命多久 “皮沙发的呼吸寿命” 呼吸皮沙发寿命多久 白梅花能和薏米茶一起吗? 泡茶禁忌 白梅花茶能润肺止咳吗?长期饮用对慢性咽炎好吗? 烤肠哪个品牌最好, 腊梅的形状,颜色,香味,作用,使用范围.泡茶时应该注意些什么? 刚吃双汇泡面拍挡香肠中吃到一根骨头是正常的吗? 吃香肠吃出来了骨头!!! 香肠吃着怎么有像骨头渣一样的东西 香肠里吃出这个白色的东西是什么,双汇的香肠? 有一种香肠,*的,里面有白色的脆骨。请问叫什么名字啊?很好吃的。 带骨香肠骨头干净吗? 设置局域网后文件不能共享 怎么回事? 该求助者主客观统一 是什么意思 如何共享陕西中恩盛建设工程有限公司的资质? 中考分数的主客是什么意思 什么是主客场赛制 篮球赛中的主客场是什么意思? 中医说的主客是什么意思 cba主客场制是什么意思 主场和客场是什么意思 梅花风水禁忌,梅花有哪些寓意 手机掉水里 埋进米堆能挽救吗 掉进水里的手机,擦干净后放在大米里就能好吗? ck面膜好不好?价格贵不? 我今天晚上用了Ck,面膜,然后一会就发现脸痒,然后去洗了,又接着用爽肤水,又擦了乳液,现在脸又红又... ck红番茄冰疗面膜,含有激素。用了之后有点像激素依赖性皮炎。几天不用。脸又红又痒。一敷完隔天又完 ck红番茄面膜几天敷一次 拿c-ck制造的面膜敷多长时间 CK好不好? 这个NARCURE面膜怎么样? ps文字蒙版怎么取消 photoshop里怎么去掉快速蒙版 清一这个牌子的面膜好不好 PS自定义图形蒙版怎么取消 DHC,哪种润肤露好用?听说面膜不错 韩国高丽雅娜肉毒杆菌面膜的香味请问有朋友知道是和哪款香水的香味一样吗?现在在用这款面膜,觉得香味 ps cs5 怎么取消文字蒙版 今天白天做梦梦到老公的侄女快死了,是怎么回事 PS里怎样删掉形状图层中的蒙板? photoshop里边怎么去掉矢量蒙版和矢量蒙版连接