定时数据库备份
定时数据库备份使用 DBX 的数据库导出引擎,为 MySQL 和 PostgreSQL 连接生成 SQL 文件。它适合开发、测试和中小型数据库的周期性逻辑备份,并提供表范围、保留数量、运行历史和手动执行。
定时备份当前仅支持 DBX 桌面端,并要求应用保持运行。它不是数据库服务器上的独立调度器,也不能替代物理备份、Point-in-Time Recovery、WAL/binlog 归档或云厂商备份服务。
支持范围
| 项目 | 当前行为 |
|---|---|
| 数据库 | MySQL、PostgreSQL |
| 平台 | DBX 桌面端 |
| 输出 | 每个数据库/Schema 对应的 .sql 文件 |
| 频率 | 每隔若干小时、每天指定时间、每周指定星期和时间 |
| 内容 | 表结构、表数据、数据库对象、可选 DROP TABLE IF EXISTS |
| 表范围 | 全部、按模式包含、按模式排除 |
| 保留 | 按计划保留最近若干次成功备份文件 |
创建计划
打开备份设置
在设置中进入数据库备份页面,创建新的备份计划。
选择连接和数据库
选择 MySQL 或 PostgreSQL 连接。可以备份所有非系统数据库,也可以选择指定数据库。
配置表范围
选择全部表、只包含匹配模式的表,或排除匹配模式的表。模式支持 * 和 ?,并可以匹配 schema.table 或 database.schema.table。
设置目录与频率
选择本机目标目录,并设置每小时、每天或每周计划。界面会预览下次运行时间。
选择内容和保留数量
选择结构、数据、对象和 DROP TABLE IF EXISTS,然后设置要保留的历史备份数量。
保存并验证
保存后先点击立即运行,确认连接权限、表范围、目标目录和生成文件都符合预期,再启用计划。
表匹配模式
表模式可以使用逗号、分号或换行分隔。例如:
public.*
audit_*
orders_202?- 包含只导出匹配表
- 排除导出其他表并跳过匹配表
- PostgreSQL 名称按大小写区分
- MySQL 会结合
lower_case_table_names判断匹配是否区分大小写
如果没有任何表匹配包含规则,运行会失败,不会生成空的成功备份。
一致性与执行方式
每次备份会在数据库会话中建立一致性快照,再按数据库/Schema 运行导出。完成后回滚只读快照事务,不提交业务修改。
备份任务会显示在统一导出任务区,并提供:
- 当前数据库和对象
- 成功、失败或取消状态
- 手动或计划触发来源
- 生成文件列表
- 错误信息和运行时间
取消只会停止后续导出。失败或取消时,DBX 会尽量删除本次已经生成的部分文件,避免把不完整结果误当成成功备份。
保留与历史
每个计划可以设置保留数量。超过数量的旧运行会从历史中清理,并删除相应文件。也可以手动删除某次备份记录和文件。
目标目录仍应纳入操作系统、NAS 或对象存储的独立备份。单机同盘保存无法防止磁盘损坏、勒索软件或整机丢失。
恢复演练
生成的 .sql 文件可以通过 SQL 文件执行 导入。建议定期在隔离环境验证:
- 文件可以完整读取和执行
- 表结构、索引、对象和数据量符合预期
- 字符集、时区、序列/自增值和权限需要的额外步骤
- 应用可以连接恢复后的数据库
备份成功只代表文件生成完成,不代表已经验证可恢复。
选择定时备份还是数据库导出
| 功能 | 适合场景 |
|---|---|
| 数据库导出 | 一次性迁移、变更前备份、手动选择当前范围 |
| 定时数据库备份 | 固定连接和范围的周期性逻辑备份 |
| 数据库原生备份 | 大型生产库、PITR、增量/物理备份、高可用与合规要求 |
安全建议
- 使用只具备备份所需读取权限的数据库账号
- 目标目录按敏感数据级别控制权限和加密
- 不要把包含业务数据的 SQL 文件提交到公开仓库
- 计划中数据库或表改名后,重新检查范围
- DBX 桌面端未运行、电脑休眠或目标目录不可用时,计划不会像服务器调度器一样可靠执行