我是采用语句+计划任务的形式来实现每天自动备份的  语句如下d:\oracle\ora92\bin\EXP.EXE system/password@databasename BUFFER=1024000 FULL=Y INCTYPE=COMPLETE FILE="d:\databackup\new1.dmp" COMPRESS=Y GRANTS=Y INDEXES=Y ROWS=Y CONSISTENT=N DIRECT=N LOG='BACK_NEW1.LOG'但是这样写的话就会导出整个数据库的内容 而一个数据库可以有好几个用户去访问而我只想导出其中一个用户a表空间下的数据或者有什么软件能时间自动备份出某用户表空间下的数据的请问这个语句该怎么改写  谢谢

解决方案 »

  1.   

    导出时用你的用户a去导数据就是这个用户的表空间了.自动备份可以写成脚本,在windows下用执行计划,在unix或linux可以用crontab定时执行.
      

  2.   

    看你的命令数据库是9i吧,如果是10g的话,就可以用expdp来传输表空间9i也提供了传输表空间的功能,不过没有10g强大,先检查一个表空间是否是可以导出的,也就是对象自包含,表空间里的对象集是自包含的(对象及其索引都在此表空间中) 
    SQL>execute sys.dbms_tts.transport_set_check('表空间名', TRUE); 
    SQL>select * from sys.transport_set_violations; 
    no rows selected 这里没有结果的话,就是OK了。设定表空间readonly
    SQL>alter tablespace testts01 read only;现在就可以导出了
    d:\oracle\ora92\bin\EXP.EXE system/password@databasename transport_tablespace=y tablespaces=(TESTTS01) file=d:\databackup\new1.dmp注意这里如果查出这个表空间有包含别的表空间的对象,需要一起导出。
      

  3.   


    上面的exp是一个普通的脚步命令,所以你可以把这个脚本命令加上操作系统的计划任务里,如1楼所说的知识点。
      

  4.   

      用import 和exp 来执行这个操作吧。在结合oracle 中的jobs 就可以了,定时的import ,exp
      

  5.   

    用你要导的用户,用EXP、IMP就可以完成了
      

  6.   

    WIN平台用计划任务+exp脚本:
    导出某用户下只需在现有exp语名后将"full=y"变成"user=用户名"即可