达梦逻辑导入使用总结

本文详细探讨了数据库字符集、字节处理、系统字符集匹配和模式映射在导入导出过程中的挑战,通过实例演示了如何解决字符串截断、字节单位差异和字符集不一致等问题,涉及GB18030到UTF-8转换、字节模式迁移以及跨平台字符集调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备工作

首先创建4个实例,3个初始化参数不同,其中实例2和实例4参数相同。

实例1

1>字符集:GB18030

2>是否以字节为单位:否

实例2

1>字符集:uft8

2>是否以字节为单位:否

实例3

1>字符集:uft8

2>是否以字节为单位:是

实例4

1>字符集:uft8

2>是否以字节为单位:否

二、结果测试

01

数据库字符集问题测试

情景:实例1 ->>实例2   GB18030导入UTF8

实例1上创建用户TEST,并在TEST模式下创建一个表

create table "TEST"."TABLE_1"("char1" VARCHAR(10));

插入一条数据,将字节填满。​​​​​​​

insert into TEST.TABLE_1 values('哈哈哈哈哈');commit;

导出模式TEST并导入到实例2中。

实例1导出

实例2上创建用户TEST导入

报错字符串截断

查看导入情况,表结构导入成功但没有数据。

将源数据改为‘哈哈哈’3个字,这样目的端数据库utf8可以容纳下,然后再次导出导入。

未发现字符串截断,且数据导入成功。

02

字节问题测试

情景:以字节为单位导入到非字节为单位的数据库,实例3->>实例2

实例3创建模式,表,插入数据。​​​​​​​

CREATE SCHEMA "CHAR_TEST" AUTHORIZATION "SYSDBA";create table "CHAR_TEST"."CHAR_TEST"("name1" VARCHAR(5));insert into CHAR_TEST.CHAR_TEST values('哈哈哈哈哈哈');commit;

导出实例3模式CHAR_TEST到实例2中。

03

系统字符集问题测试

情景:源端和目的端数据库初始化参数一致。实例2->>实例4

windows系统字符集为GBK,linux系统字符集为utf8

使用windows管理工具导出到windows上然后导入到linux,使用linux图形界面管理工具导入。

创建模式。建个表和插入数据。​​​​​​​

CREATE SCHEMA "WIN_LIN" AUTHORIZATION "SYSDBA";CREATE TABLE "WIN_LIN"."TABLE_1"("COLUMN_1" CHAR(10),"COLUMN_2" CHAR(10)); insert into WIN_LIN.TABLE_1 VALUES('哈哈哈','啦啦啦');commit;

传输到linux上然后导入。

虽然日志最下方没有警告,但日志最上方还是有个导入导出字符集不一致警告。

查看下数据,数据正常

这种虽然导入成功,但是建议开个终端可以临时设置linux字符集为gbk,然后在这个终端启动管理工具或者使用命令行dimp导入。下面进行测试是否有导入导出字符集不一致警告。

启动管理工具

导入未出现导入导出字符集不一致警告。

04

关于模式映射导入测试

实例2创建新用户USER1,创建表和插入数据,使用SYSDBA导出新用户模式。​​​​​​​

create user "USER1" identified by "******"default tablespace "MAIN";grant "RESOURCE","PUBLIC","VTI","SOI" to "USER1"; create table "USER1"."TABLE_1"("COLUMN_1" CHAR(10),"COLUMN_2" CHAR(10));insert into USER1.TABLE_1 VALUES('哈哈哈','啦啦啦');

实例2中导出USER1模式。

(1)方法1:直接导入实例4中

若4中没有USER1用户,直接导入会报没有这个用户名错误。

(2)方法2:实例4创建用户USER1导入

(3)方法3:模式映射

举例:源库导出的是USER1模式,目的端导入时可以更改模式名,如把USER1改为USER1BAK;

成功更改模式USER1为USER1BAK。目的端可以提前建好模式名也可以直接导入会自动创建,前提是目的端的用户有创建模式或有对这个模式下对象操作的权限。

