17一起来做网站,北京网站优化流程,网站做301排名会掉,农产品电商网站建设的主要工作一、什么是canal1.定位Canal是阿里巴巴开源的一款基于mysql数据库binlog增量日志分析提供数据订阅和消费功能的组件2.原理Canal模拟MySQL Slave协议#xff0c;将自己伪装成MySQL Slave#xff0c;将Master发送dump协议Master将binlog同步到Slave(这里是Canal)Canal解析binlo…一、什么是canal1.定位Canal是阿里巴巴开源的一款基于mysql数据库binlog增量日志分析提供数据订阅和消费功能的组件2.原理Canal模拟MySQL Slave协议将自己伪装成MySQL Slave将Master发送dump协议Master将binlog同步到Slave(这里是Canal)Canal解析binlog可以做相关的后续操作如同步发送到MQ,或同步到其他存储系统如ES二、canal能做什么数据库镜像数据库实时备份多级索引 (卖家和买家各自分库索引)search build业务cache刷新价格变化等重要业务消息三、canal服务端安装1.MySQL主节点配置(1)开启binlog修改mysql的配置文件添加以下内容log-binmysql-binbinlog-formatROWserver-id1log-bin : 指定二进制日志文件的文件名也是开启binlog的开关binlog-format : binlog的日志格式必须设置成ROWserver-id : 主节点的编号(不能与slave和canal的server-id相同)修改配置后请重启mysql(2)为slave账户授权通过mysql客户端连接到mysql服务器创建用于复制的账号(设置账号和密码)CREATE USER canal IDENTIFIED BYcanal;为创建的账号授权GRANT SELECT,REPLICATION SLAVE,REPLICATION CLIENT ON*.*TOcanal%;刷新权限FLUSH PRIVILEGES2.下载源码(1)下载二进制包下载最新的稳定包(2)编译成二进制包3.修改配置修改实例配置conf/example/instance.properties# position infocanal.instance.master.address127.0.0.1:3306canal.instance.master.journal.namecanal.instance.master.positioncanal.instance.master.timestampcanal.instance.master.gtid# username/passwordcanal.instance.dbUsernamecanalcanal.instance.dbPasswordcanalcanal.instance.connectionCharsetUTF-8canal.instance.defaultDatabaseNametest# table regexcanal.instance.filter.regex.*\\..*# table black regexcanal.instance.filter.black.regex主要配置说明连接的master节点配置canal.instance.mysql.slaveId : 当前节点伪装成的slave的编号(1.0.26后自动生成不用设置)canal.instance.master.address : 主节点的地址账号设置canal.instance.dbUsername : 用于复制的账号的用户名canal.instance.dbPassword : 用于复制的账号的密码canal.instance.connectionCharset : 连接数据库编码设置表设置canal.instance.filter.regex : 只关注的表(正则表达式)这里 .*\\..* 表示所有4.启动canalbin/startup.sh5.查看日志logs/canal/canal.log : 查看服务的日志logs/example/example.log : canal实例服务日志logs/example/meta.log : 数据变更日志(有数据后自动生成)6.检测canal搭建是否成功(1)通过客户端进入mysql服务器,查看binlog查看主节点状态获取二进制文件名称show master status;查找当前二进制日志的位置show binlog eventsinmysql-bin.000009;注这上语句还可以添加以下参数from : 起始的position位置limit : 读取的起始offset和limit条数(2)打开数据变量日志文件tail-200flogs/example/meta.log(3)变更数据触发数据同步通过客户端变更数据如插入数据、修改数据或删除数据操作查看前两个步骤的日志比较两个position是否相同7.canal其他操作bin/stop.sh : 关闭canalbin/restart.sh : 重启canal