很多做过oracle的兄弟都告诉我要在dos 的下面用IMP和exp命令,可是我在编写一个数据库的应用程序,可以用ADO中的_ConnetionPtr把SQL语句送给oracle执行,出库入库都解决了.现在客户提了新要求,做备份恢复,用程序代码如何控制oracle,
不知道oracle能不能在sql*plus里头发命令来备份啊?
每天有很大量的采集下来的数据入了库,客户要求每天入完库后要对数据库中的当天的数据做一个备份, 把备份的数据放在磁盘的一个指定的路径下, 给文件包标上当天的日期, 然后把数据库中今日的数据清空,第二天又有第二天的数据进入空的数据库中, 然后下班前又把第二日的数据导出到磁盘上然后清理干净请教各位?谢谢?   up有分

解决方案 »

  1.   

    我想你是逻辑备份吧,在程序中可以用DOS命令实现备份:
    exp <user>/<password>@<service name> file=<指定路径的DMP文件>其中service name是服务名,在net8 easy config中配置的
      

  2.   

    sql*plus当然不能完成你的功能了,依你的情况可以使用utl_file包写一个应用
    或使用exp指定一个条件。
      

  3.   

    在sql*plus里发命令来备份不可能实现。
    可以考虑用操作系统的"定时任务"功能(AT命令)来定时执行exp命令备份数据库
      

  4.   

    在"控制面板"的"计划任务",凌晨3点备份数据,
    如此可备份一周数据,
    使用dos下的exp导出语句。
      

  5.   

    在sqlplus中的确不行。
    参考一下oracle工具Toad的exp和imp向导操作的设计。已图形界面的方式构造exp和imp命令的参数,程序中可以控制向控制台的输出就可以了。用户使用时不弹出dos窗口。