DM8数据库导入工具dimp/dimpdp详解
🌺The Begin🌺点点关注,收藏不迷路🌺
|
达梦数据库dimp/dimpdp逻辑导入工具完全指南
一、工具概述与核心功能
达梦数据库提供两种逻辑导入工具:
- dimp:客户端导入工具(文件需存放在客户端)
- dimpdp:服务端导入工具(文件需存放在服务端)
两者参数完全一致,主要差异在于文件存放位置。本文以dimpdp为例进行详细说明。
二、基础导入操作
指定模式(SCHEMAS=MYDMDB)将数据导出到 dmp 文件中。
./dexpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 \
DIRECTORY=DM_BACKUP \
FILE=MYDMDB.dmp \
LOG=schema.log \
SCHEMAS=MYDMDB
1. 指定模式导入示例
指定模式(SCHEMAS=MYDMDB)将数据导入。
./dimpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 \
FILE=MYDMDB.dmp \
DIRECTORY=DM_BACKUP \
SCHEMAS=MYDMDB \
LOG=schema_import.log
2. 全库导入
将整个数据库导出到 full.dmp 文件中,并生成 full.log 日志文件。
./dexpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 \
DIRECTORY=DM_BACKUP \
FILE=full.dmp \
LOG=full.log \
FULL=Y
将之前导出的整个数据库的数据导入到目标数据库中。
./dimpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 \
DIRECTORY=DM_BACKUP \
FILE=full.dmp \
LOG=full_import.log \
FULL=Y
三、关键参数详解
1. 导入对象控制
参数 | 说明 | 示例 |
---|---|---|
INCLUDE | 指定导入对象类型 | INCLUDE=TABLE,INDEX |
EXCLUDE | 排除特定对象 | EXCLUDE=CONSTRAINT |
TABLE_EXISTS_ACTION | 表存在时的处理 | TRUNCATE /APPEND |
2. 性能优化参数
PARALLEL=8 \ # 并行进程数
TABLE_PARALLEL=4 \ # 单表并行度
COMMIT_ROWS=10000 \ # 批量提交行数
BUFFER_NODE_SIZE=8192 # 缓冲区大小(KB)
3.TABLE_EXISTS_ACTION 参数说明
作用:当导入的表已存在时,控制导入工具的处理方式。默认行为是直接报错。
语法格式:
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE | TRUNCATE_CASCADE]
可选值及说明:
选项值 | 处理方式描述 |
---|---|
SKIP | 跳过当前已存在的表,继续处理其他对象。 |
APPEND | 保留现有表结构和数据,直接将导出数据追加到表中。 |
TRUNCATE | 先清空现有表中的所有数据(保留表结构),再导入新数据。 |
REPLACE | 先删除现有表(包括表结构),再根据导出文件重新创建表并导入数据。 |
TRUNCATE_CASCADE | 清空现有表数据,并级联删除依赖表中的相关数据(如外键关联数据),再导入新数据。 |
适用场景:
- 数据增量同步:
APPEND
- 数据全量覆盖:
TRUNCATE
或REPLACE
- 处理关联表数据:
TRUNCATE_CASCADE
- 忽略已存在对象:
SKIP
注意事项:
- 使用
REPLACE
会删除并重建表结构,可能影响表上的索引、约束和触发器 TRUNCATE_CASCADE
需要数据库支持级联截断功能,使用前请确认环境兼容性
如: 先删除现有表(包括表结构),再根据导出文件重新创建表并导入数据。
./dimpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 \
DIRECTORY=DM_BACKUP \
FILE=full.dmp \
LOG=full_import.log \
FULL=Y \
TABLE_EXISTS_ACTION=REPLACE
四、故障处理方案
1. 常见错误处理
错误类型 | 解决方案 |
---|---|
对象已存在 | IGNORE=Y 或TABLE_EXISTS_ACTION |
约束冲突 | CONSTRAINTS=N 后单独导入 |
空间不足 | 增加数据文件或使用COMPRESS |
五、性能优化矩阵
场景 | 推荐参数组合 |
---|---|
大型表导入 | PARALLEL=8 FAST_LOAD=Y COMMIT_ROWS=50000 |
元数据导入 | PARALLEL=16 |
网络环境差 | BUFFER_NODE_SIZE COMPRESS=ALL |
2. 数据校验方案
-- 导入前后记录count值
-- 7. 验证数据
SELECT 'employees' AS table_name, COUNT(*) AS record_count FROM employees
UNION ALL
SELECT 'departments', COUNT(*) FROM departments
UNION ALL
SELECT 'products', COUNT(*) FROM products
UNION ALL
SELECT 'customers', COUNT(*) FROM customers
UNION ALL
SELECT 'orders', COUNT(*) FROM orders;
通过合理使用dimpdp工具,可以实现TB级数据的高效导入。建议生产环境操作前在测试环境验证参数组合,并建立完善的回滚机制。
🌺The End🌺点点关注,收藏不迷路🌺
|