DM8数据库dimpdp逻辑导入工具:核心参数详解
🌺The Begin🌺点点关注,收藏不迷路🌺
|
一、引言
在达梦数据库(DM)的日常运维与数据管理中,dexpdp
(数据导出)和dimpdp
(数据导入)工具是至关重要的核心组件。它们基于Oracle的Data Pump技术设计,支持高吞吐量的数据迁移、备份与恢复操作。
二、dexpdp/dimpdp核心参数一览表
以下是dimp
(导入)工具的参数详解(dexpdp
参数类似,部分参数含义略有差异),表格中标注*
的为常用核心参数:
参数 | 含义 | 类型 | 备注 |
---|---|---|---|
USERID* | 数据库连接信息,格式为用户名/密码@主机:端口 | 必选 | 需具备DBA 权限或对应模式的操作权限 |
FILE* | 输入/输出文件(dexpdp导出文件为.dmp 格式) | 可选 | dexpdp默认生成dexpdp.dmp ,dimpdp需指定dexpdp导出的文件路径 |
DIRECTORY* | 数据库目录对象(需提前创建) | 必选 | 通过CREATE DIRECTORY 语句创建,指向实际文件存储路径 |
FULL | 是否全库导出/导入(Y /N ) | 可选 | 与OWNER /SCHEMAS /TABLES 互斥,默认根据导出文件类型决定 |
OWNER | 导出/导入指定用户的模式(Schema) | 可选 | 优先级低于FULL ,高于SCHEMAS |
SCHEMAS* | 导出/导入的模式列表(多个模式用逗号分隔) | 可选 | 按模式粒度操作,支持跨用户迁移 |
TABLES | 表名列表(支持通配符% /_ ) | 可选 | 按表粒度操作,不支持外部表导入 |
PARALLEL | 并行线程数(提升导出/导入速度) | 可选 | 建议设置为CPU核心数的1-2倍,dexpdp默认值为1 |
TABLE_PARALLEL | 单表导入子线程数(需配合FAST_LOAD=Y ) | 可选 | 进一步优化大表导入性能 |
IGNORE | 忽略创建错误(Y /N ) | 可选 | Y 表示表存在时继续插入数据,N (默认)报错 |
TABLE_EXISTS_ACTION* | 表存在时的处理策略 | 可选 | 取值:SKIP /APPEND /TRUNCATE /REPLACE /TRUNCATE_CASCADE ,默认报错 |
FAST_LOAD | 是否使用dmfldr 快速装载(Y /N ) | 可选 | 大幅提升数据导入速度,需目标表结构提前创建 |
COMMIT_ROWS | 批量提交行数(默认5000) | 可选 | 减少事务日志写入,提升性能,需结合内存容量调整 |
EXCLUDE/INCLUDE | 过滤/包含对象(支持对象类型或具体对象名) | 可选 | 示例:EXCLUDE=(CONSTRAINTS,INDEXES) 或INCLUDE=TABLES:EMP,DEPT |
GRANTS/CONSTRAINTS | 是否导入权限/约束(Y /N ) | 可选 | 默认Y ,如需跳过权限迁移可设为N |
LOG* | 日志文件路径 | 可选 | 记录操作详情,便于排查问题,默认生成dimpdp.log |
REMAP_SCHEMA | 模式映射(源模式:目标模式) | 可选 | 跨用户迁移时重命名模式,示例:REMAP_SCHEMA=SOURCE:TARGET |
REMAP_TABLE | 表名映射(源模式.源表:目标表) | 可选 | 示例:REMAP_TABLE=SOURCE.EMP:NEW_EMP |
ENCRYPT_PASSWORD | 数据加密密钥(需与dexpdp一致) | 可选 | 敏感数据导出时启用加密 |
SHOW | 仅列出文件内容(Y /N ) | 可选 | 用于预览导出文件结构,不执行实际导入/导出 |
HELP | 显示帮助信息 | 可选 | 快速查看参数语法 |
三、命令示例
场景1:全库导出与导入(生产环境备份恢复)
导出命令(dexpdp)
./dexpdp USERID=SYSDBA/SYSDBA@192.168.1.100:5236 \
DIRECTORY=DM_BACKUP \
FILE=FULL_DB_$(date +%Y%m%d).dmp \
FULL=Y \
PARALLEL=4 \
LOG=FULL_EXPORT_$(date +%Y%m%d).log
关键点:
FULL=Y
:全库导出,包含所有模式、表、权限等对象PARALLEL=4
:使用4个线程并行导出,提升速度- 文件名包含日期变量,避免覆盖历史备份
导入命令(dimpdp)
./dimpdp USERID=SYSDBA/SYSDBA@192.168.1.101:5236 \
DIRECTORY=DM_BACKUP \
FILE=FULL_DB_20231001.dmp \
FULL=Y \
TABLE_EXISTS_ACTION=REPLACE \
LOG=FULL_IMPORT_20231001.log
关键点:
TABLE_EXISTS_ACTION=REPLACE
:覆盖已存在的表(含结构)- 目标库需提前创建
DM_BACKUP
目录对象,并确保权限正确
场景2:单模式迁移(开发环境到测试环境)
导出命令(dexpdp)
./dexpdp USERID=SYSDBA/SYSDBA@DEV_DB \
DIRECTORY=DEV_BACKUP \
FILE=MYDMDB_SCHEMA.dmp \
SCHEMAS=MYDMDB \
EXCLUDE=(INDEXES,TRIGGERS) \
LOG=SCHEMA_EXPORT.log
关键点:
SCHEMAS=MYDMDB
:仅导出MYDMDB
模式下的对象EXCLUDE=(INDEXES,TRIGGERS)
:跳过索引和触发器,减少导出数据量
导入命令(dimpdp)
./dimpdp USERID=SYSDBA/SYSDBA@TEST_DB \
DIRECTORY=TEST_BACKUP \
FILE=MYDMDB_SCHEMA.dmp \
SCHEMAS=MYDMDB \
REMAP_SCHEMA=MYDMDB:TEST_MYDMDB \
FAST_LOAD=Y \
LOG=SCHEMA_IMPORT.log
关键点:
REMAP_SCHEMA=MYDMDB:TEST_MYDMDB
:将源模式MYDMDB
重命名为TEST_MYDMDB
FAST_LOAD=Y
:使用快速装载模式,提升导入效率
场景3:单表增量导入(数据补录)
./dimpdp USERID=SYSDBA/SYSDBA@DB \
DIRECTORY=DATA_DIR \
FILE=EMP_DATA.dmp \
TABLES=EMP \
TABLE_EXISTS_ACTION=APPEND \
IGNORE=Y \
LOG=EMP_APPEND.log
关键点:
TABLES=EMP
:仅导入EMP
表数据TABLE_EXISTS_ACTION=APPEND
:向已存在的表中追加数据IGNORE=Y
:忽略表创建错误(假设表已存在)
四、高级参数与最佳实践
1. 性能优化组合拳
-
并行处理:
PARALLEL
(全局线程数)+TABLE_PARALLEL
(单表线程数)- 适用场景:大表导出/导入或多核服务器环境
- 示例:
PARALLEL=8 TABLE_PARALLEL=2
(总线程数=8×2=16)
-
快速装载模式:
FAST_LOAD=Y
+COMMIT_ROWS=10000
- 原理:绕过SQL引擎,直接写入数据文件
- 注意:目标表需提前创建,且不支持事务回滚
2. 数据过滤与映射
-
细粒度对象过滤:
# 仅导入表数据,忽略索引和权限 INCLUDE=(TABLES,ROWS) EXCLUDE=(INDEXES,GRANTS)
-
跨模式/表名映射:
# 将源模式TEST的表EMP迁移到目标模式PROD并改名 REMAP_SCHEMA=TEST:PROD REMAP_TABLE=TEST.EMP:PROD.EMPLOYEE
3. 数据安全与加密
-
敏感数据加密:
# 导出时加密 ./dexpdp USERID=SYSDBA/... ENCRYPT_PASSWORD=MySecretKey ENCRYPT_NAME=AES128 # 导入时需使用相同密钥 ./dimpdp USERID=SYSDBA/... ENCRYPT_PASSWORD=MySecretKey
-
权限最小化原则:
- 避免使用
SYSDBA
用户直接操作,创建专用迁移用户并授予IMP_FULL_DATABASE
/EXP_FULL_DATABASE
角色
- 避免使用
五、常见问题与解决方案
-
权限不足:
- 错误提示:
ORA-39001: 参数值无效
- 解决:确保用户拥有
CREATE SESSION
、RESOURCE
权限,或授予DBA
角色
- 错误提示:
-
目录对象不存在:
- 错误提示:
DM-01034: 目录对象不存在
- 解决:提前创建目录:
CREATE DIRECTORY DM_BACKUP AS '/dm/backup'; GRANT READ, WRITE ON DIRECTORY DM_BACKUP TO SYSDBA;
- 错误提示:
-
表已存在且数据冲突:
- 解决方案:
- 全量覆盖:
TABLE_EXISTS_ACTION=REPLACE
- 增量追加:
TABLE_EXISTS_ACTION=APPEND
+IGNORE=Y
- 全量覆盖:
- 解决方案:
六、总结
dexpdp
/dimpdp
工具凭借丰富的参数配置和强大的性能,成为达梦数据库数据管理的核心工具。通过合理组合参数(如模式映射、并行处理、数据过滤),可以高效完成全库迁移、增量同步、跨环境部署等复杂场景需求。在实际操作中,建议先在测试环境验证命令逻辑,确保数据一致性和操作安全性。
参考文档:
《DM8_dexp和dimp使用手册》
达梦数据库官方技术文档(https://www.dameng.com/)
🌺The End🌺点点关注,收藏不迷路🌺
|