文档章节

mysql 主主+keepalive

 空灵飞渡
发布于 2017/08/21 09:20
字数 1153
阅读 15
收藏 0
点赞 0
评论 0

####环境准备
安装mysql(centos7 默认没有mysql源)
yum clearup
yum update
yum install vim libaio net-tools
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server python-mysqldb(Python-mysqldb未安装)

启动修改密码
update user set password=password(‘123456‘) where user=‘root‘;

###给slave赋权
grant replication slave on *.* to '用户名'@'192.168.1.153' identified by '密码';
###锁表,找到master当前的binlog点以及position位置
flush tables with read lock;
show master status;   ###记录日志制文件以及position点
unlock tables;

###从库上操作,先停掉salve服务,然后配置连上master的配置
stop slave 
####利用刚在主库上面创建的账号密码以及记录的二进制日志文件和position点,连接到主库的同步位置
change master to master_host='192.168.178.2',master_user='xldroot',master_password='123123',master_log_file='mysql-bin.000003', master_log_pos=790;
start slave 
show slave status\G
#######一下两项为yes即OK,也可以自己去创建数据库,看下是否有同步
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

###上面是单方向主从配置,主主的话反着来一次即可(之前的从上创建连接的账号和密码以及记录节点位置,然后在之前的主连接到从),不过配置里面还是有区别
[client]
character-set-server = utf8  #####客户端默认连接字集集,若编译安装时已指定则不用填写

[mysqld]
datadir=/data/mysql/data
character-set-server = utf8
socket=/var/lib/mysql/mysql.sock
port = 3306
server_id = 1
log-bin= mysql-bin
binlog_format = mixed
bind  =  0.0.0.0
read-only=0
#binlog-do-db=test              
binlog-ignore-db=mysql          
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
auto-increment-offset=1
auto-increment-increment=2

#主从复制
##replicate-do-db=test              ###开启的话只同步这些库
replicate-ignore-db=mysql           ###忽略同步这些库
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
relay_log=mysql-relay-bin
log-slave-updates=on

###binlog日志
log_bin                 = /data/log/mysql/mysql-bin.log
relay_log               = /data/log/mysql/mysql-relay-bin
log_slave_updates       = 1
expire_logs_days        = 7

###慢查询
slow_query_log          = ON
slow_query_log_file     = /data/log/mysql/mysql-slow.log
#log_slow_queries       = /data/log/mysql/mysql-slow.log
long_query_time = 2

key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 50

[mysqld_safe]
log-error=/data/log/mysql/mariadb.log
pid-file=/data/log/mysql/mariadb.pid


[client]
character-set-server = utf8  #####客户端默认连接字集集,若编译安装时已指定则不用填写

[mysqld]
socket=/var/lib/mysql/mysql.sock
character-set-server = utf8
datadir =/data/mysql/data
port = 3306
server_id = 2
log-bin= mysql-bin
binlog_format = mixed

read-only=0
#replicate-do-db=test
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
relay_log=mysql-relay-bin
log-slave-updates=on
#
##
##binlog-do-db=test
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
auto-increment-offset=2
auto-increment-increment=2


log_bin                 = /data/log/mysql/mysql-bin.log
relay_log               = /data/log/mysql/mysql-relay-bin
log_slave_updates       = 1
expire_logs_days        = 7

slow_query_log          = ON
slow_query_log_file     = /data/log/mysql/mysql-slow.log
#log_slow_queries       = /data/log/mysql/mysql-slow.log
long_query_time = 2

key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 50

[mysqld_safe]
log-error=/data/log/mysql/mariadb.log
pid-file=/data/log/mysql/mariadb.pid

#####因为这个主从的跑配置没有在my.cnf里面,重新启动会加载数据目录下面的配置

/var/lib/mysql/master.info   ###根据你自己的数据目录而定,记录了服务器地址,同步节点位置

####keepalived实现mysql主主自动切换
yum -y install keepalived
###加入开启启动
chkconfig keepalived on 2345
chkconfig mysqld on 2345
###查验
centos7
systemctl list-unit-files |egrep 'mysql|keepalived'

####keepalived配置
global_defs {
   notification_email {
     #failover@firewall.loc
     root@localhost    ###告警通知,现在作用不大,一般都可以通过其他监控软件来做
   }
   notification_email_from root@localhost     ###发件人
   smtp_server localhost                      ###SMTP服务器
   smtp_connect_timeout 30
   router_id LVS_DEVEL                        ###可一致,也可不一致
}

vrrp_instance VI_1 {                          ###相当于Cisco的vrrp协议,虚拟一个组,如果有多个时,定义多个组即可
    state MASTER                              ###目前的主,只是一种称呼,实际由优先级决定,越高的是老大
    interface ens4                            ###绑定的接口
    virtual_router_id 51                      ###组id,必须一致,表示都加入同一个组
    priority 100                              ###优先级
    advert_int 1                              ###通告时间,也就是加入这个组的所有机器之前的通告
    authentication {                          ###定义认证,内容必须一致
        auth_type PASS
        auth_pass baowang
    }
    virtual_ipaddress {                       ###这就是虚拟出来对外访问的地址
        10.68.3.160
        #192.168.200.17
    }
}

