SQL exp转储文件丢失



我正在使用批处理脚本从我的数据库中使用'exp'命令导出。dmp。

一切运行正常,记录正确(创建一个日期戳的日志文件),但. 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 LogsFULL_db_%Ffullstamp%_log.txt"
echo **Backing up FULL database** >> "E:Backup LogsFULL_db_%Ffullstamp%_log.txt"
exp xxxx/yyyy@zzzz full=Y log="E:Backup LogsFULL_TMP.log" file="E:BackupsFULLFULL_db_%fullstamp%.dmp"
type "E:Backup LogsFULL_TMP.log" >> "E:Backup LogsFULL_db_%Ffullstamp%_log.txt"
del "E:Backup LogsFULL_TMP.log"

我已经去掉了一些绒毛和识别部分,但这是它的面包和黄油。TXT和LOG文件正在被完美地创建和删除,但没有DMP文件。

在Windows上你的路径不需要反斜杠而不是正斜杠吗?即FILE="c:foobar.dmp"' ?

尝试使用expdp调用Oracle数据泵实用程序的导出。您的数据输出文件将驻留在Oracle参数DATA_PUMP_DIR定义的目录中。要查找DATA_PUMP_DIR的值,以'SYS'身份登录SQL*Plus,并运行以下命令:

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命令行插入到脚本中。

希望对你有帮助。

解决!虽然我觉得自己很傻。

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

的路径
"E:ClientDocumentsData ExtrationProgressDump.dmp"

创建这个

"E:ClientDocumentsData.dmp"

正确的解决方案是,如果路径中包含空格等,则使用三引号:

@Echo Off
Rem SetLocal EnableDelayedExpansion
::Bunch of variable declarations here
(   Echo **Backup run on %DATE% at %TIME%**
    Echo **Backing up FULL database**)>>"E:Backup LogsFULL_db_%Ffullstamp%_log.txt"
exp xxxx/yyyy@zzzz full=Y log="""E:Backup LogsFULL_TMP.log""" file="""E:BackupsFULLFULL_db_%fullstamp%.dmp"""
Type "E:Backup LogsFULL_TMP.log">>"E:Backup LogsFULL_db_%Ffullstamp%_log.txt"
Del "E:Backup LogsFULL_TMP.log"

这个方法可以在Oracle文档的第7章中看到,更具体地说,7.3.3.2导出完整的Oracle数据库

相关内容

  • 没有找到相关文章

最新更新