数据泵导入问题解决方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网页地址:/17203031/viewspace-732501
IMP同库Type对象导入报错ORA-02304(续) 2012-06-11 21:27:02
分类:Linux
在上篇《IMP同库Type对象导入报错ORA-02304》
(/17203031/viewspace-732089)中,我们讨论了由于type 使用特性的原因,如果我们使用exp/imp工具导入到相同数据库中,是会发生报错现象。
当我们使用exp/imp的时候,报错ORA-02304实际上是没有什么特别好的解决方法的。Type导入相同库报错的本质在于在导出的时候,Oracle会将type的oid 连带导出。而导入的时候,又希望将其还原为相同的oid从而引发冲突。
那么,是不是我们就没有办法了呢?我们借助Oracle 10g提出的数据泵(Data Dump)工具,是可以避免这个问题的。
1、环境准备
我们同样适用Oracle 11gR2进行试验。
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
在scott用户下,我们创建一些type类型对象。
SQL> grant imp_full_database to scott;
Grant succeeded
SQL> grant exp_full_database to scott;
Grant succeeded
SQL> conn scott/tiger@wilson;
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as scott
SQL> create type mt_type as object (xm number, tchar varchar2(10));
2 /
Type created
SQL> select type_name, type_oid from user_types;
TYPE_NAME TYPE_OID
------------------------------ --------------------------------
MT_TYPE C230A55B1FC34E1DE040A8C0580017C6
SQL> create table my_tabletype of mt_type;
Table created
SQL> insert into my_tabletype values (1,'df');
1 row inserted
SQL> commit;
Commit complete
之后,我们创建用户scottback。使用数据泵expdp从scott中将数据导出。
SQL> create user scottback identified by scottback;
User created
SQL> grant resource to scottback;
Grant succeeded
SQL> grant connect to scottback;
Grant succeeded
SQL> grant exp_full_database to scottback;
Grant succeeded
SQL> grant imp_full_database to scottback;
Grant succeeded
2、expdp数据导出
数据泵DataDump作为10g中推出的新一代数据备份还原工具,具有很多好的特点。DataDump是服务器端使用工具,需要在服务器上执行。
首先,我们需要创建directory对象,对应服务器上的一个目录位置。
[root@oracle11g /]# pwd
/
[root@oracle11g /]# mkdir export
[root@oracle11g /]# ls -l | grep export
drwxr-xr-x 2 root root 4096 Jun 11 19:29 export
[root@oracle11g /]# chown oracle:oinstall export
[root@oracle11g /]# ls -l | grep export
drwxr-xr-x 2 oracle oinstall 4096 Jun 11 19:39 export
创建directory对象,并且将read write权限授予给scott和scottback。
SQL> create or replace directory MY_DIR
2 as '/export';
Directory created
SQL> grant write, read on directory my_dir to scott;
Grant succeeded
SQL> grant write, read on directory my_dir to scottback;
Grant succeeded’
再使用expdp命令行进行导出。
[oracle@oracle11g ~]$ cd /export/
[oracle@oracle11g export]$ pwd
/export
[oracle@oracle11g export]$ expdp scott/tiger@wilson directory=my_dir dumpfile=scott.dmp logfile=resexp.log schemas=scott
Export: Release 11.2.0.1.0 - Production on Mon Jun 11 19:35:08 2012