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