当前位置:首页 > 技术分享

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

admin2年前 (2025-03-18)技术分享1263

在这里主要讲的是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

分享给朋友:

“MySQL 全量同步增量同步 免费开源 DBSyncer 一主一备” 的相关文章

WPS表格办公—取消科学计数法显示

WPS表格办公—取消科学计数法显示

我们在利用WPS表格与Excel表格进行日常办公时,经常需要制作各种各样的表格,当我们在表格当中输入长数据的时候,表格经常会自动显示为科学计数法,很多人都看不懂科学计数法的意思,那么,我们如何在输入长数字的时候避免显示为科学计数法呢,今天我…

贾氏鸣天鼓健耳养肾操

贾氏鸣天鼓健耳养肾操

《贾氏鸣天鼓健耳养肾操》鸣天鼓是健耳强肾治耳病的古法,贾氏越云自创的鸣天鼓健耳养肾操是在古法的基础上创建。顺序:1静坐挺胸。2双手放心脏位置的胸口,左手掌盖住右手掌。3闭目静心,深呼吸19下。4双手相互搓揉,让手掌发热。5用发热的双手手掌严…

遭遇国外ip抓取或攻击怎么办一招解决禁止海外IP访问

遭遇国外ip抓取或攻击怎么办一招解决禁止海外IP访问

究发现很多网站被攻击都是来自海外的肉鸡,所以禁掉海外IP访问网站也是不错的防护手段,而且国内网站几乎很少有国外用户访问,称之为大局域网也不为过。今天主机吧来教大家如何利用域名解析禁止掉海外IP访问网站。绝大多数域名解析服务商都是提供电信联通…

记一次阿里云服务器cc攻击防护 windows 2012 iis8

记一次阿里云服务器cc攻击防护 windows 2012 iis8

上次连续一周左右阿里云服务器都在遭受cc攻击.导致访问量特别大,节假日接口调用特别缓慢或者根本访问不了的情况.本身服务器安装了 网站安全狗(IIS版) .并开始了防cc攻击.但是呢,平时还行,这次压力山大.于是一气之下用pytho…

[教程福利] Python 全网比较全面的资源

阿里 Python 应该算比较全面了,编辑完了差不多用了三个小时左右,如果对你有帮助,给个免费的热心吗,在这里谢谢了各位大佬。092-****实战课-畅销3年的Python分布式爬虫课程-原版提取https://www.aliyundriv…

Linux/centos inode 占用100%的解决办法

当你的 Linux 系统无法创建新文件时,有可能是你的磁盘满了,还有可能是你的磁盘的 inode 用光了,我们今天要说的就是后一种情况,要解决这个问题,只能是删除一些文件,但是一般情况下,其实是你的系统中的某个地方产生了大量的你并不需要的文…

发表评论

访客

看不清,换一张

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