首先,我的路径写错了,文件夹是orcldata我掉了个a。
其次,命令后添加 full=y。
dos下随便哪个目录>
IMP username/pwd@dbname BUFFER=64000 FILE=D:\orcldata\test_20111024.dmp full=y
然后就OK了。
其实,导入dmp文件(其中是表中的数据),用PS/SQL就可以。(导入之前,要把被导入表中的数据清空)
导入表--》oracle导入--》页面最下面--》导入文件(选择dmp文件路径)--》右边“导入”按钮
--补充全库备份及字符转义知识:
全库备份的文件,全库恢复:
1.将恢复中要用到的表空间和用户建好,把所有的表,存储过程等等都删除
2.cmd下面(随便哪个目录。下面的命令会导入表,索引(主键貌似没有),存储过程,job,senquence,等等):
密码中,有需要转义的字符,如<> ,不用转义,直接把整个密码用双引号""括起即可,其他需要转义的,用双引号",而不是 ' \;注意下面全库备份脚本中,密码没有用双引号括起,而<>是用^<^>转义的。
imp log=D:\20130130imp.log file=D:\周三.dmp userid=username/"..<>.."@ORCLYXKJ buffer=64000 commit=no full=yes grants=yes ignore=yes indexes=yes rows=yes show=no constraints=yes
全库备份脚本 bat (此bat备份出来后,会是 星期一.rar 星期二.rar。。并且备份完今天后会删除上个星期今天的备份.rar):
@echo on
set filename=F:\orabak\web\backup\oracle\%date:~11,3%
exp userid=username/...^<^>...@orclyxkj file=%filename%.dmp owner=ydsoft_yuxingchinasms
INDEXES=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.log
del %filename%.dmp
--使用RMAN备份(一共2个文件。但是RMAN备份之后恢复太麻烦,还是采用expdp备份,impdp恢复可靠):
rmanbackup.bat :
set ORACLE_SID=bidb
set ORACLE_HOME=E:\oracle_app\product\11.2.0\dbhome_1\
set PATH=%PATH%:E:\oracle_app\product\11.2.0\dbhome_1\bin
rman target system/oracle@bidb cmdfile='backup.rcv' log=F:\backup\bidb\rman.log
backup.rcv :
run {
allocate channel d1 device type disk format 'F:\backup\bidb\%U.bak';
BACKUP DATABASE;
delete noprompt archivelog until time 'sysdate-2';
delete noprompt expired backupset of database;
crosscheck archivelog all;
crosscheck backupset;
release channel d1;
}
--expdp备份,impdp恢复
--(81上)使用ydsoft_yuxingchinasms用户导出他的文件
create or replace directory expdir as 'D:\orabak\web\backup\oracle';
expdp userid=username/..^<^>..@orclyxkj directory=expdir schemas=username dumpfile=0221_p1.dp,0221_p2.dp,0221_p3.dp,0221_p4.dp,0221_p5.dp parallel=5 filesize=4096m
-->亲测效率:
总共 7.11G,17分钟。
如果用exp userid=username/..^<^>..@orclyxkj file=%filename%.dmp owner=username INDEXES=y grants=y constraints=y compress=y log=%filename%.log
则是9.69G,35分钟。
--(87上)impdp导入
1.
create or replace directory expdir as 'F:\orabak\orabak\web\backup\oracle';
grant read,write on directory expdir to username;
2.将上面expdp导出的dp文件传到87的F:\orabak\web\backup\oracle目录下
impdp username/..^<^>..@orclyxkj DIRECTORY=expdir DUMPFILE=0221_p1.dp,0221_p2.dp,0221_p3.dp,0221_p4.dp,0221_p5.dp parallel=10 logfile=wllimpdp.log
-->亲测效率:
pd文件总共 7.11G,用impdp导入共25分钟(如果是9.69g的dmp文件用imp导入,则要2个小时)。如果还想增加效率,可以把parallel并行度调大,理论上不超过cpu的2倍,cpu可以通过show parameter cpu 查看。