MaxScale binlog server的搭建

官方手册:

https://mariadb.com/resources/blog/binlog-server

参考文章:

http://www.linuxidc.com/Linux/2016-12/137892.htm

http://www.sohu.com/a/120438391_487514

缺点:目前binlog server还不支持GTID的复制。

实验拓扑图:

步骤1

Node1上创建复制权限的账户:

> grant replication client,replication slave,select on *.* to ‘rpl‘@"192.168.2.%" identified by ‘rpl‘;

# 这是给从库复制用的账号,同时也是maxscale拉取binlog的账户,它比常规的slave 账户多了一个select权限。

先把Node2挂到node1下,模拟没有binlog server之前的架构:

过程无非就是导出node1的全量数据,在node2上恢复并change master 到node1,具体步骤略过。

Node3 上安装maxscale:

rpm -ivh maxscale-2.1.4-1.rhel.6.x86_64.rpm

mkdir  /data/binlog/ -p

chown maxscale.maxscale /data/binlog/ -R

vim/etc/maxscale.conf 内容如下:

[maxscale]                                                                                                                 

threads=4   # 根据CPU核心数量来设置

## 连接到Master的信息

[Replication]

type=service

router=binlogrouter

version_string=5.6.36-log

# version_string 参数用于将主库的版本信息传递到从库,MaxScale sends server handshakepacket to clients

router_options=server-id=13,heartbeat=30,transaction_safety=1,rcompatibility=1,send_slave_heartbeat=1

binlogdir=/data/binlog   # 这个目录属主属组必须是maxscale

user=rpl

passwd=rpl

#说明:

#server-id 设置的是maxscaleid,不能与主库或者从库重名。

#heartbeat=30表示当maxscale30秒内没有接收到主库推送的binlog日志,发送心跳检查

#transaction_safety=1 用于启用binlog日志中的不完整事务检测。当MariaDBMaxScale启动时,如果当前binlog文件已损坏或找到不完整的事务,则可能会出现错误消息。在正常工作期间,binlog事件不会分配到从库,直到事务已经提交。默认值为off,设置transaction_safety= on以启用不完全事务检测。【类似relay_log_recovery = ON的作用】

#send_slave_heartbeat=1开启心跳检查

## 提供给slave连接的信息

[ReplicationListener]

type=listener

service=Replication

protocol=MySQLClient

port=5308

## maxscale后端管理端口

[MaxAdmin Service]

type=service

router=cli

[MaxAdmin Listener]

type=listener

service=MaxAdmin Service

protocol=maxscaled

socket=default

vim /data/binlog/master.ini 加上如下的内容:

[binlog_configuration]

master_host=192.168.2.11   # 主库地址

master_port=3306             #主库端口号

master_user=rpl              #master的复制账号

master_password=rpl       # master的复制密码

filestem=mysql    # 表示拉过来的binlog文件以mysql.***这种命名方式。我的主库也是mysql.*这种命名方式

添加这个master.ini文件,以便启动maxscale后自动去拉取主库的目前的全部binlog文件(即便后来主库的binlog过期后被自动purge掉了,maxscale服务器上的binlog还会保存着的)

然后,在node3上开启maxscale服务:

/etc/init.d/maxscale start

稍等片刻,node3会把主库的全部binlog都拉过来。

日志记录在/var/log/maxscale/maxscale.log 里面。

ss -lnt|grep 5308 端口起来的话。

mysql -urpl -prpl -h 127.0.0.1 -P 5308 即可登陆到maxscale控制台,和mysql使用起来一样。

现在我们把node4这个新的从库加到node3binlog server 下面:

首先,将node1的全备份数据导入到node4,

然后head -35 all.sql 全备份里面找到类似:

CHANGE MASTER TOMASTER_LOG_FILE=‘mysql.000004‘, MASTER_LOG_POS=2254 这样的记录。

在node4上执行change master操作:

> CHANGE MASTER TO MASTER_HOST=‘192.168.2.13‘ ,

MASTER_PORT=5308,

MASTER_USER=‘rpl‘,

MASTER_PASSWORD=‘rpl‘,

MASTER_LOG_FILE=‘mysql.000004‘,

MASTER_LOG_POS=2254 ;

注意上面的change master操作中,我们只改了下master的地址和端口、复制用的用户名、密码。

因为binlog server实际上和master的数据是一样的,它只直接把master的binlog拖过来的。

同样的操作,我们可以把node2也挂到binlog server下面。

在node2上:

show slave status\G 记录下Exec_Master_Log_Pos和Master_Log_File。

stop slave;

reset slave all;

