oracle 11g 数据库导入 oracle 10g

在将oracle 11g的数据库导出并导入到oracle 10g中的步骤:

1、由于版本兼容的原因,11g的数据导入到10g中不能用imp/exp命令,应该用数据泵即是impdp/expdp命令。

2、首先把数据从11g中倒出来用expdp命令,expdp命令不支持直接在命令中指定绝对路径的方式,所以要先创建 directory并授权,directory是指定转储文件和日志文件所在的目录, 创建命令是:

create directory dir_dp as 'D:\oracle\dir_dp';

我理解上面的命令的意思是为D:\oracle\dir_dp路径取别名dir_dp。

为创建的directory授权,命令是:

Grant read,write on directory dir_dp to lttfm;

上面命令的意思是:给用户lttfm授予对dir_dp读写的权限。

创建完命令后进行导出,命令是:

expdp lttfm/lttfm@orcl directory=dir_dp dumpfile =test.dmp version=10.2.0.1;

version指定将导入到的10g数据库的版本号。执行完命令后.dmp文件和导出日志文件在directory指定的路径中。

注:导出时如果遇到下图的错误可能是当前用户没有导出权限造成的,此时可执行此命令为用户授权。命令是:GRANT EXECUTE ON SYS.DBMS_DEFER_IMPORT_INTERNAL TO <user_name>;
       GRANT EXECUTE ON SYS.DBMS_EXPORT_EXTENSION TO <user_name>;



 

3、将导出的dmp文件导入到oracle 10g中。

首先创建表空间和用户,创建表空间命令:

create tablespace TEST
datafile 'E:/test/TEST_TBSPACE.dbf'
size 5000M
autoextend on next 5M maxsize 10000M;

创建用户,命令:

create user test identified by test;

授权命令:

grant connect,resource to test;

grant create session,dba to test;

将dmp文件放入directory指定的路径中,执行导入命令:

impdp test/test directory=dir_dp dumpfile=test.dmp version=10.2.0.1 REMAP_SCHEMA=lttfm:test;

REMAP_SCHEMA=lttfm:test    冒号前面的为导出时的用户名即11g的用户名,冒号后面的为导入时的用户名即10g的用户名。

猜你喜欢

转载自yuhongtaoit.iteye.com/blog/2032381