当前位置:首页 > 技术分享 > 正文内容

MySQL 全量同步增量同步 免费开源 DBSyncer 一主一备

admin1个月前 (03-18)技术分享244

在这里主要讲的是mysql 一主一备 实现全量同步增量同步,主从要求更高自己决定

用到的软件是 DBSyncer 确保服务器已安装 JDK 1.8 或更高版本(DBSyncer依赖Java环境)

一.YUM安装java 如已安装可跳过

  1. 查找可用版本

    Bashyum -y list java*  # 查看可安装的JDK版本
  2. 安装OpenJDK 1.8

    Bashyum install -y java-1.8.0-openjdk-devel.x86_64  # 安装带开发工具包的JDK 具体看上一命令结果
  3. 验证安装

    Bashjava -version  # 应显示"openjdk version 1.8.0_XXX"javac -version  # 验证编译器是否安装成功
    [object Object]


二、DBSyncer部署

1. 通过Docker部署(如果已安装Docker推荐)

Bash# 创建数据目录并启动容器mkdir -p /data/dbsyncer

docker run -d \
  --name dbsyncer \
  -p 18686:18686 \
  -v /data/dbsyncer:/app \
  crazylife/dbsyncer-web:latest

访问地址:http://服务器IP:18686,默认账号密码为admin/admin 

宝塔docker中安装方法

本地镜像->从仓库中拉取->命令拉取->输入以下命令

docker pull crazylife/dbsyncer-web

拉取完了在本地镜像中会看到,点后面的创建容器 输入名称和端口号 18686 确定 不暴露端口用反向代理访问

建议用域名开启反向代理来隐藏端口


2. 手动安装(无Docker环境 注:有高危漏洞

Bash# 下载安装包并解压 # 启动服务

最新版本:https://gitee.com/ghi/dbsyncer/releases/latest

wget https://gitee.com/ghi/dbsyncer/releases/download/2.0.0/dbsyncer-2.0.0.zip
unzip dbsyncer-2.0.0.zip -d /opt/dbsyncercd /opt/dbsyncer/bin./startup.sh

三、配置MySQL同步

1. 添加数据库连接

源库(主MySQL)

进入DBSyncer Web界面 → 添加连接 → 类型选择MySQL。

填写参数示例:

Text

名称:主MySQL  

账号:sync_user  

密码:your_password  

URL:jdbc:mysql://[IP]:3306/数据库名  


目标库(备MySQL)

类似步骤,URL填写备MySQL的IP、端口及库名(如jdbc:mysql://127.0.0.1:3306/目标库名)。

注:Docker 不能与localhost 因为localhost是Docker本机,可以尝试其它外网ip或外网ip

2. 创建驱动规则

添加驱动

驱动类型选择MySQL → MySQL,关联源库和目标库连接。

同步模式:

全量同步:一次性导入现有数据。

增量同步:实时监听binlog变化(需源库开启binlog) 。

表映射配置


选择需同步的源表与目标表,支持字段映射(如字段名不同需手动匹配)。

高级设置:调整batchSize(批处理大小)优化性能 。

3. 启动同步

在驱动管理页点击 启动,实时监控同步状态:

全量进度:显示已同步数据量。

增量延迟:显示binlog处理延迟(通常秒级) 。

四、验证与监控

数据一致性检查

使用SELECT COUNT(*)对比源库与目标库数据量。

通过DBSyncer内置的 监控统计图 查看同步趋势 。

日志排查

查看DBSyncer日志:/data/dbsyncer/app/logs/dbsyncer.log(Docker部署路径)。

宝塔MySQL日志:/www/server/data/*.err(排查目标库写入异常) 。

五、常见问题

同步延迟高

优化网络带宽(建议内网传输)。

调整DBSyncer的batchSize参数(默认1000,可尝试2000-5000) 。

增量同步失败

检查源库binlog是否开启:SHOW VARIABLES LIKE 'log_bin';。

确保同步账号有REPLICATION权限 。

六、扩展功能

多表关联同步:通过SQL插件自定义复杂逻辑(如多表Join后写入目标表)。

数据清洗:在字段映射中添加转换规则(如日期格式化、字段加密)。

通过以上步骤,您可以在宝塔面板上快速实现MySQL数据库的全量及增量同步。如需进一步优化性能或处理复杂场景,可参考DBSyncer官方文档或社区教程 


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/659.html

分享给朋友:

相关文章

input search更改默认删除按钮的样式

改input输入框search属性下输入文字之后会在输入框最后出现一个默认样式的X不过这个样式不太好看想自定义怎么办呢方法一input[type="search"]::-webkit-search-cancel-butt...

[Windows] Adobe Flash Player 34.0.0.92及可用版修改方法

[Windows] Adobe Flash Player 34.0.0.92及可用版修改方法

随着 2021 年的到来,Adobe Flash Player 也迎来了告别,Adobe 在 2020 年 12 月 31 日后将不再支持 Flash Player。其实早在 2017 年,Adobe 公司就已宣布,计划在 2020 年底逐...

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

家里面买了斐讯盒子T1,必不可少的就是刷机,刷机一直爽,一直刷机一直爽,这样的快乐一般人体会不到。原来斐讯盒子N1,T1,还有斐讯K2P路由器也变成了性价比超高的东东,而且众多大神也带来了超多可玩性非常高的固件和破解。楼主今天扒到了相关超高...

centos 配置Let's Encrypt 泛域名https证书

centos 配置Let's Encrypt 泛域名https证书

前言2018年1月份Letsencrypt可以申请泛域名证书,这让我们部署多域名、多站点https省了很多功夫,终于可以不用维护多个域名的https证书。笔者以acme.sh为例,手把手教你配置https证书~本教程适用于centos 6....

安卓模拟器连接端口 及常用命令

下面是我总结和测试通过的:有的是搜集来的模拟器名称                     &nbs...

【不忘初心】19041/19042/19043(20H1,20H2,21H1)告别繁琐 一键替换太阳谷图标 一键恢复原版图标 一键恢复文件夹预览

【不忘初心】19041/19042/19043(20H1,20H2,21H1)告别繁琐 一键替换太阳谷图标 一键恢复原版图标 一键恢复文件夹预览

一键替换太阳谷图标,一键恢复原版图标,注意是一键!!!  太阳谷图标确实很好看,很新颖 !论坛也有相关替换教程,有的需要改权限,有的需要PE下替换,有的还得重启,搞不好很容易翻车,有些小白同学只能望梅止渴,今天以上统统告...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。