# 定时数据库备份

> 在 DBX 桌面端为 MySQL、PostgreSQL 和 openGauss 创建可手动运行或按小时、每天、每周执行的 SQL 备份计划。

Source: https://dbxio.com/cn/docs/database-backup

Language: zh-CN

Relative links resolve against https://dbxio.com/cn/docs/database-backup.



定时数据库备份使用 DBX 的数据库导出引擎，为 MySQL、PostgreSQL 和 openGauss 连接生成 SQL 文件。它适合开发、测试和中小型数据库的周期性逻辑备份，并提供表范围、保留数量、运行历史和手动执行。

如果只需要立即备份一次，可以在设置中使用**立即备份**，不必创建计划。配置连接、目录、数据库、表范围和备份内容后点击**开始备份**。一次性备份不会创建或修改计划，不会计算下次执行时间，并会出现在统一的备份历史中。

定时备份当前仅支持 DBX 桌面端，并要求应用保持运行。它不是数据库服务器上的独立调度器，也不能替代物理备份、Point-in-Time Recovery、WAL/binlog 归档或云厂商备份服务。

## 支持范围

| 项目  | 当前行为                                                                                          |
| --- | --------------------------------------------------------------------------------------------- |
| 数据库 | MySQL、PostgreSQL、openGauss                                                                    |
| 平台  | DBX 桌面端                                                                                       |
| 输出  | 默认模板为每次计划运行创建独立目录；目录内按数据库/Schema 生成备份文件，且可通过模板自定义目录与文件名                                       |
| 格式  | 所有支持的数据库均可使用普通 SQL（`.sql`）和 Gzip 压缩 SQL（`.sql.gz`）；Navicat 备份归档（`.nb3`）仅支持 MySQL 和 PostgreSQL |
| 频率  | 每隔若干小时、每天指定时间、每周指定星期和时间                                                                       |
| 内容  | 表结构、表数据、数据库对象、可选 `DROP TABLE IF EXISTS`                                                       |
| 表范围 | 全部、按模式包含、按模式排除                                                                                |
| 保留  | 按计划保留最近若干次成功备份文件                                                                              |

## 立即执行一次备份

### 打开一次性备份表单

在设置中进入数据库备份页面，点击**立即备份**。

### 配置备份范围

选择 MySQL、PostgreSQL 或 openGauss 连接、备份目录、数据库范围、表范围和备份内容。一次性备份不包含计划名称、执行频率、执行时间、保留数量或启用状态。

连接列表支持多选，可一次勾选多个连接统一备份；每个连接会在**备份历史**中生成独立的备份记录，并依次执行。选择多个连接时，每个连接都备份其全部数据库，不支持精确选择表，且文件名模板必须包含 `{runId}`，避免不同连接的备份文件重名。

### 开始并确认结果

点击**开始备份**。任务会使用与定时备份相同的导出引擎、进度、取消和错误处理，并在**备份历史**中显示。

## 创建计划

### 打开备份设置

在设置中进入数据库备份页面，创建新的备份计划。

### 选择连接和数据库

选择 MySQL、PostgreSQL 或 openGauss 连接。可以备份所有非系统数据库，也可以选择指定数据库。

### 配置表范围

选择全部表、只包含匹配模式的表，或排除匹配模式的表。模式支持 `*` 和 `?`，并可以匹配 `schema.table` 或 `database.schema.table`。

### 设置目录与频率

选择本机目标目录，设置由运行目录模板和文件名模板组成的输出路径模板，并配置每小时、每天或每周计划。目录模板支持 `{schedule}`、`{date}`、`{timestamp}` 和 `{runId}`；文件名模板还支持 `{database}`。DBX 会预览完整输出路径，并自动补齐文件名中缺失的数据库目标。运行 ID 只有在模板中显式填写 `{runId}` 时才会拼接；如果模板解析出的路径已被其他运行使用，DBX 会拒绝本次运行，避免覆盖已有备份。

### 选择内容和保留数量

选择结构、数据、对象和 `DROP TABLE IF EXISTS`，然后设置要保留的历史备份数量。

### 保存并验证

保存后先点击**立即运行**，确认连接权限、表范围、目标目录和生成文件都符合预期，再启用计划。

## 表匹配模式

表模式可以使用逗号、分号或换行分隔。例如：

```text
public.*
audit_*
orders_202?
```

* **包含**只导出匹配表
* **排除**导出其他表并跳过匹配表
* PostgreSQL 名称按大小写区分
* MySQL 会结合 `lower_case_table_names` 判断匹配是否区分大小写

如果没有任何表匹配包含规则，运行会失败，不会生成空的成功备份。

## 一致性与执行方式

每次备份会在数据库会话中建立一致性快照，再按数据库/Schema 运行导出。完成后回滚只读快照事务，不提交业务修改。

备份任务会显示在统一导出任务区，并提供：

