1、创建目录
create directory dir_dp as '/tmp/soms';
mkdir -p /tmp/soms
2、授权
Grant read,write on directory dir_dp1 to scott;
--查看目录及权限
expdp scott/scott@soatest SCHEMAS=SOMS DIRECTORY=dir_dp1 DUMPFILE=soms.dmp logfile=expdp_test11.logimpdp scott/scott directory=dir_dp1
dumpfile=schema.dmp logfile=impdp.log REMAP_SCHEMA=SOMSDEV140123:SOMS table_exists_action=truncate;
impdp scott/scott directory=dir_dp1 dumpfile=schema.dmp logfile=impdp.log REMAP_SCHEMA=SOMSDEV140123:SOMS table_exists_action=append;
impdp scott/scott@soatest directory=dir_dp1 dumpfile=schema.dmp logfile=impdp.log REMAP_SCHEMA=SOMSDEV140123:SOMS table_exists_action=replace;
导出常见问题:
1,导出用户权限不够:
grant dba to scott;
2,创建目录
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation
处理方法:
(1)、查看directory对象
SYS@ tsid> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- ------------------------- ------------------
SYS BACKUP E:\oradata\backup
而操作系统上,E:\oradata下,没有backup目录。因为目录不存在,所以会出现” ORA-39070: Unable to open the log file.”错误。
(2)、创建”E:\oradata\backup”目录,或者修改directory对象,问题解决。
3,expdp ORA-39006, ORA-39065的解决办法
ORA-39006: internal error
ORA-39065: unexpected master process exception
in
DISPATCH
ORA-01403:
no
data found
ORA-39097: Data Pump job encountered unexpected error 100
解决方法:expdp/impdp代替旧的exp/imp
sqlplus /
as
sysdba
SQL>@$ORACLE_HOME/rdbms/admin/catmeta.sql
SQL>@$ORACLE_HOME/rdbms/admin/catmet2.sql
SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql
导入常见问题:
ORA-39083: 对象类型 COMMENT 创建失败, 出现错误:
ORA-12899: 列 "SYS"."EVENT_DDL"."OBBJNAME" 的值太大 (实际值: 41, 最大值: 40)
处理方法:修改对应对应表的列的结构和属性
desc SYS.EVENT_DDL
alter table SYS.EVENT_DDL modify OBBJNAME varchar(100);
ERROR at line 1:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-30512: 不能在事务处理超过一次修改SYS.EVENT_DDL
ORA-06512: 在 line 15
处理方法:
select trigger_name from dba_triggers where trigger_name like '%DDL%';
alter trigger trigger_name disable;
alter table SYS.EVENT_DDL modify OBBJNAME varchar(100);
ORA-39082: 对象类型 ALTER_PROCEDURE:"SOMS"."ZX_UPDATE_RTL_COST" 已创建, 但带有编译警告
ORA-39082: 对象类型 ALTER_PROCEDURE:"SOMS"."ZX_UPDATE_RTL_COSTBYACCMM" 已创建, 但带有编译警告
impdp导数据,出现ORA-39082 ORA-39083错误号,对象无法编译
查看对象定义ddl:
oracle 导入导出 使用expdp/impdp
我的版本11gR2 版本号 11.2.0.1.0 同事的是11gr1 需要指定版本号11.1.0.6.0
我装的oracle是11gR2 同事装的是11gR1 用expdp导出 impdp导入 提示版本不兼容错误
经查看oracle文档 看到了 这个参数version 最后加oracle版本号 version=11.1.0.6.0 成功导入
Sql代码
--创建dump文件目录
create directory dump_test as 'D:\test\dump'
--授权读写权限给你要操作的用户
grant read, write on directory dump_test to
username
--查询是否存在自己创建的文件目录
select * from dba_directories;
select * from da.user_tables
--注意低版本是不能导入高版本 比如我的数据库是11gR2 对方是11gr1 需要指定版本号11.1.0.6.0
expdp username/password directory=dump_test dumpfile=data.dmp version=11.1.0.6.0
--默认导在刚才创建的目录 'D:\test\dump'
--导入文件
impdp username/password directory=dump_test dumpfile=data.dmp