oracle用imp还原数据库时能覆盖原来数据库吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle用imp还原数据库时能覆盖原来数据库吗?相关的知识,希望对你有一定的参考价值。

做了个批处理:

@echo off
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
imp AA\123@bb file=d:\aa_%date:~11%.dmp full=yes
log=d:\aa_%date:~11%.log

想问一样这样可以覆盖原有数据库吗?因为原有数据库隔一段时间会旧,我用新的数据库还原,想直接覆盖,这个批处理可以吗?如果不行需要加什么参数选项?

应该是不可以,imp执行的操作,就是建表、建视图等对象,导入数据(执行插入操作);
没有在插入前,执行清空(delete等)的操作。追问

impdp username/password directory=DUMP DUMPFILE=TEST.DMP
TABLE_EXISTS_ACTION=TRUNCATE
TRUNCATE表示删除已存在的表的所以记录,然后导入新的记录

以上我再网上查的,truncate好像是这个功能,但是TABLE_EXISTS_ACTION=TRUNCATE好像命令不对还是怎么弄?不执行啊。

参考技术A imp没用过,impdp的中的这种参数是table_exists_action=replace

oracle用imp导入用户数据时,提示表或视图不存在

其他数据都能正常导入
但是有一个触发器导入的时候提示表或视图不存在
其他触发器都正常
表空间没问题
dmp里面有N个触发器 只有一个导不进去,有一个完全一样的触发器作用于另外一个表可以导入,应该与触发器没关系。至于重新编译..导都没导进来怎么重新编译...手工copy一下还可以...

把这个触发器重新编译一下可能就好了,如果编译还出错,那就按提示找原因,可能这个表或试图真的不存在,有可能这个表或试图没到进,或者是由数据库连接得到其他数据库的表。 参考技术A 你的dmp文件是用户(U)导出还是全库导出?如果是用户导出,就只导出一个用户的所有对象,如果触发器中使用了别的用户下的表或视图,就会报错。 参考技术B 在原库中查一下这个触发器,然后手工解决一下吧 参考技术C 查看你备份的.dmp文件的路径与你安装的数据库路径是否一样。

以上是关于oracle用imp还原数据库时能覆盖原来数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

今天用imp还原数据库,存储过程全部乱码

Oracle数据库备份与还原命令 -- exp/imp

oracle数据库删除、还原。

Oracle 数据导入导出操作 (转)

oracle数据库导入导出命令!

oracle使用imp导入数据覆盖(overwirte)原有表数据