问题描述起来可能有些复杂  希望兄弟姐妹耐心看一下  依依谢过~~
1、现在有台数据库服务器是linux操作系统  上面装着Oracle数据库  假设该服务器为A
2、程序是在另一台windows操作系统的服务器上  假设该服务器为B  B上面装有A上Oracle的客户端
3、我用C机器远程连接B机器  在B机器上做了一个windows的任务计划  该计划任务是执行了一个.bat文件
    .bat文件中写的是一段备份数据库的命令,具体命令如下:
   @echo off
Start exp username/password@sid file=F:\xxx\yyy\data\fg_%date:~0,4%%date:~5,2%%date:~8,2%.dmp
4、任务计划设定完毕后  到指定的时间  从C机器远程B机器的桌面上根本看不到弹出的cmd命令窗口  
    在我指定的目录下也看不到备份的文件(目录均存在)
5、同时有一台D机器  windows系统  也一直远程连接着B机器  在我指定的任务时间cmd窗口居然在D的远程桌面上看到了
6、指定目录中没有备份文件但是我在F盘根目录下却找到了一个.dmp文件  文件生成的时间就是我指定的备份时间  大小
   也是我数据库的大小,可是名字却又不是我指定的fg_时间.dmp  而是以Program为名字的.dmp文件不知道是哪里的问题  希望哥哥姐姐们帮忙看下  谢谢~~

解决方案 »

  1.   

    1、应该去oracle区或windows区问吧
    2、运行一下bat文件看是不是命令有错误?
      

  2.   

    1、sql版人气旺呀~~高手也多
    2、单独运行bat没有问题  但同样存在在指定目录下找不到dmp文件的问题
      

  3.   

    那应该是bat里面的命令有问题吧
      

  4.   

    第一个问题:
    为什么c连到b建的,而在任务执定时间用c再连上b,c看不到,而d能看到cmd窗口?
    这个与windows远程桌面的连接会话有关
    当然,还要看组策略里的设置:运行>gpedit.msc>用户配置》管理模版>终端服务》会话
    这里就可以设置会话的一些策略。比如 : 允许仅从原始客户端连接 ,你将此条策略启用那么,当你在c连到b上,打开一个窗口,然后直接关掉远程桌面(而不是点注销或点断开),那么在 b上会为你将这个会话保留,当d再连接b时,会开启新的会话,即d连上b时看不到你打开的这个窗口,而c重连时则能看到这个窗口。
    当不启用这个设置时,当d连到b时,可能就会分配到这个已存在的会话, 当d占用这个会话时,c再连上去就开启新的会话,而发生你看到情况。当然,当不启用这个设置(允许仅从原始客户端连接 )时,d连上去能不能看到这个窗口,还依赖于几个设置,比如:
    为断开的会话设置超时时间(超时时间到了,已有的会话不会保留)等等。另外,即便没开启这个设置,如果开启了 "为活动但空闲的会话设置时间限制“,即便c一直连接b,但超过这个时间长度而没进行操作,一样会被断开。所以你的第一个问题,是否这个原因,你要仔细查看一下。第二个问题,好久没写批处理,记不太清了,估计是取当前时间的写法有问题。等我查一下。
      

  5.   

    fc好复杂啊容我慢慢看取当前时间应该是没问题的吧因为我在自己机器上做测试
    执行bat时是正常的多谢fc~
      

  6.   

    你取当前时间的写法我在我机上试了一下也没有问题。查了下gg,说不同的系统下参数可能会有区别,你找下吧。我的win2003,你的b机是不是win2k?
      

  7.   


    我也来补充一下,希望对你有帮助:--win2003的话添加计划任务时是需要输入用户名密码的(此用户最好用超级用户)
    --需要注意一点,计划任务增加成功后,如果对你的bat文件有修改,则计划任务需要重新添加(我试过改了就不运行了,重新添加就好了)
    --另外,备份数据的目录最好不要使用相对路径,而要使用绝对路径
      

  8.   

    c一直连着的?
    我个人觉得windows 的telnet不太稳定,可能是因为断开了所以改用ssh了
    所以你说的东西我依稀有些映像,但明显记不起来了
    容我春节有空帮你查下(*@%(*%*(@#……%
      

  9.   

    指定目录中没有备份文件但是我在F盘根目录下却找到了一个.dmp文件  文件生成的时间就是我指定的备份时间  大小 
      也是我数据库的大小,可是名字却又不是我指定的fg_时间.dmp  而是以Program为名字的.dmp文件 
    -------------------------------------
    这可能是你的命令在windows scheduler里面执行的时候,不能正确获得那些参数的值,所以程序只有使用一个当前默认值,结果就在F盘上生成了你的备份文件。
    看看是否写个bat文件,事先生成备份文件名字,然后调用exp的时候使用绝对路径和指定的文件名。
      

  10.   

    昨天让你问,是否问过登录用户的情况了?你的BAT我在2K测试也没问题。
      

  11.   

    现在确定C跟D远程登录的用户是用的同一个用户,win03的系统
    具体这个用户是什么权限的用户,暂时还不知道
      

  12.   

    C跟D机器都是办公用的机器  会经常连接B服务器的
      

  13.   

    很遗憾,在我机上建计划任务执行 test.bat
    内容为:exp system/xxxx@test file=f:\xxxx\fg_%date:~0,4%%date:~5,2%%date:~8,2%.dmp很成功.
      

  14.   

    另外我觉得或许fc说的会话情况的可能性不大
    因为我一开始设置的定时是在晚上0点   这个时间段C和D都已经处于断开连接并且关机的状态了
      

  15.   

    我在公司做测试  在我机器上建立任务  备份公司服务器上的数据库执行上面的bat命令也很成功
      

  16.   


    b上的会话是否保留,只跟b里的远程会话策略和b是否关过机,及c,d离开远程桌面时采用的是断开或注销有关, 与c,d是否关机无关。
      

  17.   

    @echo off 
    Start exp username/password@sid file=F:\xxx\yyy\data\fg_%date:~0,4%%date:~5,2%%date:~8,2%.dmp 
    cmd
    执行下看看什么错误。
      

  18.   

    这几天忙了一点  没顾上上来说
    之所以没以指定的名字备份到指定目录是因为路径的问题
    我的路径中有Program Files这个文件夹不知道什么原因  空格以后的路径都没有执行

    默认就存在了根目录下了,并且是以Program命名的dmp文件