virtual_server 10.68.3.160 3306 {             ###细化,虚拟到哪些端口
    delay_loop 6
    lb_algo wrr                               ###带有权重的轮询
    lb_kind NAT
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 10.68.3.145 3306 {            ###绑定到的真实地址和端口
        weight 5                              ###权重下降值
        notify_up   /etc/keepalived/keepalived_start.sh              ###检测整体服务器环境正常之后的操作
        notify_down /etc/keepalived/keepalived_shutdown.sh           ###定义脚本检测,down之后的操作
        TCP_CHECK {                              ###定义一些基本的校验项
            connect_timeout 10                ###超时时间
            nb_get_retry 5                    ###重连次数
            delay_before_retry 3              ###重连间隔
            connect_port 3306
        }
    }
  }
}

###额外的,可以定义全脚本
vrrp_script chk_nginx {
script "/home/check_nginx.sh"
interval 2
weight 2
}

###局部模块,位置虚拟组vrrp_instance VI_1里面,用于调用全局的脚本
track_script {
        chk_nginx  #检测脚本
}

####定义日志输出:默认是在/var/log/message,这个日志里面混合太多,查看不太方便
1.修改etc/sysconfig/keepalived文件
把KEEPALIVED_OPTIONS="-D" 
修改为KEEPALIVED_OPTIONS="-D -d -S 0"

2.设置syslog,修改/etc/syslog.conf,添加内容如下(centos7是/etc/rsyslog.conf) 
# keepalived -S 0 
local0.*                    /data/log/keepalive/keepalived.log

3.###重启日志服务和keepalive服务,在定义的路径下就可以看到需要的日志
systemctl restart rsyslog or systemctl restart syslog
service keepalived restart       

4.####mysql得创建允许keepalive虚拟IP连接的账号

© 著作权归作者所有

共有 人打赏支持
粉丝 3
博文 176
码字总数 81638
作品 0
广州
Mysql中间件代理 Atlas

本文接上文介绍atlas的安装配置,以及借助keepalive软件实现altas的ha,避免由于atlas故障,导致数据库服务中断的情况出现: 一:环境介绍 Atlas 主:192.168.1.12/24 Atlas 从:192.168.1.8...

ylw6006
2014/10/29
0
0
MySQL高可用在网易的最佳应用与实践

本文根据DBAplus社群第102期线上分享整理而成。 主题简介: 1、常见的MySQL高可用架构 2、分布式数据库高可用实践 3、基于keepalive的MySQL高可用改造 大家好,我是来自杭州研究院的潘威,今...

潘威
2017/05/08
0
0
Proxy实现MySQL读写分离

使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql...

彭锐
05/31
0
0
Keepalive实现mysql双主热备

Keepalive实现mysql双主热备 环境描述: OS: CentoOS6.6_X64 Node1:172.16.10.1 Node2:172.16.10.2 VIP:172.16.10.10 1、配置主机互信 Node1: 向ntp服务器同步时间 创建同步时间任务计划 [r...

技术小胖子
2017/11/07
0
0
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践

Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高...

kisshua
2011/08/12
0
1
互联网分库分表主键的生成-一个小思路

几乎所有的大型项目都涉及到分库分表(使用关系型数据库),为了应对递增的数据增长采用分库分表的策略,分库分表后面临的首要问题就是主键的生成。主键的关系涉及几个重要的因素: 1,如果只...

wangshuaixin
2016/12/26
98
0
结合keepalived实现redis群集高可用故障自动切换

系统架构图: 我们所要实现的目的很简单, 104,107 为keepalive和redis主从架构,其余服务器比如105、106均为redis从库并且挂在vip 192.168.56.180下面。 主keepalive负责主要日常工作,从kee...

birdinroom
06/28
0
0
​Keepalive实现mysql双主热备

Keepalive实现mysql双主热备 环境描述: OS: CentoOS6.6_X64 Node1:172.16.10.1 Node2:172.16.10.2 VIP:172.16.10.10 1、配置主机互信 Node1: [root@node1~]# ifconfig eth0eth0 Link encap......

灬落魄灬
2017/08/04
0
0
mysql 主从分离 读写分离(mysql-proxy)

mysql主备同步: dd1主:yum install mysql-server -y vim /etc/my.cnf server-id=1 log-bin=mysql-bin 启动二进制日志系统 binlog-do-db=test 需要同步的数据库 binlog-ignore-db=mysql 禁止......

当当要加油
06/26
0
0
mysql 5.7+mysql-proxy 0.8.5 读写分离

主从环境: 操作系统:CentOS6.5_x64 主服务器Master:192.168.0.103 从服务器Slave:192.168.0.105 调度服务器MySQL-Proxy:192.168.0.104 一、mysql主从复制 这里就省略了,请参考 http:/...

dml124
01/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
13分钟前
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
9
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
202
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部