暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【迁移案例分享】磐维数据库_Oracle迁移DDL到分布式磐维报表空间不存在的问题解决

原创 磐维数据库 2025-02-27
102

场景

欲将Oracle DDL迁移到分布式磐维库上,同时指定部分表的分片键,使用分布式dtp工具。分布式磐维库的环境:每台主机是1cn 2dn,并且两个dn分别独自使用/database1和/database2挂载点存数据。

问题描述

问题1、迁移表报表空间不存在

如下,使用分布式dtp工具将Oracle DDL迁移到分布式磐维,任务提示失败:

点击TABLE的“错误日志”,提示表空间不存在:

--怀疑是迁移任务配置有问题。

通过查看迁移任务中关于表空间这块的设置,发现是置为空的:

所以,需要先正确处理上处问题,即问题2。

问题2、表空间目标路径如何正确填写

由于本次客户环境每台主机是1cn 2dn,并且两个dn分别独自使用/database1和/database2挂载点,如下所示:

创建表空间语法如下,LOCATION只能指定一个,无法为两个dn单独指定LOCATION。

\h create tablespace

Command: CREATE TABLESPACE

Description: define a new tablespace

Syntax:

CREATE TABLESPACE tablespace_name

[ OWNER user_name ] [ RELATIVE ] LOCATION 'directory' [ MAXSIZE 'space_size' ]

[with_option_clause];

注意,磐维数据库不支持登入dn中执行CREATE TABLESPACE 命令,会有如下报错:

gsql -r -d postgres -p <dn端口>

结论:若要将数据分别写入/database1和/database2,当前环境是无法创建合适的自定义表空间的。

处理方法

经沟通,客户无需使用自定义表空间;同时磐维侧的建议也是尽量使用默认表空间。

目前分布式dtp暂不支持将Oracle端需要迁移的自定义表空间改成默认表空间。

注意到迁移任务中已经完整的给出相关创建DDL的sql,只需要将表空间删掉即可,这样一来,创建表的时候就会使用默认表空间pg_default,如下所示:

--报告内容可复制到Excel中处理和替换,生成相应的create table语句,如下:

至于约束、索引、触发器等报错,均是报表不存在所导致。

--报告内容可复制到Excel中处理和替换,生成相应的create或alter语句:

手动处理后,完成迁移DDL,后续使用融合版本dtp基线完成数据的迁移。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论