达梦数据库的备份分为两大类:物理备份 和 逻辑备份。
物理备份:直接拷贝数据文件(.DBF,数据文件、控制文件、归档日志)。把整个文件夹压缩打包。恢复时直接覆盖回去,不关心表里具体是什么数据。
逻辑备份:将数据转换为SQL语句(INSERT/CREATE),恢复时重新执行这些SQL,不关心文件存在哪里。
基于数据库的物理文件(如数据文件 .DBF、控制文件、归档日志)进行拷贝和还原的。
这是保护整个数据库的“重型武器”,主要应对硬件故障、系统崩溃、数据文件损坏等让数据库无法启动或数据大面积丢失的灾难性问题。
核心场景
联机备份和恢复(热备)
脱机备份和恢复(冷备)
完全备份和恢复
增量备份和恢复
差异备份和恢复
表空间级备份和恢复
表级备份和恢复(这里要特别注意,它虽然叫“表级”,但底层依然是对包含该表的物理数据文件块进行备份,是物理拷贝)
并行备份(多通道并发拷贝物理文件)
联机备份和脱机备份最本质的区别是什么?
联机备份:数据库正在读写,备份开始时数据文件处于不一致状态,必须依赖归档日志把不一致的数据“推”到一致。(备份之后进行的数据库操作没有被记录到备份文件里,所以需要归档日志配合)
脱机备份:数据库已干净关闭,所有数据文件处于一致状态。
完全备份、增量备份、差异备份,这三者是什么关系?
完全备份 所有数据文件(备份文件范围为全库)
增量备份 自上次任何类型备份以来变化的数据页
差异备份 自上次完全备份以来变化的数据页
全量备份 = 直接把数据文件恢复到某个时刻的快照
① 备份 将数据文件拷贝到指定目录
联机(库运行时):BACKUP DATABASE FULL BACKUPSET '/路径';(SQL命令)
脱机(库停止后):./dmrman 中执行((指定 dm.ini 路径和备份集目录))
BACKUP DATABASE '/dm.ini路径' FULL BACKUPSET '/路径';
② 还原 将备份文件覆盖回原数据文件位置
必须脱机,使用 dmrman:
RESTORE DATABASE '/dm.ini路径' FROM BACKUPSET '/备份路径';
③ 恢复 应用归档日志,使数据一致性(相当于“重做日志”)
必须脱机,使用 dmrman:
RECOVER DATABASE '/dm.ini路径' FROM BACKUPSET '/备份路径';
然后 RECOVER DATABASE ... UPDATE DB_MAGIC;(更新数据库魔数,使库可正常启动)
注意联机备份时,归档日志必须开启(dmarch.ini 和 dm.ini里的ARCH_INI=1 就是为此准备)。
联机备份(SQL 命令)核心参数:
COMPRESSED LEVEL:压缩等级 0~9,0 不压缩,数字越高压缩比越大但速度越慢。推荐 1~5 平衡速度与空间。
TASK THREAD:备份数据处理线程数,控制并行读取与压缩,默认 4。
PARALLEL:并行备份并发数,默认 4。实际并行度 = TASK THREAD × PARALLEL,建议不超过 CPU 核心数的 2~4 倍。
MAXPIECESIZE:单个备份片文件大小上限(MB),最小 128MB。
LIMIT:限制备份读写速度(MB/S),默认为 0 表示不限制。
WITHOUT LOG:脱机备份时不备份联机日志,后续还原需配合归档日志目录使用。
脱机备份(dmrman)核心参数:
WITH BACKUPDIR:增量备份时指定基备份的搜索目录。
BASE ON BACKUPSET:增量备份时直接指定基备份集路径。
BACKUPSET:指定当前备份集的生成路径。
DEVICE TYPE:介质类型,支持 DISK 和 TAPE,默认为 DISK。
BACKUPINFO:为备份集添加描述信息。
IDENTIFIED BY:指定备份加密密码;配合 WITH ENCRYPTION 指定加密类型(1 简单加密 / 2 完全加密)。
备份类型关键字:
FULL:完全备份,拷贝 CKPT_LSN 之前所有数据页及区间内 REDO 日志。
INCREMENT:增量备份,仅拷贝自上次基备份后变更的数据页。
注意:
RESTORE 只是把备份文件拷贝回数据目录,但此时数据文件可能和当前日志不一致(因为备份后可能还有其他操作)。
必须执行 RECOVER 应用归档日志,才能把数据“推进”到一致状态,最后再 UPDATE DB_MAGIC 才能正常启动。
通过达梦的 dexp/dimp 工具,将数据库对象(表、视图、存储 过程等)转换成 SQL 语句或逻辑数据格式进行导出和导入。
它更灵活,主要用于处理数据迁移、特定对象恢复、开发测试环境搭建等精细化操作。
核心场景
库级导出导入
模式级导出导入
用户级导出导入
表级导出导入
达梦的逻辑备份使用 dexp(导出)和 dimp(导入)工具,不需要关闭数据库,也不需要归档日志。
操作 命令示例(在 bin 目录下执行) 说明
导出整个库 ./dexp SYSDBA/SYSDBA#123a FILE=full.dmp LOG=full.log FULL=Y 导出所有对象
导出指定模式 ./dexp SYSDBA/SYSDBA#123a FILE=schema.dmp LOG=schema.log SCHEMAS=DMHR 只导出 DMHR 模式
导出指定表 ./dexp SYSDBA/SYSDBA#123a FILE=table.dmp LOG=table.log TABLES=RCT_BFHF_LJ 只导出这一张表
导入(全库) ./dimp SYSDBA/SYSDBA#123a FILE=full.dmp LOG=imp.log FULL=Y 导入前如果表存在会报错,可加 IGNORE=Y 跳过
导入指定表 ./dimp SYSDBA/SYSDBA#123a FILE=table.dmp LOG=imp.log TABLES=RCT_BFHF_LJ 只导入这一张表
核心参数说明:
FILE:指定导出或导入的 .dmp 文件名。
DIRECTORY:指定文件存放目录,便于统一管理备份路径。
LOG:指定日志文件名,记录导出/导入过程。
FULL(粒度选择参数):设为 Y 时执行全库导出/导入。
OWNER(粒度选择参数):按用户导出/导入,可指定多个用户,逗号分隔。
SCHEMAS(粒度选择参数):按模式导出/导入,可指定多个模式。
TABLES(粒度选择参数):按表导出/导入,格式为 模式名.表名,可指定多张表。
联机备份图形化操作:
导出整个库
填写导出目录,导出文件名和日志文件名
导出指定模式
选中要导出的模式,右键选择导出
填写导出目录,导出文件名和日志文件名
导出指定表
选中要导出的表,右键选择导出
填写导出目录,导出文件名和日志文件名
导入模式
右击数据库选择导入
选择导入的文件路径
修改模式映射
文章
阅读量
获赞
