1.概述

        本文主要测试如何使用逻辑备份恢复(dexp/dimp)实现跨模式、跨表空间的数据迁移。

1.1 测试版本

达梦数据库的版本是:2023年4月之后的版本。

1.2 测试内容

  1. 跨模式数据迁移(默认表空间不同)。

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个数据表空间和1个索引表空间时,dexp导出时:参数TABLESPACE=N(默认设置),dimp导入时只需要指定REMAP_SCHEMA参数设置模式映射,即可实现:跨用户/跨模式的对应默认表空间的数据导入;
  2. 用户/模式包含多个数据表空间/索引表空间时,dexp导出时:参数TABLESPACE=N(默认设置),dimp导入时只需要指定REMAP_SCHEMA参数设置模式映射,即可实现:跨用户/跨模式的对应默认表空间的数据导入(其他数据表空间/索引表空间也会导入至默认的数据表空间/索引表空间中);

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