数据泵导入问题解决方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档