使用exp命令备份表:
exp   user/password@servername   file=c:\filename.dmp   tables=table_name;使用如下语句备份表:
create table TABLE_BAK as select * from TABLE;两者有何区别呢?

解决方案 »

  1.   

    exp user/password@servername file=c:\filename.dmp tables=table_name;
    将表数据导出
    --
    create table TABLE_BAK as select * from TABLE;
    创建一个备份表,存储需要备份的数据
      

  2.   

    使用exp命令备份表:
    exp user/password@servername file=c:\filename.dmp tables=table_name;
    ---这种方法是数据备份,把表的数据备份到一个数据文件中,后续通过imp导入使用如下语句备份表:
    create table TABLE_BAK as select * from TABLE;---这个只是创建一个表,表的结构和数据和table一样,可以叫做备份表,但是这种方法还称不上真正意义备份吧
      

  3.   

    谢谢各位的回复,我又思考了一下,请看是否正确。使用exp命令备份表:
    exp user/password@servername file=c:\filename.dmp tables=table_name;
    ---这种方法是数据备份,把表的数据备份到一个数据文件中,后续通过imp导入我的理解:
    1)此种方法备份后的数据已经脱离了与库的联系,不管库存在不存在,此数据是永远存在的;假设一种情况,库真的挂掉之后,如果需要将此数据导入新建的库中的话,那么需要重新建立一个与原表结构一致且表名一致的新表,才能使用imp命令导入之前备份的数据吧?
    2)此种方法仅仅备份了数据,并没有备份表结构?使用如下语句备份表:
    create table TABLE_BAK as select * from TABLE;
    ---这个只是创建一个表,表的结构和数据和原表一样,可以叫做备份表我的理解:
    1)此种方法备份的表结构以及数据,需要在库存在的情况下才有意义,如果库挂掉之后,那么备份的表结构以及数据也不存在了?
    2)什么时候使用此种方式备份呢?库基本不会挂掉的前提下,对原表的结构以及数据会产生误操作的情况下使用?
      

  4.   

    这两个最大的区别就在于...第二种还是存在oracle中 第一种存在你是文件系统中
      

  5.   

    exp user/password@servername file=c:\filename.dmp tables=table_name;
    将表数据导出
    --
    create table TABLE_BAK as select * from TABLE;
    创建一个备份表,存储需要备份的数据