常用命令
EXPDP USERID='scott/tiger@orcl as sysdba' schemas=scott directory=DATA_PUMP_DIR dumpfile=dp.dmp logfile=dp.log version=10.2.0.1.0
create tablespace houqin_tablespace datafile 'D:\dzj\orcl\TEST01111.DBF' size 100M autoextend on next 5M maxsize unlimited extent management local uniform size 1M;
create temporary tablespace test11_temp tempfile 'D:\dzj\orcl\TEST01111_temp.dbf' size 100m autoextend on next 3m maxsize 2048m extent management local;
create user HOUS identified by HOUS default tablespace test11 temporary tablespace test11_temp;
IMPDP USERID='scott11/tiger@orcl as sysdba' schemas=scott directory=DATA_PUMP_DIR dumpfile=dp.dmp logfile=lg.log version=10.2.0.1.0
IMPDP USERID='HOUQIN/HOUQIN@orcl as sysdba' schemas=HOUQIN directory=DATA_PUMP_DIR dumpfile=dp.dmp logfile=lg.log version=10.2.0.1.0
--查看表的数量
SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER ='ES2012';
IMPDP USERID='ES2012/ES2012@orcl as sysdba' schemas=ES2012 directory=DATA_PUMP_DIR dumpfile=HAIYANG10G.dmp logfile=dp.log version=10.2.0.1.0
由于11g上导出导入10g数据库存兼容问题,所以要使用expdp和impdp命令:
1. 在11g上使用EXPDP 导出到directory DATA_PUMP_DIR 指定版本号是10g
select * from dba_directories ; 查看 DATA_PUMP_DIR 本地所在位置
例如:CMD内执行: EXPDP USERID='scott/tiger@orcl as sysdba' schemas=scott directory=DATA_PUMP_DIR dumpfile=dp.dmp logfile=dp.log version=10.2.0.1.0
2. 从 DATA_PUMP_DIR 目录 拷贝 dmp 文件 到11g 数据库 DATA_PUMP_DIR 目录下
3. 创建一个 与导出时 相同的用户,用户名密码相同 赋予DBA权限
例如:CMD内执行:
IMPDP USERID='scott/tiger@orcl as sysdba' schemas=scott directory=DATA_PUMP_DIR dumpfile=dp.dmp logfile=lg.log version=10.2.0.1.0
如果报错 表空间*** 不存在
需要创建表空间 表空间位置 搜索 .DBF 可以放到一起
PL/SQL执行:
create tablespace houqin_tablespace datafile 'D:\dzj\orcl\TEST01111.DBF' size 100M autoextend on next 5M maxsize unlimited extent management local uniform size 1M;
4. 再次CMD执行导入 ,导入结束 提示 导入成功,无错误无警告 才算真正完成导入
参考1:
Oracle11g数据库导入Oracle10g数据库操作笔记
11g备份,导入10g的时候会抛错,直接阻止导入。
但是有时候还必须得把11g的数据库导入到10g,我今天就遇到了这种情况。
一开始只是把11g中的表全部备份,成功导入10g。但是缺少视图、存储过程等。一个个sql创建累死人,方法太笨。请教了一下资深DBA,重新备份,重新导入,成功。
现在把我导入操作的全过程记录下来,希望可以方便更多的人!
一、在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目录下被生成。
二、在10g服务器上,使用impdp命令恢复数据
准备工作:1.建库2.建表空间3.建用户并授权4.将aa.dmp拷贝到10g的dpdump目录下
1-3点可以去参考博主的上一篇博客“Oracle数据库移植全步骤”,介绍的很详细,这里不再多说。关于第4点,我的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
其中红色部分是根据需要改写的地方。例如我的sys密码是cuc2009,数据库sid是cucf,要导入用户名为sybj,要导入到10.2.0.1.0版本的Oracle数据库中去。aa.log将会在10g的dpdump目录中生成。
每一步都讲过自己亲自操作。没问题的。朋友们如果有什么好的办法也可以拿出来共享一下。开源的氛围中,技术的成长是最快的!
参考2:
expdp和impdp
2010年9月26日
17:46
今天学习了关于Oracle10g的导入导出工具expdp、impdp,总结一下,以方便查询。
使用expdp
1。data pump包括下面几个部件:
The command-line clients, expdp and impdp
The DBMS_DATAPUMP PL/SQL package (also known as the Data Pump API)
The DBMS_METADATA PL/SQL package (also known as the Metadata API)
2。expdp, impdp和原先的exp,imp不兼容,也就是用exp导出的文件用impdp是无法导