Maxscale--binlogserver 介绍和简单部署手册
一、Maxscale介绍
MariaDB MaxScale:号称世界上最先进的数据库代理,防火墙和查询路由器
MariaDB MaxScale是MariaDB平台的基本组件。它不仅为关键任务应用程序提供企业功能,包括自动故障转移,数据屏蔽和拒绝服务保护,而且还支持基于工作负载的查询路由,以进行混合事务/分析处理。拥有企业订阅的所有客户均可使用MariaDB MaxScale。
目前最新版本为2.4.2
我们用来搭建binlogserver, 经过maxscale 同步后的binlog 与主库完全保持一致, 它的工作是只将主库的binlog 拉去到本地,对位点和内容不做任何改变。
我们用到的是maxscale 里的 Binlogrouter模块。binlogrouter是MariaDB
MaxScale的复制协议代理模块,此模块允许 MaxScale连接到主服务器并检索二进制日志,而从属服务器可以连接到 MaxScale,就像它们连接到普通主服务器一样。
如果主服务器出现故障,则从服务器仍可以连接到 MaxScale并读取二进制日志。您可以切换到新的主服务器,而没有从服务器通知实际的主服务器已更改。这允许在复制优先级较高的情况下使用更高可用性的复制设置。
二、MaxScale安装部署手册
1、下载 rpm 包, 报地址为:https://dlm.mariadb.com/758925/MaxScale/2.4.2/centos/7/x86_64/maxscale-2.4.2-1.centos.7.x86_64.rpm
rpm -ivhmaxscale-2.4.2-1.centos.7.x86_64.rpm安装即可。
2、修改配置文件, /etc/maxscale.cnf
, 我这边配置从2台数据库主库同步binlog日志,具体配置如下:
[maxscale]
threads=auto
[Replication1]
type=service
router=binlogrouter
user=maxscale
password=maxscale
server_id=3
binlogdir=/data/maxscale/binlogserver_1
mariadb10-compatibility=0
slave_hostname=master_slave
transaction_safety=on
heartbeat=30
send_slave_heartbeat=1
[Replication2]
type=service
router=binlogrouter
user=maxscale
password=maxscale
server_id=4
binlogdir=/data/maxscale/binlogserver_2
mariadb10-compatibility=0
slave_hostname=sso_slave
transaction_safety=on
heartbeat=30
send_slave_heartbeat=1
[Replication-Listener1]
type=listener
service=Replication1
protocol=MySQLClient
port=5308
[Replication-Listener2]
type=listener
service=Replication2
protocol=MySQLClient
port=5309
[MaxAdminService]
type=service
router=cli
[MaxAdminListener]
type=listener
service=MaxAdminService
protocol=maxscaled
socket=default
配置文件附件:
3、创建binlog 存储目录
mkdir /data/maxscale/binlogserver_1
mkdir /data/maxscale/binlogserver_2
创建主库 1 的master.ini info信息。
touch /data/maxscale/binlogserver_1/master.ini
具体配置如下:
[binlog_configuration]
master_host=10.80.10.226
master_port=3306
master_user=repl
master_password=repl
master_heartbeat_period=300
master_connect_retry=60
filestem=mysql-bin
创建主库 2 的master.ini info信息
touch /data/maxscale/binlogserver_2/master.ini
具体配置如下:
[binlog_configuration]
master_host=10.80.10.224
master_port=3306
master_user=repl
master_password=repl
master_heartbeat_period=300
master_connect_retry=60
filestem=mysql-bin
修改目录权限:
chown -R maxscale:maxscale /data/maxscale/
4、启动maxscale
systemctl start maxscale
查看 /var/log/maxscale/maxscale.log 日志, 确认启动成功, 但此时日志里可能会报错,因为 我们还没有设置同步主库的位点信息, 如果未设置,maxscale会从 mysql-bin.000001 开始同步。
5、登陆不同监听端口,设置同步位点信息
以master1 为例, 其余类似。
输入密码后进入,maxscale 控制台, 账号密码为/etc/maxscale.cnf 里的配置。
查看主库的位点信息, 然后在这里设置同步slave,
CHANGE MASTER TO MASTER_HOST='xxxx',MASTER_USER='master-user',MASTER_PASSWORD='master-pwd',MASTER_LOG_FILE='master_logfile', MASTER_LOG_POS=mater_pos, MASTER_PORT=3306;
START SLAVE;
SHOW SALVE STATUS; 可以看到是否开始同步,
同时查看 /data/maxscale/binlogserver_1 下的文件,可以看到, binlog文件已经生成,且和主库完全保持一直。
至此binlog server 搭建完成, 其他的架构扩展,均与此安装步骤类似, 这里不再详细介绍。