达梦数据库使用dimp工具导入dmp文件的完整指南

2026-09-03 21:46:26 7 次阅读

达梦数据库(DM Database)作为国产关系型数据库的重要代表,在数据迁移、系统升级以及数据库备份恢复场景中应用越来越广泛。实际项目中,经常需要将已有的dmp备份文件导入到新的达梦数据库环境中,而dimp工具正是达梦数据库提供的数据导入工具。

通过dimp工具,可以快速完成数据库对象、表结构、数据记录、索引、约束等内容的迁移。掌握dimp导入dmp文件的方法,对于数据库管理员、开发人员以及运维人员来说,是日常数据库维护工作中的重要技能。

一、达梦数据库dimp工具简介

dimp(DM Import)是达梦数据库提供的数据导入工具,主要用于将由dexp工具导出的dmp文件恢复到目标数据库中。

达梦数据库的数据迁移通常包含两个过程:

  • 使用dexp工具导出数据,生成dmp文件;

  • 使用dimp工具导入dmp文件,恢复数据库对象和数据。

dmp文件属于达梦数据库专用的数据备份格式,通常包含以下内容:

  • 用户对象信息;

  • 数据表结构;

  • 表数据;

  • 索引;

  • 视图;

  • 存储过程;

  • 触发器;

  • 序列;

  • 约束关系。

相比直接执行SQL脚本导入,dimp方式具有速度快、兼容性强、对象恢复完整等特点。

二、使用dimp前的准备工作

正式执行导入操作之前,需要提前完成环境检查,避免因为权限、路径或版本问题导致导入失败。

1. 确认达梦数据库安装环境

dimp工具通常位于达梦数据库安装目录的bin目录下,例如:

/dm8/bin/dimp

可以通过以下命令确认工具是否正常:

dimp help

如果能够显示帮助信息,说明工具已经可以使用。

2. 检查dmp文件位置

确保需要导入的dmp文件已经上传到数据库服务器,并确认文件权限。

例如:

ls -lh /dmdata/backup/test.dmp

如果文件较大,建议提前检查磁盘空间:

df -h

避免导入过程中因为空间不足失败。

3. 创建目标用户

如果dmp文件中包含用户对象,需要提前创建对应用户。

例如:

CREATE USER TEST IDENTIFIED BY "123456789";

授权:

GRANT DBA TO TEST;

实际生产环境中建议根据业务需求分配最小权限,而不是直接授予DBA权限。

三、dimp导入dmp文件基本语法

dimp工具的基本使用格式如下:

dimp 用户名/密码@数据库服务 
file=文件路径 
directory=目录对象

例如:

dimp SYSDBA/SYSDBA@localhost:5236 
file=/dmdata/backup/test.dmp 
directory=/dmdata/backup

其中:

  • 用户名/密码:连接目标达梦数据库的账号;

  • file:指定需要导入的dmp文件;

  • directory:指定服务器端文件目录。

四、完整导入示例

假设存在备份文件:

/backup/company.dmp

目标数据库:

IP:192.168.1.100
端口:5236
用户:SYSDBA
密码:SYSDBA

执行:

dimp SYSDBA/SYSDBA@192.168.1.100:5236 
file=/backup/company.dmp 
directory=/backup

执行后,dimp会读取dmp文件,并按照文件中的定义创建数据库对象并导入数据。

导入过程中通常会显示:

  • 导入对象数量;

  • 创建表信息;

  • 插入数据数量;

  • 索引创建状态;

  • 导入完成提示。

五、常用dimp参数详解

实际项目中,dimp通常需要结合参数完成更精细的数据迁移。

1. FULL参数

用于执行全库级导入。

示例:

dimp SYSDBA/SYSDBA file=/backup/full.dmp full=y

适用于整个数据库迁移场景。

2. SCHEMAS参数

指定导入某个模式。

示例:

dimp SYSDBA/SYSDBA 
file=/backup/test.dmp 
schemas=TEST

适合只恢复指定用户的数据。

3. TABLES参数

只导入指定表。

示例:

dimp SYSDBA/SYSDBA 
file=/backup/test.dmp 
tables=USER_INFO,ORDER_INFO

适用于部分数据恢复。

4. REMAP_SCHEMA参数

用于用户迁移。

例如原用户:

OLD_USER

导入到:

NEW_USER

执行:

dimp SYSDBA/SYSDBA 
file=/backup/test.dmp \