版本号 0.2 时间 2016-2-17 09:10 作者 刘志强 备注 1 文档说明
本文档用于针对开源软件
http://git.oschina.net/qiangzigege/MySQL-Binlog 提供详细的使用说明。
具体的操作步骤请参考下列说明,
在使用过程中有疑问请加入官方群:398822659 JDK版本建议使用: 1.8.0_51或者以上版本
2 使用步骤
以下步骤请按序进行!
2.1 设置数据库为row模式
从mysql 5.1.12开始,复制数据可以用三种模式:
-- 基于SQL语句的复制(statement-based replication, SBR), -- 基于行的复制(row-based replication, RBR), -- 混合模式复制(mixed-based replication, MBR)。
相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。 MBR 模式中,SBR 模式是默认的。
本软件依据的模式是第2种,如上面蓝色标注行,所以需要把数据库设置为row模式。
如何设置数据库为row模式?
修改配置文件my.cnf里面的以下若干项,请参考下面示例(一种可能的情形)。
server_id = 17725 #这里可以填上一个任意的数字,自己保证全局唯一就行 binlog_format = row #非常重要,必须为row log_bin = mysql-bin.log #值可以是任意的合法字符串,保证做到见名知意即可。 expire_logs_days = 10 #值为你想保留log文件的天数,越大保留的时间越长。 max_binlog_size = 500M #单个文件最大的大小,超过此大小会发生文件切换。 注意:设置后需要重启mysql服务器. 如何重启mysql此处不赘述。
2.2 搭建ZooKeeper集群
为什么需要搭建ZooKeeper集群。让我们考虑这样一种情况:
你指定了一台机器B(从)去mysql服务器A(主)复制数据,假如B由于某些因素导致复制进程挂掉了,或者B机器本身下线了,此时需要有其它机器C来感知此情况,并从之前的位置继续接力复制数据,这样才能保证数据拉取的高可用。
下面介绍如何搭建ZooKeeper集群。 【以机器 A:192.168.100.100, B:192.168.100.101
C:192.168.100.102 3台机器组成集群为例】 1)下载zk安装包
下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/ 这里选择3.4.6版本
选择机器A下载压缩包。
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
2)解压缩zk安装包
tar -zvxf zookeeper-3.4.6.tar.gz
3)在机器A上编辑配置文件 cd zookeeper-3.4.6
cp conf/zoo_sample.cfg conf/zoo.cfg vi conf/zoo.cfg
然后就可以编辑配置项,下面为一种可能的示例
蓝色部分需要根据自己实际的情况修改。 tickTime=2000 dataDir=/var/lib/zookeeper-3.4.6/data dataLogDir=/var/lib/zookeeper-3.4.6/logs clientPort=2181 initLimit=5 syncLimit=2 server.1=192.168.100.100:2888:3888 server.2=192.168.100.101:2888:3888 server.3=192.168.100.102:2888:3888 autopurge.snapRetainCount=3 autopurge.purgeInterval=1 4)在机器A上创建myid文件
首先在你上面配置的dataDir目录下,创建一个名为myid的文件
比如在上面的配置情况下,你的文件应该是/var/lib/zookeeper-3.4.6/data/myid
然后里面的内容填什么呢?因为A的IP是192.168.100.100,在上面的配置里已经指定了 server.1,所以这里A的myid文件就应该填1,就这一个数字即可
5)复制文件到B和C上
现在只是在A上设置好了配置zoo.cfg和myid文件。
将zookeeper文件夹复制到B和C上,配置雷同,不用任何修改。最好保持3台机器的zookeeper文件夹绝对路径都一致。
然后将myid文件也同样复制到B和C上,这里就需要做相应的修改,B的myid文件内容为2,C的myid文件内容为3.原因上面已经阐述过。 注意:
务必保证在3台机器上的这2个文件夹已经提前创建,否则启动不起来zk 务必对这2个文件夹有相应的读取权限。 务必对你配置的端口号有权限
文件夹的位置是可以自己任意指定的,但是最好3台机器的文件夹都是一样的。 务必保证每台机器的myid文件位于dataDir指定的目录下。 务必保证myid文件的内容跟zoo.cfg里面的配置一致。
6)启动zookeeper集群
依次在每台机器上执行
sh ./bin/zkServer.sh start
在机器上执行lsof -i:2181有正确输出就表示启动成功!
2.3 启动binlog服务端程序
为了大家使用方便,这里已经做好了二进制程序,直接用脚本启动即可。 如下图所示:
具体下载和启动方法如下所示:
1)打开http://git.oschina.net/qiangzigege/MySQL-Binlog
找到以.tar.gz命名的文件,点击此文件后,弹出新界面
右键可获取下载链接
http://git.oschina.net/qiangzigege/MySQL-Binlog/raw/master/binary.tar.gz
2)在你所需要执行程序的linux机器上执行
wget http://git.oschina.net/qiangzigege/MySQL-Binlog/raw/master/binary.tar.gz 3) 解压缩:tar -zvxf binary.tar.gz 4) 进入目录执行
cd mysql-binlog-binary ./run.sh
5) 查看日志判断是否启动成功 tail -f logs/logfile
2.4 启动binlog界面web程序
界面基于SpringMVC,所以需要一个tomcat容器。 为了大家使用方便,这里也提前做成了二进制文件。
1)打开页面
2)点击文件,出来的界面有下载地址。
比如:http://git.oschina.net/qiangzigege/MySQL-Binlog-Web/raw/master/web-binary.tar.gz
3)下载这个文件
wget http://git.oschina.net/qiangzigege/MySQL-Binlog-Web/raw/master/web-binary.tar.gz
4)解压缩
tar -zvxf web-binary.tar.gz
5)进入目录
cd kmonitor-mysqlbinlog-web
6)修改配置项
WEB-INF/classes/spring-mvc.xml 修改此配置文件 只需要修改一项
这里的集群的配置请参考你自己的实际ZK机器集群的个数和IP来填写!
7)准备tomcat环境 这个比较简单,不赘述 下载地址
http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz tar -zvxf apache-tomcat-7.0.65.tar.gz cd apache-tomcat-7.0.65/webapps
8)部署web程序
将之前修改后的文件夹复制到webapps目录下 cd apache-tomcat-7.0.65/webapps
cp -rf 你的kmonitor-mysqlbinlog-web目录 ./
9)启动tomcat ./bin/startup.sh
10)打开管理界面
http://这里是你的服务器的IP:8080/kmonitor-mysqlbinlog-web/mysqlbinlog/list.do 界面如下:
下面介绍如何对任务进行增删改查。
2.4.1 查询任务
2.4.2 增加任务
详细解释:
1)关于schema用户名和schema密码,实际上就是需要有如下sql执行权限 select COLUMN_NAME, ORDINAL_POSITION from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='\" + database + \"' and TABLE_NAME='\" + table + \"' 2)关于过滤规则 这里是白名单规则。
如果你一个都不填,则表示全部[数据库:表格]数据都是需要的 如果你至少填了一个过滤规则,那么只有满足其中一个过滤规则的数据才会接受,否则扔弃。
2.4.3 修改任务
你可以修改一个任务,
点此按钮,出现修改界面
其实就是只能修改部分信息,比如IP:端口,密码之类是不让修改的。
修改后,之前如果有任务在跑,会自动退出,然后根据修改后的条件重新获取数据。
2.4.4 删除任务
删除任务后,此任务下面的所有数据都会被删除。 删除有风险,请谨慎操作!
3 附录
如何设置 row模式?
--- https://github.com/ngocdaothanh/mydit
如何设置 mysql的复制账号等操作?
--- http://dev.mysql.com/doc/refman/5.6/en/replication-howto.html
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务