1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > PL/SQL导入/导出dmp文件-Oracle表空间不一致

PL/SQL导入/导出dmp文件-Oracle表空间不一致

时间:2023-08-07 17:17:40

相关推荐

PL/SQL导入/导出dmp文件-Oracle表空间不一致

背景

今天进行UAT数据还原到SIT时,两个环境Oracle数据库用户和表空间不一致,刚开始没在意,经过一翻反复导入导出发现最终导入的只有表结构,数据始终无法导入。

导入的表结构 .sql文件和表数据 .dmp文件均无问题。

由于数据库表结构里存在BLOB字段,PLSQL无法导出.sql结果的数据文件,只能通过dmp文件方式导出。经过网上无数PLSQL教程的指导和尝试,发现无法解决此问题。直接敲命令的方式太麻烦没有进行尝试。不得不说还有人转文章更坑,连导出数据的步骤都是错的。下面进入正题。

版本

PL/SQL: Version 10.0.5.1710 01.706090

DB :Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

执行步骤

a、导出原数据库表结构:PL/SQL –> Tools –> Export User Objects

1:这个是所属用户,这个需要修改为默认用户,把原来所属用户去掉

2:这个选项要去掉

b、导出原数据库表数据:PL/SQL –> Tools –> Export Tables

Grants : 授权,如果两边用户不同,这个选项千万不要选,导出的数据重点就在这,只有这个选项会让数据和用户体系有关联。

这样我们需要的表结构和数据都可以导出完成了。由于我们表数据量大,跑一次就得半小时,就这个玩意儿坑了我两个小时。

c、导入表结构到新数据库:PL/SQL –> Tools –> Import Tables –> SQL Insert

这个没什么难度,找对地方、找对文件直接干就能成功了。

d、导入表数据到新数据库:PL/SQL –> Tools –> Import Tables –> Oracle Import

同样的问题在这个:

Grants: 这个不要选,如果导出的数据里Grants存在,在这导入时不选择是否能成功?由于我这操作麻烦就没有再次尝试了。

Show:这个据说选择了的话,数据就无法导入进去了,没验证,反正也没啥用,就不选了。

总结

小问题也能带来大麻烦,表面看来只是一个选项选择的问题,里面其实涉及含义很多。

1、如果是数据库迁移或者还原,那么Grants这种权限类,表空间类的选项肯定是要选择的。

2、对于不同用户、表数据导入就只关注数据本身,原数据库表的权限之类的属性就会和新表引起冲突导致导入失败。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。