<think>好的,我现在需要帮助用户了解如何将DMP文件导入达梦数据库。根据用户的问题,他们想知道是否可以使用impdp或其他命令来完成这个任务。首先,我需要回顾一下达梦数据库逻辑备份和恢复工具。 根据引用[4],达梦数据库使用expdb和impdb工具进行逻辑备份和导入,类似于Oracle的exp/imp,而不是expdp/impdp。虽然名称中有“db”,但语法和功能更接近Oracle的旧版工具。用户提到的是impdp,但达梦可能没有这个命令,需要确认正确的工具名称。 接下来,用户需要具体的导入步骤。引用[2]中有一个示例,使用的是dexp工具导出,对应的导入应该是使用dimp工具吗?不过引用[4]明确指出,达梦逻辑备份工具是impdb。可能用户混淆了Oracle和达梦的工具名称。需要明确达梦导入命令是impdb,而不是impdp。 然后,查看引用[4]中的说明,expdb支持两种模式,其中与Oracle exp兼容的模式功能更强大。因此,导入时也应该使用impdb,并且可能需要类似的参数,如FULL=Y来导入整个数据库,或者指定用户和模式。 用户提供的引用[1]提到Oracle使用imp命令导入,而达梦可能使用impdb。此外,引用[3]提到迁移工具可能遇到问题,所以在导入时需要注意可能的错误处理。 现在,需要整理出具体的命令格式,包括必要的参数,如用户认证、文件路径、日志文件、导入模式(全库、模式、表)等。例如,引用[2]中的导出命令使用了FILE、DIRECTORY、LOG和FULL参数,导入时应该类似,但使用impdb。 还需要考虑是否需要提前创建用户和表空间,如引用[5]中Oracle的做法,但达梦可能有不同的步骤。但用户的问题仅关注导入命令本身,可能不需要涉及这些前置步骤,除非导入全库时需要考虑。 可能的命令结构是: ./impdb USERID=用户名/密码@主机:端口#实例 FILE=文件名.dmp DIRECTORY=路径 LOG=日志名.log FULL=Y 或者,如果只导入特定模式或表,可能需要使用SCHEMAS或TABLES参数。 另外,用户可能遇到导入失败的情况,如引用[3]中的表和视图导入失败,可能需要检查日志文件,处理结构不一致或兼容性问题。 总结步骤: 1. 确认使用impdb工具 2. 基本命令结构 3. 参数说明(FILE, DIRECTORY, LOG, FULL, SCHEMAS等) 4. 示例命令 5. 常见问题处理(日志查看,权限,兼容性) 需要确保语法正确,路径存在,权限足够,并且DMP文件与达梦版本兼容。此外,第三方工具如PL/SQL Developer可能支持,但引用[1]提到可能不稳定,所以建议使用命令行工具。</think>达梦数据库使用`impdb`工具进行DMP文件导入(对应Oracle的`imp`命令),而非`impdp`[^4]。以下是具体操作方法: ### 一、基础导入命令格式 ```bash ./impdb USERID=用户名/密码@主机:端口#实例 FILE=文件名.dmp DIRECTORY=导出路径 LOG=日志名.log [导入模式参数] ``` ### 二、关键参数说明 1. **全库导入**(需SYSDBA权限) ```bash ./impdb SYSDBA/SYSDBA@localhost:5236 FILE=db_str.dmp DIRECTORY=/mnt/dexp/data LOG=imp.log FULL=Y ``` 2. **按模式导入** ```bash ./impdb USER1/password@10.0.0.11:5236 FILE=data.dmp SCHEMAS=USER1 ``` 3. **按表导入** ```bash ./impdb USER1/password@10.0.0.11:5236 FILE=data.dmp TABLES=table1,table2 ``` ### 三、注意事项 1. **权限要求** - 全库导入需SYSDBA权限 - 模式导入需目标用户有CREATE权限 2. **路径验证** `DIRECTORY`参数需指向真实存在的操作系统路径,且数据库服务账号有读写权限[^2] 3. **兼容性问题** 若导入失败(如表/视图结构不兼容),需检查日志文件并调整对象定义[^3] ### 四、辅助工具 可通过达梦管理工具(DM Management Tool)的"数据迁移"模块进行可视化导入,支持交互式处理异常对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值