本页对比数据库开发、运维和迁移相关的周边工具。

概览

工具类型开源适用数据库最佳场景
gh-ost在线 DDLMySQL无锁表结构变更
pt-online-schema-change在线 DDLMySQLPercona 生态
Flyway迁移管理多数据库Java 项目版本化迁移
Liquibase迁移管理多数据库企业级变更追踪
dbmate迁移管理多数据库轻量命令行迁移
mysqldump备份MySQL逻辑备份
xtrabackup备份MySQL物理热备份
pg_dump备份PostgreSQL逻辑备份
Redis RDB/AOF持久化内置Redis内存数据持久化
go-mysql-transfer同步MySQL→ES/Redis/Kafka实时数据同步
Canal同步MySQL阿里巴巴 binlog 解析
DebeziumCDC多数据库分布式变更数据捕获

按场景推荐

Schema 变更(在线 DDL)

生产环境需要修改大表结构,不能锁表。

  • 首选gh-ost — GitHub 出品,无触发器,可暂停/恢复
  • Percona 用户:pt-online-schema-change — 成熟稳定,需创建触发器
  • MySQL 8.0+:原生 INSTANT/INPLACE 算法(部分场景无需工具)

数据库迁移管理

团队开发中需要版本化追踪数据库 schema 变更。

  • Java 项目:Flyway 或 Liquibase — 与 Spring Boot 集成完善
  • 轻量/多语言:dbmate — 纯 SQL 迁移文件,语言无关
  • Rails/Node:Active Record 迁移 / Sequelize migrations

数据备份

定期备份保障数据安全。

  • MySQL
    • 逻辑备份:mysqldump(小库)
    • 物理热备:Percona XtraBackup(大库、不影响业务)
  • PostgreSQL:pg_dump / pg_basebackup
  • Redis:RDB 快照 + AOF 日志
  • MongoDB:mongodump / 副本集 oplog

数据同步 / CDC

数据库之间实时或准实时数据同步。

  • MySQL → 搜索引擎/缓存:Canal、go-mysql-transfer
  • 异构数据库:Debezium(Kafka Connect 生态)
  • 云厂商:阿里云 DTS、AWS DMS

选型决策树

需求类型?
  ├─ 在线改表结构 → 大表?
  │                   ├─ 是 → gh-ost / pt-online-schema-change
  │                   └─ 否 → 原生 DDL
  ├─ 版本化迁移管理 → Java 生态?
  │                     ├─ 是 → Flyway / Liquibase
  │                     └─ 否 → dbmate / 框架内置
  ├─ 数据备份 → 物理备份允许?
  │             ├─ 是 → XtraBackup / pg_basebackup
  │             └─ 否 → mysqldump / pg_dump
  └─ 实时同步 → Kafka 生态?
                ├─ 是 → Debezium
                └─ 否 → Canal / 自研脚本