1. 达梦数据库DMP迁移实战:从报错到解决的全过程
最近在做一个达梦数据库DM8的迁移项目,遇到了一个典型的坑——导入DMP文件时报错"无效的模式名"。这个问题看似简单,但背后涉及到达梦数据库的模式和用户管理机制。下面我就把这个踩坑经历完整分享出来,希望能帮到遇到同样问题的朋友。
事情是这样的:我们需要把A1数据库(端口5236)的数据迁移到A2数据库(端口5237)。在A1库用SYSDBA创建了模式ABC231115和测试表,导出DMP文件一切顺利。但在A2库创建了同名用户后导入时,却报出了"无效的模式名"错误。最让人困惑的是,明明已经创建了同名用户,为什么还会报这个错?
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与数据导出
2.1 源数据库A1的环境搭建
首先在A1数据库(5236端口)创建测试环境。使用SYSDBA账号登录后,执行以下SQL创建模式和测试表:
sql复制CREATE SCHEMA "ABC231115";
CREATE TABLE "ABC231115"."AT231115" (
"C1" VARCHAR2(50) NOT NULL,
"C2" VARCHAR(50),
"C3" VARCHAR(50),
"C4" VARCHAR(50),
NOT CLUSTER PRIMARY KEY("C1")
);
然后插入5条测试数据:
sql复制insert into "ABC231115"."AT231115" VALUES ('1','','1','');
insert into "ABC231115"."AT231115" VALUES ('2','','2','');
insert into "ABC231115"."AT231115" VALUES ('3','','3','');
insert into "ABC231115"."AT231115" VALUES ('4','','4','');
insert into "ABC231115"."AT231115" VALUES ('5','','5','');
commit;
2.2 使用dexp导出DMP文件
数据准备完成后,使用达梦的dexp工具导出数据:
bash复制./dexp useri
