2015-10-20 69 views
-2

我正在使用'exp'命令从我的数据库导出.dmp批处理脚本。SQL exp转储文件丢失

一切运行良好并正确记录(创建日期戳记的日志文件以及)但.DMP文件本身无处可查。不在指定的'FILE ='c:/foo/bar.dmp''位置或其他地方。

出口商称它已正确完成且没有错误,但很可惜,没有DMP文件。

这不是一个权限问题,相同的脚本生成.log和临时.txt文件很好。

脚本正在Windows Server 2008上运行,即使通过命令提示符手动运行exp也不会创建文件,并且不会出现错误。

真的难住这个。非常难以诊断,因为一切发誓盲目它工作正常。希望有人看到过这样的事情,并可以提供帮助。

在此先感谢。脚本的

例子:

@echo off 
REM setlocal enabledelayedexpansion 

::Bunch of variable declarations here 

echo **Backup run on %DATE% at %TIME%** >> "E:\Backup Logs\FULL_db_%Ffullstamp%_log.txt" 
echo **Backing up FULL database** >> "E:\Backup Logs\FULL_db_%Ffullstamp%_log.txt" 

exp xxxx/[email protected] full=Y log="E:\Backup Logs\FULL_TMP.log" file="E:\Backups\FULL\FULL_db_%fullstamp%.dmp" 

type "E:\Backup Logs\FULL_TMP.log" >> "E:\Backup Logs\FULL_db_%Ffullstamp%_log.txt" 
del "E:\Backup Logs\FULL_TMP.log" 

我已经删除了一下绒毛和识别部分,但是这是面包和奶油它。正在创建和删除TXT和LOG文件,但没有DMP文件。

+2

脚本是什么样的? – SomethingDark

+0

推测这是Oracle不是SQL -Server,如果是的话请重新提问。 –

+0

对不起,这个东西还是有点新的。修复。 –

回答

0

在窗户上不会你的路径需要反斜杠而不是正斜杠?即FILE="c:\foo\bar.dmp"'

+0

批处理可以处理正斜杠和反斜杠。 – SomethingDark

0

尝试使用expdp使用Oracle Data Pump实用程序调用导出。 您的数据输出文件将驻留在由Oracle参数DATA_PUMP_DIR定义的目录中。 要找到DATA_PUMP_DIR的价值,登录到SQL * Plus为“SYS”和运行以下命令:

select * 
from dba_directories 
where DIRECTORY_NAME = 'DATA_PUMP_DIR'; 

此外,要确保你的架构有EXP_FULL_DATABASE作用。 Oracle在线文档可以为您提供进一步的说明。

https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_overview.htm#SUTIL100

我会尝试在命令行做EXPDP(带有相应参数)首先要确保它的工作原理。然后将expdp命令行插入到脚本中。

希望有所帮助。

0

解决!虽然我觉得很傻。

在'FILE ='参数中有空格是问题。

创造了这个

"E:\ClientDocuments\Data.dmp" 

"E:\ClientDocuments\Data Extration\ProgressDump.dmp" 

的路径,但很可以解决的。

+0

很高兴你解决了你的问题。我建议你开始使用Data Pump作为替代解决方案,并习惯于Oracle Utility。 (来自Oracle文档):Oracle建议您使用新的数据泵导出和导入实用程序,因为它们支持除XML模式和基于XML模式的表格之外的所有Oracle数据库10g功能。原始导出和导入支持全套Oracle数据库版本9.2功能。此外,“数据泵导出和导入”设计可以大大增强原始导出和导入实用程序的数据移动性能。 – tale852150

+1

@ tale852150感谢您的建议,我会在下次更新程序。 –