然后使用change master将上级指向binlog server即可。

其他maxscale的命令:

在node3上,执行show slave hosts; 可以看到

还可以登陆maxscale控制台:

maxadmin -S /tmp/maxadmin.sock

MaxScale> show services  等其他很多查看状态的命令,可使用help提示。这里不是重点。

时间: 2024-11-02 19:09:33

MaxScale binlog server的搭建的相关文章

MaxScale Binlog Server实践

MaxScale Binlog Server实践 简介 Part1:写在最前 在之前的博文中有说到MaxScale,作为中间件,配合MHA使用或者主从使用可实现读写分离和负载均衡,今天简单介绍下MaxScale作为Binlog Server来减少主从延迟的问题:MySQL的主从架构中,链式拓扑的架构比较容易出现主从延迟的问题.本文着重介绍MaxScale作为Binlog Server是如何降低主从延迟的. MaxScale配合MHA请移步至: http://suifu.blog.51cto.co

Windows Server 2003搭建邮件服务器

由于Windows Server 2003默认是没有安装我们搭建邮件服务器所需要的POP3和SMTP服务的,因此需要我们自己来安装.方法如下: 1. 将Windows Server 2003的系统光盘放入光驱,或者将镜像文件挂载到虚拟光驱.在控制面板中点击“添加或删除程序”,在“添加或删除程序”对话框中,点击“添加/删除Windows组件”.Hn 2. 在“Windows组件向导”中,需要进行如下操作: ① 安装POP3服务. 选中“电子邮件服务”,双击打开,会看到它包括“POP3服务”和“PO

Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务

Windows server 2012 搭建VPN图文教程(一)安装VPN相关服务 Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务 Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户 Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试 PartII 配置路由和远程访问服务 本部分主要介绍如何安装和配置路由及远程访问服务的方法,请参考以下操作步骤: (续上)前面提到重新启动操作系统,重启后服务

Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户

Windows server 2012 搭建VPN图文教程(一)安装VPN相关服务 Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务 Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户 Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试 Part III 配置VPN访问账户 本部分主要介绍如何配置VNP相关服务以及配置VPN访问账户的方法,具体如下: 选择路由和远程访问服务器,右键,选择"属性

Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试

Windows server 2012 搭建VPN图文教程(一)安装VPN相关服务 Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务 Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户 Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试 Part IV 客户端访问VPN测试 本部分主要介绍如何通过客户端访问VPN的方法.实验客户端操作系统为windows 8,以下是客户端配置VPN的步骤: 打

Windows Server 2008搭建域控制器《转载51CTO.com》

Windows Server 2008搭建域控制器 引入 在小型网络中,管理员通常独立管理每一台计算机,如最为常用的用户管理.但当网络规模扩大到一定程度后,如超过 10 台计算机,而每台计算机上有 10 个用户,那么管理员就要创建100个以上的用户账户,相同的工作就要重复很多遍.→此时可以将网络中的多台计算机逻辑上组织到一起,进行集中管理,这种区别于工作组的逻辑环境叫做域(domain).对应于我们第二章中提到过的C/S网络管理模式. 本章内容很重要,也很抽象,教员应多举生活中的例子来帮助学员理

CentOs Server环境搭建

CentOs Server环境搭建 标签(空格分隔): 环境搭建 centos 引言:本文档是在全新的CentOs系统搭建JAVA工程相关的服务器环境的指导文档,阅读本文档请使用markdown阅读器,或者在IDE开发工具中安装markdown插件 步骤索引: 1.安装JDK 2.安装Tomcat 3.安装Nginx 4.安装mysql 5.安装redis 正文 安装JDK 检查CentOs是否默认安装了openjdk软件,可以使用以下命令中的任意命令,最好都试一下: #rpm -qa |gre

转 Windows server 2008 搭建VPN服务

VPN英文全称是“Virtual Private Network”,就是“虚拟专用网络”. 虚拟专用网络就是一种虚拟出来的企业内部专用线路.这条隧道可以对数据进行几倍加密达到安全使用互联网的目的. 此项技术已被广泛使用.虚拟专用网可以帮助远程用户.公司分支机构.商业伙伴及供应商同公司的内部网建立可信的安全连接,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网. 实验环境: 服务器系统:Windows server 2008 客户机系统:Windows server 2003 服务器双网卡

Ubuntu server下搭建Maven私服Nexus

Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu server $ cd /opt $ wget http://download.sonatype.com/nexus/oss/nexus-2.10.0-02-bundle.tar.gz 2.启动 $ cd /opt/ $ tar -zxvf nexus-2.10.0-02-bundle.tar.g