1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Maxscale Keepalived MySQL实现高可用读写分离集群

Maxscale Keepalived MySQL实现高可用读写分离集群

时间:2019-08-14 08:11:28

相关推荐

Maxscale Keepalived MySQL实现高可用读写分离集群

图片是模拟两个从节点down是否正常提供服务

访问http://ip:8989端口,登录名admin,密码mariadb

环境说明:

软件下载链接地址:

MariaDBMaxScale2.5版本-MySQL文档类资源-CSDN下载MariaDBMaxScale2.5版本1、实现MySQL、mariadb数据库读写分离。2更多下载资源、学习资料请访问CSDN下载频道./download/duanph/83935663

1、MySQL读写分离集群

本文不在具体描述安装MySQL集群一主两从搭建,主要通过maxscale中间件服务实现MySQL集群读写分离,主从故障自动切换高可用数据库集群。

Maxscale代理MySQL实现读写分离主(写)从(读)故障切换高可用,keepalived负载均衡服务解决maxscale单点故障问题实现高可用。

以下主要说明搭建maxscale-2.5.9高可用读写分离中间件的详细部署为主。

2、Keepalived负载均衡

安装负载均衡服务

yum install keepalived -y

2.1主备配置文件修改

cat /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

state BACKUP #主master备backup

interface ens192

virtual_router_id 61

priority 200

advert_int 1

unicast_src_ip 192.168.100.213

nopreempt

unicast_peer {

192.168.100.214

}

authentication {

auth_type PASS

auth_pass 7893103

}

track_script {

checknginx

}

virtual_ipaddress {

192.168.100.216

}

}

安装比较简单这里不在详细描述

3、Maxscale主备

3.1服务安装:

tar -zxvf maxscale-2.5.9.rhel.7.tar.gz

mv maxscale-2.5.9.rhel.7 maxscale-2.5.9

3.2创建Maxscale监控账号

CREATE USER 'monitor_user'@'%' IDENTIFIED BY 'my_password';

GRANT REPLICATION CLIENT on *.* to 'monitor_user'@'%';

GRANT SUPER, RELOAD on *.* to 'monitor_user'@'%';

3.3通过MySQL主库配置权限

GRANT SELECT ON mysql.user TO 'maxscale'@'%';

GRANT SELECT ON mysql.db TO 'maxscale'@'%';

GRANT SELECT ON mysql.tables_priv TO 'maxscale'@'%';

GRANT SELECT ON mysql.columns_priv TO 'maxscale'@'%';

GRANT SELECT ON mysql.proxies_priv TO 'maxscale'@'%';

GRANT SELECT ON mysql.roles_mapping TO 'maxscale'@'%';

GRANT SHOW DATABASES ON *.* TO 'maxscale'@'%';

flush privileges;

3.4配置文件修改

cat /opt/maxscale-2.5.9/etc/f

# 全局模块

[maxscale]

# 开启线程个数,默认为1.设置为auto会同cpu核数相同

threads=auto

# timestamp精度

ms_timestamp=1

# 记录info

log_info=0

log_debug=0

log_warning=1

log_notice=1

logdir=/opt/maxscale-2.5.9/var/logs/

piddir=/opt/maxscale-2.5.9/var/logs/

datadir=/opt/maxscale-2.5.9/

cachedir=/opt/maxscale-2.5.9/cache/

# 日志递增

log_augmentation=1

# 打开GUI图形管理页面

admin_host=0.0.0.0

# 不设置HTTPS服务

admin_secure_gui=false

# 主机模块

# 指定服务器的unix socket路径

# 如果 MaxScale 和 MariaDB 在同一台主机上,可以使用这种方法连接

# 注意,socket 与 address/port 冲突,只能选其一。

# 同时需要注意 MariaDB 的权限配置。

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

[server1]

type=server

address=192.168.100.213

port=3307

protocol=MariaDBBackend

[server2]

type=server

address=192.168.100.214

port=3307

protocol=MariaDBBackend

[server3]

type=server

address=192.168.100.215

port=3307

protocol=MariaDBBackend

# 故障转移监控模块

[MariaDB-Monitor]

type=monitor

# 核心监控模块

module=mariadbmon

servers=server1,server2,server3

user=monitor

password=monitor@123

# 每隔2秒探测一次

monitor_interval=2000

# 打开自动故障转移

auto_failover=true

# 打开自动重新加入

auto_rejoin=true

# slave 全部失效时 master 支撑全部请求

detect_stale_master=true

# 服务模块

# 读写分离,基于statement SQL解析的方式

[Read-Write-Service]

type=service

router=readwritesplit

router_options=master,slave

servers=server1,server2,server3

# 默认禁止root用户访问,设置为1开启

enable_root_user=1

# 路由账号用于读写分离

user=maxscale

password=Maxscalepassword

max_slave_connections=100%

# 当主服务器挂了时,客户端的写入操作将会返回错误,服务器以只读模式运行。

# 如果没有设置此值,那么当客户端执行写入操作时,MaxScale将会直接断开连接。

master_failure_mode=error_on_write

# 配合上一个选项取消只读模式,客户端的写入请求将会被重新处理。

master_reconnection=true

# 默认读是不被路由到master,设置为true允许master用于读取

#master_accept_reads=true

# 设置路由器会话随时使用的最大从站数量

#max_slave_connections=2

#auth_all_servers=true

# 身份验证失败和警告的日志记录,记录那些试图连接到MaxScale和来自哪里

#log_auth_warnings=true

# 强制select走master

#filters=Hint

#允许slave落后master多少秒

#max_slave_replication_lag=3600

[Read-Write-Listener]

type=listener

service=Read-Write-Service

protocol=MySQLClient

# 一定要指定!! 默认绑定IPv6

address=192.168.100.216

port=3306

3.5创建相关目录:

mkdir -p /opt/maxscale-2.5.9/var/logs/

mkdir -p /opt/maxscale-2.5.9/cache/

3.6创建用户:

groupadd maxscale

useradd -g maxscale maxscale

3.7修改目录权限

chown -R maxscale.maxscale maxscale-2.5.9/

3.8服务启动:

/opt/maxscale-2.5.9/bin/maxscale --user=maxscale --basedir=/opt/maxscale-2.5.9/ --config=/opt/maxscale-2.5.9/etc/f

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。