* 当前数据库和对象
* 成功、失败或取消状态
* 手动或计划触发来源
* 生成文件列表
* 错误信息和运行时间

取消只会停止后续导出。失败或取消时，DBX 会尽量删除本次已经生成的部分文件，避免把不完整结果误当成成功备份。

## 保留与历史

每个计划可以设置保留数量。超过数量的旧运行会从历史中清理，并删除相应文件。默认运行目录会使用唯一运行 ID；也可按实际需要自定义目录模板。也可以手动删除某次备份记录和文件。

目标目录仍应纳入操作系统、NAS 或对象存储的独立备份。单机同盘保存无法防止磁盘损坏、勒索软件或整机丢失。

## 恢复演练

MySQL 兼容连接支持从单个 `.sql` 或 `.sql.gz` 备份中恢复指定表。在备份历史中展开文件列表并点击**恢复**，将**恢复范围**切换为**指定表**。扫描完成后，可以搜索并勾选表，再执行恢复。列表来自完整备份文件，因此目标数据库尚不存在的表也能选择；跨数据库同名表会分别显示。

指定表模式仅恢复所选表的结构、索引和数据，不恢复视图、存储过程、函数、触发器或事件。文件中的数据库上下文仍然生效，未显式指定数据库的表使用弹窗所选的目标数据库。现有外键或触发器可能影响恢复；需要完整恢复所有对象时选择**全部内容**。遇到无法确定作用范围的语句时，DBX 会在执行前拒绝选择性恢复。

生成的 `.sql`、`.sql.gz` 和 `.nb3` 文件可以通过 [SQL 文件执行](/cn/docs/sql-file) 导入。建议定期在隔离环境验证：

* 文件可以完整读取和执行
* 表结构、索引、对象和数据量符合预期
* 字符集、时区、序列/自增值和权限需要的额外步骤
* 应用可以连接恢复后的数据库

备份成功只代表文件生成完成，不代表已经验证可恢复。

## DBX 之外创建的备份

备份页面也可以处理非 DBX 创建的 `.sql`、`.sql.gz` 和 `.nb3` 文件，例如 Navicat 备份：

* **从文件恢复**：选择任意备份文件并在 SQL 文件执行中打开，不会写入备份历史。
* **导入备份**（DBX 桌面端）：把一个或多个文件加入**备份历史**并标记为**已导入**，之后可以随时点击**恢复**。Navicat `.nb3` 记录会显示源数据库、Schema 以及备份创建时间。

DBX 从不删除导入的文件。删除导入记录只会将其从历史中移除，保留数量策略也不会作用于导入记录。同一个文件不能重复导入。

## Navicat 备份（.nb3）

在 MySQL 或 PostgreSQL 连接上将备份格式选择为 &#x2A;*Navicat 备份（.nb3）** 时，DBX 会按 Navicat 的归档结构写出文件：一个包含 `meta.json` 索引、Gzip 压缩的对象元数据（DDL、索引、约束、触发器）以及 Gzip 压缩数据分块的 tar 归档，每个成员都带有 SHA-1 校验值。其他数据库类型不提供此格式。

DBX 也可以恢复 `.nb3` 文件，包括由 Navicat 创建的备份。在 [SQL 文件执行](/cn/docs/sql-file) 中打开文件，或在备份历史中点击**恢复**。DBX 会把归档转换为恢复脚本，依次：

1. 删除归档中的表、视图和序列（`DROP ... IF EXISTS`；PostgreSQL 使用 `CASCADE`）
2. 创建序列、存储过程/函数和表，然后以批量 `INSERT` 写入数据
3. 添加索引、约束、序列值、视图和触发器

恢复 

`.nb3`

 文件会替换目标库中归档包含的对象，请先恢复到空库或可丢弃的数据库中验证。不支持加密的 Navicat 备份，且归档只能恢复到生成它的同类数据库引擎中。

## 选择定时备份还是数据库导出

| 功能                                | 适合场景                        |
| --------------------------------- | --------------------------- |
| [数据库导出](/cn/docs/database-export) | 一次性迁移、变更前备份、手动选择当前范围        |
| 定时数据库备份                           | 固定连接和范围的周期性逻辑备份             |
| 数据库原生备份                           | 大型生产库、PITR、增量/物理备份、高可用与合规要求 |

## 安全建议

* 使用只具备备份所需读取权限的数据库账号
* 目标目录按敏感数据级别控制权限和加密
* 不要把包含业务数据的 SQL 文件提交到公开仓库
* 计划中数据库或表改名后，重新检查范围
* DBX 桌面端未运行、电脑休眠或目标目录不可用时，计划不会像服务器调度器一样可靠执行

### [一次性数据库导出](/cn/docs/database-export)

手动选择结构、数据、对象和数据库范围。

### [恢复 SQL 文件](/cn/docs/sql-file)

执行备份文件并查看语句级进度与错误。

### [生产安全](/cn/docs/production-safety)

使用只读账号、生产保护和最小权限策略。

