那要看你什么怎么备份的了啊,exp 还是rman?

解决方案 »

  1.   

    通过数据字典(user_tables)去掉不要的表,再通过循环控制写出一个exp语句.
      

  2.   

    六楼的兄弟 说的详细点成么 
    回七楼的男人  好象是因为数据量太大了 备份到那个表已经2G多了 在OEM里查那一个表就好几百M
    很久以前作的 好象是700多M 现在想起来大家一起研究研究
      

  3.   

    我觉得使用exp备份你所指定的用户最方便,而且恢复时也比较方便
      

  4.   

    “自己写一个批处理,将不需要备份的表剔除.”
    “过数据字典(user_tables)去掉不要的表,再通过循环控制写出一个exp语句.”
     汗 怎么写啊 求你们了 说详细点啊 我菜
      

  5.   

    我认为可以这样
    首先写一个批处理命令
    命令行如下:
    exp parfile=d:\exp.txt
    接着,在相同目录下生成一个exp.txt
    txt内容如下:
    userid=yzdl/yzdl@yzdl
    owner=(yzdl) 
    file=d:\yzdl.dmp
    rows=Y
    grants=Y
    indexes=Y
    TABLES=(A,B,C...)其中 A,B,C可以使用SQL语句来生成
    虽然还是比较麻烦,我觉得基本上还是可行的
      

  6.   

    连接SQL
    spool c:\autobak.bat;
    declear
    str char(200);
    begin
    str:=select 'exp user/passwd file=c:\bak'||table_name'.dmp table='||table_name from user_tables where table_name not in (a,b,c);
    execute immediate str;
    end;
    spool off;退出sql,执行c:\autobak.bat
      

  7.   

    luxuezhu(卢冲) 想法不错! 学习!
      

  8.   

    用pl/sql developer 直接选中要备份的表(完全鼠标操作)
    如果文件过大(fat32格式不支持大于2G的文件),将不同的表还可以导成不同的文件
      

  9.   

    "用pl/sql developer 直接选中要备份的表(完全鼠标操作)
    如果文件过大(fat32格式不支持大于2G的文件),将不同的表还可以导成不同的文件"如果备份 几百个表不是要点上千下(备份一个表至少点2下吧)
    还有可能我说的不是很清楚 备份的时候在在LINUX 下
    备份的脚本是echo '请输入管道名(qing shu ru guan dao ming):'
    read gdm
    mknod $gdm p
    echo '请输入文件名:(qing shu ru wen jian ming):'
    read wjm
    compress < $gdm > $wjm.dmp.Z&
    echo '请输入用户及口令(qing shu ru yong hu he kou ling):'
    read yhkl
    exp $yhkl file=$gdm log=$wjm.log
    rm $gdm压缩后大概200多M(惊人的压缩比吧 )看日志总是到一个表出错 
    我问了一些同事 他们在WIN2000下最大备份过5。7G的DMP(用EXP)好象也是FAT32的文件格式
    好久之前的事情了 现在想起来主要是想 解决部分备份的问题
         感谢上面2位仁兄的说的这么详细 分数一定奉上 看大家讨论的这么热烈 我过几天再结贴没问题吧 
      

  10.   

    echo '需请输入管道名:'
    read agdm
    mknod $agdm p
    echo '需安装的文件名(文件名.dmp.Z):'
    read awjm
    uncompress < $awjm > $agdm&
    echo '需安装用户及口令:'
    read ayhkl
    imp $ayhkl file=$agdm full=y commit=y ignore=y rows=y log=$awjm.log
    rm $agdm在LINUX下对应恢复数据的方法 好东西大家分享啊(也许这个不算什么 不过为了感谢大家还是想拿出来现现丑)
      

  11.   

    “userid=yzdl/yzdl@yzdl
    owner=(yzdl) 
    file=d:\yzdl.dmp
    rows=Y
    grants=Y
    indexes=Y
    TABLES=(A,B,C...)” 不可以 owner和TABLES不能并存 去掉一个就行了
     可是如果TABLES=(select table_name from user_tables where table_name not in (a,b,c))的话 ORACLE会把SELECT TABLE_NAME FROM.... 分别当成几个表
    最后只能备份 A,B,C
    TO  luxuezhu(卢冲) 
    你想写的是 在一个BAT文件里(你用的是AUTOEXE。BAT)
    EXP USERNAME/PASSWORD file =c:\xxx.dmp (这地方有点没看明白table_name 是什么 ) table = table_name from user_tables where table_name not in (a,b,c) 么这个你实验成功了么 我没有
    看来这个结不了帖了