日期:2014-05-17  浏览次数:20879 次

oracle数据泵导入导出数据恢复不了
我用下面语句导出数据,不导出表结构,执行语句如下:
expdp ptemp/******@EMPDB DIRECTORY=bakupPtempKF DUMPFILE=ptemp8122.dmp CONTENT=DATA_ONLY

然后我用PL/SQL把该数据库中某个表数据更新一个字段,比如:表test中一条记录的date日期改了值。

然后我用下面的语句还原:

impdp ptemp/******@EMPDB DIRECTORY=bakupPtempKF DUMPFILE=ptemp8122.dmp TABLE_EXISTS_ACTION=APPEND

还原的时候发生下面的错误,

数据库数据也没有还原回来,该怎么解决这个问题?

顺便问一下:TABBLE_EXISTS_ACTION={SKIP | APPEND |TRUNCATE | FRPLACE }
当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表并追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项

后边三项我应该怎么去理解,append追加数据是指,备份的文件里有的数据,但是现在的表里没有数据,那么就把备份的数据追加回来吗?TRUNCATE就不知道该怎么理解了。REPLACE在处理主从表的时候,会不会因为唯一约束而导致失败?

我只是要做一个:只备份数据,恢复的时候也只恢复数据  达到这个效果应该不难吧?求大神支招,小弟感激不尽!!!
数据泵 Oracle 备份 impdp expdp

------解决方案--------------------
append是往现有表里添加数据,有重复数据会报错
TRUNCATE 是先级联删除该表里的数据,然后把新的数据插入进去。
REPLACE 是产删除表机器数据,然后再建表和添加数据。若导出CONTENT为DATA_ONLY时REPLACE参数无效


------解决方案--------------------
若是为了测试而进行恢复,建议你直接整个数据库导出或者按SCHEMA导出建表语句和数据。并重新建立一个新的数据库进行导入