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

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

admin3个月前 (03-18)技术分享380

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

分享给朋友:

相关文章

节假日api 负载均衡升级 增加阿里云服务器

2024-8-19 vip服务器遭受攻击 现已经临时更换服务器以下是服务器的情况可根据自己的需求进行选择1.tool.bitefu.net 整合服务器到 新的阿里云服务器(配置更高),旧服务器已不再续费2.vip.bitefu.n...

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

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

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

系统小技巧:微软版“Ghost” Windows FFU 系统安装还原

系统小技巧:微软版“Ghost” Windows FFU 系统安装还原

在日常的维护中,系统的备份和还原是大家经常需要操作的事情。虽然Windows 10已经提供很多的工具,如系统还原、WIM备份/还原,VHD备份等。不过这些工具大多是基于文件的备份/还原。我们以前经常的使用的Ghost则是基于扇区的备份/还原...

PHP AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补...

七牛html js上传带进度条源码

七牛html js上传带进度条源码注册链接https://s.qiniu.com/uM7RJv完整代码下载:https://n802.com/f/349707-489018989-c141f6(访问密码:5036)http://www.yi...

apicloud影视APP源码 无需后台

apicloud影视APP源码 无需后台

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

发表评论

访客

看不清,换一张

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