我们在尝试导出Oracle DB时遇到问题。 操作系统: CentOS~5.2 数据库: Oracle 10g。
Exp
命令仅在位置导出db文件:
/home/oracle/OraHome_1/oradata/master/xxx.dbf
,但工具无法导出不同位置的文件(我们在获取跟踪后知道这些文件),如下所示:
'/磁盘1 / dblog06.dbf', '/home/disk2/system01.dbf',
请告诉我如何获取转储文件。或者说吧。
感谢。
答案 0 :(得分:1)
我不确定这是否是问题,但exp
命令将根据其逻辑架构(用户名,表名)导出数据库对象。数据来自哪个物理数据库文件并不重要。
exp
通过Oracle实例工作,该实例需要安装数据文件。
这些其他文件是Oracle数据库的一部分吗?也许另一个数据库您需要找出哪个Oracle服务器使用它们,然后针对该实例运行exp
。
答案 1 :(得分:1)
EXPORT不是备份工具。它用于将数据从一个数据库传输到另一个数据库,或者可能从一个模式传输到另一个模式。
如果要在数据库崩溃或损坏的情况下恢复数据,则需要使用相应的工具。有一些操作系统解决方案,但Oracle提供了一个复杂的备份和恢复工具:RMAN。 Find out more
答案 2 :(得分:1)
您似乎误解了exp
的作用,尤其是file
参数的含义。 file
是输出转储文件,通常提供.dmp
扩展名。导出将数据从数据库实例中取出,它在数据文件的引擎下不起作用 - 您必须告诉它您需要哪些数据(完整,用户,表或表空间)以及放置它的位置,而不是它来自何处
如果你确实尝试exp file=/home/disk2/system01.dbf
,那么你实际要求它做的就是丢弃你的数据库;你很幸运它没有覆盖数据文件并导致灾难性的失败。 Oracle似乎已经让你远离了自己,但可能只是因为当时对文件进行了独占锁定。
你需要了解它是如何工作的,看看它是否真的能满足你的需要 - 因为APC注意到它不是备份工具。查看适用于您的版本的Oracle文档,或http://www.orafaq.com/wiki/Import_Export_FAQ之类的内容,并查看使用数据泵而不是exp
。