
1. 使用 dexp 进行逻辑备份
dexp(Data Export)是达梦数据库的逻辑备份工具,支持全库、按用户、按表等方式备份。
(1) 全库备份
./dexp SYSDBA/SYSDBA@127.0.0.1:5236 FILE=full_backup.dmp LOG=full_backup.log FULL=Y
SYSDBA/SYSDBA:用户名/密码
127.0.0.1:5236:数据库地址和端口
FILE:备份文件路径
LOG:日志文件路径
FULL=Y:全库备份
(2) 按用户备份
./dexp USER1/password@localhost:5236 OWNER=USER1 FILE=user1_backup.dmp LOG=user1_backup.log
OWNER=USER1:仅备份 USER1 用户的数据
(3) 按表备份
./dexp SYSDBA/SYSDBA@127.0.0.1:5236 TABLES=(EMP,DEPT) FILE=tables_backup.dmp LOG=tables_backup.log
(4) 增量备份(仅导出数据变化)
./dexp SYSDBA/SYSDBA@127.0.0.1:5236 FILE=incr_backup.dmp LOG=incr_backup.log QUERY="WHERE update_time > SYSDATE-1"
QUERY="WHERE ...":仅备份最近一天更新的数据
(5) 按模式备份
# 单模式
./dexp USERNAME/PASSWORD@IP:PORT SCHEMAS=模式名 FILE=模式备份.dmp LOG=模式备份.log
# 多模式
./dexp SYSDBA/SYSDBA@127.0.0.1:5236 SCHEMAS=(HR,ACCOUNTING) FILE=multi_schema.dmp LOG=multi_schema.log
2. 使用 dimp 进行数据恢复
(1) 全库恢复
./dimp SYSDBA/SYSDBA@127.0.0.1:5236 FILE=full_backup.dmp LOG=imp_full.log FULL=Y
(2) 按用户恢复
./dimp USER1/password@localhost:5236 OWNER=USER1 FILE=user1_backup.dmp LOG=imp_user1.log
(3) 按表恢复
./dimp SYSDBA/SYSDBA@127.0.0.1:5236 TABLES=(EMP,DEPT) FILE=tables_backup.dmp LOG=imp_tables.log
(4) 仅恢复表结构(不导入数据)
./dimp SYSDBA/SYSDBA@127.0.0.1:5236 FILE=full_backup.dmp LOG=imp_schema.log FULL=Y TABLE_EXISTS_ACTION=SKIP
TABLE_EXISTS_ACTION=SKIP:如果表已存在,则跳过
总结
| 操作 | 命令 | 说明 |
| 全库备份 | dexp ... FULL=Y | 导出整个数据库 |
| 按用户备份 | dexp ... OWNER=USER1 | 仅备份某个用户的数据 |
| 按表备份 | dexp ... TABLES=(T1,T2) | 仅备份指定表 |
| 全库恢复 | dimp ... FULL=Y | 从 .dmp 文件恢复全库 |
| 按用户恢复 | dimp ... OWNER=USER1 | 恢复某个用户的数据 |
| 按表恢复 | dimp ... TABLES=(T1,T2) | 仅恢复指定表 |
TABLE_EXISTS_ACTION 模式
| 模式 | 操作类型 | 备注 |
| REPLACE | 删除表并重建 | 需要完全覆盖表结构和数据 |
| TRUNCATE | 清空表数据再导入 | 保留表结构,仅刷新数据 |
| APPEND | 仅追加数据 | 增量导入,不删除旧数据 |
| SKIP | 跳过已存在的表 | 部分恢复,避免重复导入 |