1.概述
本文主要测试如何使用逻辑备份恢复(dexp/dimp)实现跨模式、跨表空间的数据迁移。
1.1 测试版本
达梦数据库的版本是:2023年4月之后的版本。
1.2 测试内容
- 跨模式数据迁移(默认表空间不同)。
2.测试过程
2.1 测试数据准备
1.创建测试用户TESTA、TESTB
2.创建测试数据
--创建测试表
CREATE TABLE TESTA.A1(ID INT);
CREATE INDEX TESTA.IDX_A1 ON TESTA.A1(ID);
--导入测试数据
begin
for i in 1..100 loop
insert into TESTA.A1 values(DBMS_RANDOM.VALUE(1,100));
end loop;
Commit;
end;
/
3.检查测试数据
--检查表信息
SELECT OWNER AS 模式,
TABLE_NAME AS 表名,
NUM_ROWS AS 行数,
TABLESPACE_NAME AS 所属表空间
FROM ALL_TABLES
WHERE OWNER IN ('TESTA', 'TESTB');
--检查索引信息
SELECT OWNER AS 模式,
INDEX_NAME AS 索引名,
TABLESPACE_NAME AS 所属表空间
FROM DBA_INDEXES
WHERE OWNER IN ('TESTA', 'TESTB');
2.2 迁移测试1
1)导出dmp文件
2)导入dmp文件
3)查看表空间
--检查表信息
SELECT OWNER AS 模式,
TABLE_NAME AS 表名,
NUM_ROWS AS 行数,
TABLESPACE_NAME AS 所属表空间
FROM ALL_TABLES
WHERE OWNER IN ('TESTA', 'TESTB');
--检查索引信息
SELECT OWNER AS 模式,
INDEX_NAME AS 索引名,
TABLESPACE_NAME AS 所属表空间
FROM DBA_INDEXES
WHERE OWNER IN ('TESTA', 'TESTB');
2.3 迁移测试2
当用户/模式包含多个数据表空间/索引表空间时,dexp导出时:参数TABLESPACE=N(默认设置),dimp导入时只需要指定REMAP_SCHEMA参数设置模式映射,即可实现:跨用户/跨模式的对应默认表空间的数据导入。
2.4 总结
- 当用户/模式默认只包含1个数据表空间和1个索引表空间时,dexp导出时:参数TABLESPACE=N(默认设置),dimp导入时只需要指定REMAP_SCHEMA参数设置模式映射,即可实现:跨用户/跨模式的对应默认表空间的数据导入;
- 用户/模式包含多个数据表空间/索引表空间时,dexp导出时:参数TABLESPACE=N(默认设置),dimp导入时只需要指定REMAP_SCHEMA参数设置模式映射,即可实现:跨用户/跨模式的对应默认表空间的数据导入(其他数据表空间/索引表空间也会导入至默认的数据表空间/索引表空间中);