问题如标题,想用orcale中的job定时调用一个存储过程,该存储过程会备份前6个月的数据,然后清理表中数据。不知道有没有什么方法,可以使存储过程可以备份(在网上查的都是命令行:exp,不知存储过程能不能调用啊)
如果存储过程不能备份,job可以直接调用exp命令吗?(⊙_⊙)?
有什么方法可以让orcale自己定时执行数据备份和清理呢。注:我只是备份并清理某些表的部分数据,非整体导出哈希望强人能帮忙解决这个问题,万分感谢。

解决方案 »

  1.   

    其实你这里不仅仅是备份了,你这里是house keeping,不算是备份的范围,备份是备份,清理数据是清理数据,你需要分开来做。job可以直接调用exp命令吗?
    答案是不行, exp是命令行命令,你可以用系统的schedule功能来代替job,效果比job好。 window可以用schedule tasks,linux可以用cornjob里没有类似exp的导出功能,不过你可以通过对table的select的操作,把结果集以平面的方式记载到文件里,或者是insert到其他的table里
    数据清理是个应用上的话题,这里的6个月的数据也应该是应用中的逻辑,所以Oracle没有必要做成一个独立的功能,自己用过sql或者是procedure来做house keeping了。我们一起的项目做house keeping都是这样做的。
      

  2.   

    你可以自己写java程序 来调用 cmd exp命令,进来备份什么的
      

  3.   

    酱哦。果然。其实要我做的话就绝对用java。不过是头说用orcale自带的job做……= =。果然存储过程还没有强大到这个份上啊……
    自己写java程序 来调用 cmd exp命令的话,果然还是要考虑一下操作系统吧……= =我的linux是初级+初级啊……
    有没有强大的人给个linux exp 应用啊
      

  4.   


    exp做不到你的要求哟,exp只是逻辑备份而已。你们的经理的方法倒是可以考虑一下,不过不是用job调用exp。而是调用一个做house keeping的proecure而已。exp应该是达不到你的要求的。
      

  5.   

    你的意思是job可以调用一个做house keeping的proecure(⊙_⊙)?proecure是存储过程的意思吗(⊙_⊙)?|||
    house keeping是什么意思?单单做数据清理吗?
    我也不一定要用exp的,只是想用存储过程做一个先备份后删除的存储过程由job调用。……而且一定导出的是dmp格式……
    house keeping达到的了吗?
    可以的话,希望你能简单解释(最好是详细解释,嘿嘿)
      

  6.   

    自己顶一下,终于放弃用存储过程导出数据了。已经和老大申请过用linux的任务调度完成了。累死我了=_=
      

  7.   


    单纯的corn可以解决你的问题么?你的corn执行什么样的命令,仅仅只是exp么,那也只有逻辑备份而已。清理的工作怎么做呀。
      

  8.   


    应该是 在任务调度里exp备份,然后执行sqlplus 在sqlplus调用清理的procedure。
      

  9.   

    \(^o^)/~。有现成的例子没,本人linux加shell小白。~~~= =
    网上看到了一些,但都看不懂。
    在sh文件中,直接给出exp指令可以吗,需要配置路径吗(⊙_⊙)?
    exp use/passwd  file=   rows=y buffer=8888如果方便的话,提几个知道注意的问题就太好了哈。谢谢inthirties 一直以来的帮助哈,分给你吧。