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

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

admin2周前 (03-18)技术分享122

在这里主要讲的是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官方文档或社区教程 


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

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

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

分享给朋友:

相关文章

php高效检测远程图片是否存在

php高效检测远程图片是否存在function img_exits($url){     $ch = curl_init();    &...

[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 年底逐...

贾氏鸣天鼓健耳养肾操

贾氏鸣天鼓健耳养肾操

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

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

下面的密钥,是微软官方提供的,仅能用于Windows10系统版本的升级,比如从家庭版升级为专业版、专业版升级为企业版等。升级密钥不能用于激活系统,激活需要KMS或者数字权利,由于涉及到版权问题,在此不宜分享,请大家自行查找激活相关的内容。准...

python调用WinRAR暴力获取压缩密码 用网址做解压密码

原理很简单:python通过调用WinRAR.exe暴力获取压缩密码,要求必须安装WinRAR或者有WinRAR.exe这个文件(单个文件就行)。个人实测zip和rar格式都能用。缺点:费时间,费cpu一、不生成密码本:4位全数字密码:im...

apicloud影视APP源码 无需后台

apicloud影视APP源码 无需后台

介绍集合vip影视接口到一个android app中 方便观看各平台影视资源及直播开源地址:https://gitee.com/web/vip_yingshi软件架构使用apicloud搭建影视APP源码,无后台,调用接口同步api解析网址...

发表评论

访客

看不清,换一张

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