我想从主服务器导出数据,导入到备份的数据库里。备份数据库里原有一些数据,给删掉。插入新的数据。或者原有的数据不动。只插入新数据。如何做?谢谢!
不要用工具。只用exp和imp命令。

解决方案 »

  1.   

    exp 用户名/密码@数据库名 file= 存放备份文件的路径 文件名以dmp 后缀导入 imp 用户名/密码@数据库名 file= 存放备份文件的路径 
      

  2.   

    http://blog.csdn.net/wh62592855/archive/2009/09/29/4614003.aspx参照上面的链接
    结合自己的实际环境操作就可以了
    应该不难
      

  3.   


    imp 的时候加上参数 ignore=y,那么只会做导入而不管里面是否已经有数据了。
    (可以达到你说的增量imp的目的),但是如果你的原有表结构中不存在唯一性索引(一般都有的),
    那么同一条记录会插入两次哈。
      

  4.   

    Imp不会覆盖原数据(这是指在9i中. 10g的话可以使用impdp的destroy参数覆盖导入数据), 相当于执行insert. 如果数据库里已经有了导入imp文件里的表, 那么在导入这个表的时候会提示导入不成功, 只有drop掉原来的表, 或者truncate掉表之后在imp时制定参数ignore=y commit=y.
    如果表太多, 可以考虑drop掉用户, 然后重建用户.
    imp   icdmain/icd   fromuser=icdmain   touser=icdmain   rows=y   indexes=n     commit=y   buffer=65536   feedback=100000   ignore=n   volsize=0     file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log  tables=commoninformation,serviceinfo  
      

  5.   

    导出命令
    exp user/pass@orcl  file=expndscdb20090603.dmp owner=(xjerp,sysmana) log=expndscdb20090603.log 
    说明:
    user:数据库服务器上的用户名;pass密码 ;orcl是实例名 ; file=expndscdb20090603.dmp  导出文件名和路径   默认应该是在C:\Documents and Settings  如果不是可以自己设置路径  比如file=d:\expndscdb20090603.dmp ;  owner=(xjerp,sysmana)表示服务器上数据库所建用户导入命令:
    最关键的你原来备份的数据库中已经有数据,现在想导入后给删掉或者不影响原来数据,所以你必须要删除原来用户,因为没删掉用户,一些数据已经跟用户关联了,所以你如果不先删除数据会导入不进
    具体命令:
    #进入sqlplus命令
    sqlplus system/ht@scxtnddb #删除用户sysmana
    drop user sysmana cascade;#删除用户xjerp
    drop user xjerp cascade;说明:我这个是我原来导的数据库,原来服务器上有两个用户sysmana,xjerp ,具体看你数据库,如果只有一个用户就删一个就成,有多个删多个,然后创建用户和分配权限
    #创建sysmana,给分配表空间
    create user sysmana identified by sysmana default tablespace data temporary tablespace temp;#创建xjerp,给分配表空间
    create user xjerp identified by xjerp default tablespace data temporary tablespace temp;#授权用户管理权限
    grant dba to xjerp;#授权用户管理权限
    grant dba to sysmana;exit;
    推出sqlplus#执行导入命令
    imp user/pass@orcl file=expndscdb200905xx.dmp fromuser=sysmana touser=sysmana log=impscxtnddb20090512sysmana.log说明:fromuser=sysmana touser=sysmana  表示从你服务器导出的数据库中用户导入到现在数据库用户中,你只需要修改sysmana名即可