1、查看当前要导入数据库的版本信息 select * from v$version;
2、用sql/plus进入,登录system或sys用户,创建directory (让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性)
create or replace directory dmp as 'c:\';
3、依据查询出来的版本信息,导出11g的数据库
expdp jijin/tuteng schemas=jijin directory=dmp dumpfile=expdp_test2.dmp logfile=expdp_test2.log version='10.2.0.1.0';(最好把version部分删除,否则会提示version不允许有多个值)
4、新数据库中用sysdba登录,创建表空间,创建用户
create tablespace jijinmanager datafile 'd:\oracle\tablespace\jijinmanager.dbf' size 5M;
ALTER DATABASE DATAFILE 'd:\oracle\tablespace\jijinmanager.dbf' autoextend on;
create user jijin identified by tuteng default tablespace jijinmanager;
grant connect ,resource ,unlimited tablespace ,create table,create view, create sequence,create database link,create synonym,create type to jijin;
grant debug any procedure,debug connect session to jijin;
grant CREATE ANY DIRECTORY to jijin;
grant connect,resource to jijin;
5、cmd命令行,本地数据库开始导入。
impdp jijin/tuteng@192.168.0.100 schemas=jijin dumpfile=expdp_test2.dmp logfile=expdp_test2.log directory=dmp job_name=myjob
-------------------【讲解】--------------------------
如果是不同版本的备份还原可以需要用到的语法详细说明如下
1、在11g服务器上,使用expdp命令备份数据
EXPDP USERID='SYS/cuc2009@cuc as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0
用户名是sys密码是cuc2009,数据库sid是cuc,要到出的用户名是sybj,要导入 到10.2.0.1.0版本的Oracle数据库中去。aa.dmp和aa.log将会在11g的dpdump目录中生成,例如我的11g装在了E盘下 面,于是aa.dmp将会在E:/app/Administrator/admin/cuc/dpdump目录下被生成。
2、在10g服务器上,使用impdp命令恢复数据
假定10g装在了e:/tools目录下,于是我将aa.dmp文件拷贝到了E:/tools/admin/cucf/dpdump目录下。
IMPDP USERID='SYS/cuc2009@cucf as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0