oracle10g和oracle11g导入导出数据区别
其中flxuser为用户名,flxuser为密码,file值为导入到数据库中的备份文件。
oracle10g和oracle11g导入导出数据的命令方式大有不同:
oracle10g导入数据:
imp flxuser/flxuser file=test.dmp log=test_20140507.log full=y
oracle10g导出数据:
Exp flxuser/flxuser owner =flxuser buffer=102400000 file=test.dmp
Log=test_20140507.log
在导入数据之前,可重新创建目录,将备份文件放置在这个目录中:
create directory temp_dir as 'c:\temp';
grant read,write on directory temp_dir to flexuser;
oracle 11g导入数据:
impdp flexuser/flxuser directory=temp_dir dumpfile=test.dmp remap_schema=flx_***:flxuser remap_tablespace=flx_***:flexnet
其中,当备份文件中用户名与当前用户名冲突时,可通过remap_schema命令将原用户名替换为当前用户名(冒号前为原用户名,冒号后为当前用户名)。
当备份文件中表空间与当前表空间冲突时,可通过remap_tablespace命令将原表空间替换为当前表空间(冒号前为原表空间,冒号后为当前表空间)。
oracle 11g导出数据:
expdp flexuser/flxuser schemas=flxuser directory=dump_dir dumpfile =test_20140507.dmp logfile=test_20140507.log
若在数据导入过程中出现错误:
将所有与用户相关的内容删除掉:
drop user flexuser cascade;
重新创建用户名:
reate user flxuser identified by flxuser default tablespace flexnet
create grant dba,connect,resource to flxuser
在11g中导入数据时查看日志,出现如下错误:
ORA-00959: tablespace 'FLX_***' does not exist
则只需将导出语句后设置remap_tablespace的值。
在10g中不存在remap_schema,remap_tablespace命令